Course Information
Read this document! It will answer most of your questions about the conduct of the course.
The prerequisites for this course are 112 and 205 or 330:227. If you have not taken these courses, then you should drop this course--it's not for you. Don't figure that you can make up material that you don't know. This course assumes that you know what's in the prerequisites, as well as what's in their prerequisites.
The primary purpose of the course, and the one which will be addressed in the lectures, is to get an overview of the characteristics of programming languages in general. Thus we will look at such questions as how languages are used, what concepts play an important role in their definitions, how they can help in creating correct programs, and other aspects of languages that are common to all of them.
A second purpose, to be dealt with in part in the recitations, and at some length in programming homeworks, is to get some exposure to some real programming languages. The languages we will actually use to program will be C, Prolog, Scheme, and C++. We will be using the undergraduate servers remus and romulus as our UNIX computing resource. They can be accessed from the labs as well as by dialing into the Rutgers network from your own personal computer using a modem. If you are unfamiliar with UNIX, you can browse the Introductory Unix Documentation Set available online information.
This course is run in co-ordinated fashion; in all sections, students do the same homeworks, follow the same syllabus and take the same tests. The final grades for each student will be determined from performance in comparison with others in his or her own lecture section.
You should check the main CS314 class webpage often; we will post class-wide announcements on this page. You also should check your individual lecture page. Announcements specific to your lecture will appear there. Sometimes we may post clarifications or updates for the programming projects on the programming projects webpage.
Supplementary class material will be placed on reserve at the SEC Reading Room (Busch Campus) during the term; you will be informed of these in lecture or on your class webpage. We have also placed on reserve, some reference books on each of the programming languages we will study in detail. In all cases the material will be found under the course number (198:314) or the name of your instructor.
Required: Michael L. Scott, Programming Language
Pragmatics, Morgan Kaufmann, 2000.
Recommended: Michael A. Covington,
Donald Nute, and Andre Vellino,
Prolog Programming in Depth, Prentice Hall, 1997.
Recommended: K. Reek, Pointers on C,
Addison-Wesley, 1998.
Recommended: Ira Pohl, Object-oriented Programming Using C++, 2nd edition, Addison Wesley, 1997.
Recommended: R. K. Dybvig, The SCHEME Programming Language: ANSI Scheme, Prentice Hall, 2nd Edition, 1996.
There will be a midterm from 6:10-7:30pm on Thursday evening, October 25, 2001, and a final exam from 4:00-7:00pm, on Tuesday, December 18, 1999. All tests will be cumulative, covering all material in the course since its beginning. The final will cover EVERYTHING. All tests are closed book exams.
In emergency situations, when you are unable to get to the exam, it is your responsibility to contact your instructor or TA before the exam and notify them of the situation. Documentation of your emergency will be required! A call to the Dean's office can provide this. Alternate arrangements will be made for people with documented difficulties. ALL STUDENTS WILL BE EXPECTED TO TAKE THE FINAL EXAM AT ITS SCHEDULED TIME.
There will be weekly written homework assignments and four programming projects. In order to pass the course, all programming assignments must be completed and handed in. Turned in programs that do not compile or have syntax errors will be given a grade of 0. We will be using shell scripts to run and check your programs. Written homework will be assigned weekly (usually from the textbook), turned in at recitation and discussed there. Do this homework! It is intended to aid you in learning the material. We will use questions from your homework on the tests as well as questions based on the programming projects.
Grading will be based on your performance on the midterm, final exam, homeworks and programs. Exams will count for at least 50% of the final grade, with the additional proviso that in order to pass the course, the student needs to pass at least one exam. We consider recitation attendance mandatory for this course; your participation in recitation will count in your grade. Our tentative grade weights are: 250 points midterm, 350 points final exam, and 300 points for the programming projects and 100 for recitation participation. We reserve the right to adjust these weights as necessary during the term.
Your achievement according to this weighting constitutes a raw score. Once the scores are in, the class curve within each lecture will serve as the basis on which letter grades will be awarded. We will keep you abreast of the median test grades for the class, so that you have some idea of where you stand; remember, an average grade is C.
A fairly important consideration in getting through the course in one piece is keeping up. It doesn't pay to put anything off, because there's another thing coming right behind it. If you put off handing in a program by its due date, the chances are that you'll just fall more and more behind. To discourage such behavior, the following rules will be enforced.
By definition a late programming project is one which is handed in (electronically) after the time specified in the project statement. A late program will incur a penalty of 20% per school day or fraction thereof (you get weekends and holidays off). So if it's more than five days late, it's worth zero points; even so, the project must be completed and handed in.
It often happens that a student may miss a deadline because of some unavoidable circumstance, such as illness. Such latenesses are of course excusable, but only with documentation. After-the-fact excuses (``My car broke down'') are not acceptable. Even ``I've been in bed with flu all week and couldn't get it done'' won't work. (A call to the Dean's office at the beginning of that week would have fixed you up.) On the other hand, if we are told in advance that you won't be able to get something in on time, we will be glad to make appropriate arrangements for late hand-in.
Last updated at 5:57pm, October 9, 2001 by Jerry Hom