[Skip Navigation] [Remove Frame] [CS320] [Text Version] cs320.syllabus.html Sat Dec 23 07:59:50 PST 2006


    CSci 320 Programming Languages Spring Quarter 1994

    1. Lecture::= Tu & Th 10-1130am in JBH358.
    2. Lab::= Mon & Wed 10:40am - 11:30am in JBH358
    3. Final::= Thurs Jun 16th at 10am-12noon .
    4. Lecturer::= Dr. R. J. Botting,
    5. Office::= Mon Wed Fri 1-2pm + Tu 12-1pm in JB341.
    6. Voice_Mail::= 909-880-5327,


      This course prepares you for a world where you will learn new languages every other year or start to fall behind. At the end of the course you will be ready to (1) learn languages quicker, (2) make informed choices between languages, (3) discuss languages. CS320 does not teach a particular language but uses certain important languages(C, LISP, Prolog, C++, Ada, Smalltalk) as laboratory examples of important kinds of programming. You will practice learning these and so learn skills and knowledge which let you learn new languages faster. You will practice browsing through computer documentation and code in search of information. You will need to master many important technical and mathematical terms and ideas.


      You should have passed at least two quarters of Computer Science (eg. CS201, 202) before you start this class. You need to know C before the class starts, otherwise you should take CS290b first. You will have to become skillful with UNIX, EMail and 'vi' quickly because you will spend a lot of time doing experiments on our laboratory machines.


      You need a copy of the text book "Concepts of Programming Languages" by Sebesta. We will cover all chapters except 11 and 12.

      You will be given a copy of the Laboratory Reference Manual for CS320. I recommend "UNIX in a Nutshell" and "Learning vi" by Lamb as additional reference books for the laboratory work. You will spend 3 or 4 hours per week time studying computer files and programs. The files for this class are on the UNIX network in my ~dick/cs320 directory. You will also be shown how to access the tools, source code, documentation, and libraries for the languages we will be studying.


      Attend the whole of all lectures and labs meetings or make it up yourself! Exception - medical and other documented emergencies.


      It is difficult to pass this class without using our UNIX labs for at least 5 hours a week. The time will be spent time reading files, experimenting with small programs in half-a-dozen languages, and writing and mailing work. Don't think you can make up computer work in class time. In each lab period you will be doing experiments. There is additional assigned work to be done and submitted for grading. Lab and assigned work prepares you for the examinations. You will have a choice of what to submit. Wise students will look at all questions first. I will comment on all work submitted and will discuss questions in my office hours or by Electronic Mail. The details are on the network in ~dick/cs320/wrk/*.

      Plagiarism is Bad News

      Copying and pretending it is your work is not permitted in any university. Doing this earns ZERO. If you wish to quote something you must indicate where you got it. Letting your work be copied is also dangerous. I give ALL copies the same score - ZERO.

      Teamwork is Good

      There is no penalty for working with others. Two or three people should work together and give me their joint work - they will all get the same score. All work should have a section or comment identifying who worked on it. Only people who have their names on the work get credit!

      Late work is Bad News

      Late work will not be graded without a documented excuse. Assigned work will be treated as late if not transmitted or submitted by the start of class or lab on the specified day. Lab work will treated as late after the end of the lab. Early lab work can earn a bonus. Exception: Lab work is not late until one week after you have an account.


        5 Quizzes =150pts(30%), 1 Final=150pts(30%), 20 Labs=100 points(20%) 4 pieces of graded work=100pts(20%). All points will be totaled. The maximum expected is 500. If the best total in the class is less than 93% of this then all totals will be scaled up to make the best = 95%. The boundaries(%) will be as follows: 0 F 59.99 60 D- 63.33 D 66.66 D+ 69.99 70 C- 73.33 C 76.66 C+ 79.99 80 B- 83.33 B 86.66 B+ 89.99 90 A- 93 A 100

        Lab work (100 points(20%) = 20 labs * 5 points each)

        The experiments are in file in this directory ~dick/cs320/lab. Make sure that you mail me to give credit when you complete a lab. [ http://cse.csusb.edu/dick/cs320/lab/ ]

        Lab Work Bonuses (Up to Lab score <=100 points or 20%)

        Further "make up" and/or bonus points will be given for posting messages on my cs320 Bulletin Board System(bbs). Information on how to do this and how to submit lab reports is in the CS320 Laboratory Reference Manual.

        The total number of bonus points can not exceed the lab score however.

        Graded Work (100 points or 20%)

        There are 4 study guides for the course in ~dick/cs320/wrk. Each guide has questions to be answered and exercises to do. To provide evidence that you did the work, hand some of the answers to questions and exercises. You can earn the points by handing in or EMailing a set of answers to questions and/or results of exercises to me. All work will be commented on. Each answer or result is worth 5 points. Each is worth no more than 20 points. Extra work will be commented on but any points earned will not be counted [ http://cse.csusb.edu/dick/cs320/wrk/ ]

        Quizzes and Final

        Quizzes are closed book. You will need your copy of the lab manual and may use a calculator. You will not be able to use the computer in quizzes.

        The first quiz is special and test your knowledge of C. The later quizzes will be worth more than the first one. They are based on experiments in the lab time plus lectures. They will be on a programming language <L> where <L> ::= LISP | Prolog | SmallTalk

        The will test the following skills for a language <L>:

      1. Given a sample of <L> code figure out what it outputs.
      2. State the formal syntax of various parts of the language <L>.
      3. Classify pieces of <L> code syntactically.
      4. Write a simple piece of <L>.
      5. Write a more complex piece of <L> code, involving recursion etc.

        The final will be comprehensive and based on the home work, book, and lectures. It will also refer to the same languages - as examples - but not in detail.

      . . . . . . . . . ( end of section ASSESSMENT) <<Contents | End>>