• Handouts
Computer Science 302 deals with programming languages generally, considered as formal, executable notations for expressing algorithms: their syntactic structures, the models of computation that they implicitly rely on, the data values and structures that they support, and the semantics of the various constructions from which programs are built.
The class meets in Science 3819 at 9 a.m. on Mondays, Wednesdays, and Fridays.
The textbook for the course is Programming languages: application and interpretation, by Shriram Krishnamurthi (Lulu, 2007).
The full text of this book is available on the World Wide Web (in Portable Document Format) at http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/plai-2007-04-26.pdf. Alternatively, you can purchase a hard copy, paperbound, at the College Book Store, or order one from the Lulu Web site. The author also allows you to make additional copies of the book under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States Licence.
I'm John David Stone. My office is Science 3829. My office hours this semester are Mondays from 1:15 to 3:15 p.m., Tuesdays from 9 to 11 a.m., Thursdays from 2:15 to 4:15 p.m., and by appointment. I can be reached by telephone at extension 3181, or by e-mail to stone@cs.grinnell.edu.
Each student in the course is expected to read the assigned sections of the textbook carefully, to learn the ideas, methods, and techniques that are presented there, to submit solutions to exercises requiring the application of those ideas, methods and techniques, and to prepare for and attend the sessions of the class.
The schedule of topics for the course includes reading passages in the timetable. Please study each specified section before the beginning of the class that follows it in the schedule.
From time to time, I also provide handouts on topics related to the course.
Exercises are assigned regularly throughout the
course. Please submit any programs that you develop as parts of your
solutions by e-mail to stone@cs.grinnell.edu, as plain text. (From a MathLAN machine, for
instance, you can use the command mail -s "Exercise 13"
stone@cs.grinnell.edu <frogs.ss to send me the contents of the file
frogs.ss in a message with the subject heading `Exercise 13'.)
You may submit solutions to non-programming exercises by e-mail or in hard copy, as you prefer. For good-looking hard-copy documents containing mathematical material, I strongly recommend the LATEX document-preparation system.
Each exercise is due at the beginning of the third class session after the one in which it is assigned. A solution will be posted shortly after this deadline. Although I am happy to read and comment on late papers, I cannot award credit for work that I receive after a solution has been posted. On the other hand, if you wish to submit an early draft of a solution or to discuss an exercise with me while you're working on it, I encourage you to bring in your preliminary work -- I'll gladly look it over and make suggestions, or help you get started in the right direction.
I generally prepare a set of study questions to help students prepare for each class session. You may write up and submit answers to those questions for extra credit. If you miss a class session, you must write up and submit answers to the study questions for that session.
In addition, it is especially helpful if students raise for discussion any questions they may have about the day's topic, the assigned reading, or the exercises. I suggest that you write out such questions as part of your preparation for class sessions.
The final examination will be cumulative and comprehensive. During the exam, you may consult books, notes, and other papers that you bring with you, but you may not confer with anyone else nor use telephones, computers, or any other networked devices.
The examination will comprise about ten questions, including some short-answer questions and some essay questions. No programming will be required.
The Committee on Academic Standing has scheduled our examination to run from 9 a.m. to noon on Friday, May 16. Please do not make travel plans that conflict with this schedule.
Your performance on exercises will determine seven-tenths of your final grade, class attendance and participation one-tenth, and your performance on the final examination the remaining fifth, with the condition that you must pass the final examination in order to pass the course.
Since you will receive credit for this course on the basis of your individual performance, it would be unethical to submit the work of others as your own. You may, if you like, collaborate on solutions to exercises, but such solutions must be submitted jointly by all the members of the collaboration. You may not collaborate on the final examination or any part of it.