Goals
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.
Pre-requisites
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.
Reading
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.
Meetings
Attend the whole of all lectures and labs meetings or make it up yourself!
Exception - medical and other documented emergencies.
Work
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.
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>:
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>>