Lectures | MWF | 10:30-11:20 | EE1 045 |
Section AA | Th | 8:30-9:20 | MGH 238 |
Section AB | Th | 9:30-10:20 | MGH 295 |
Our objective is to learn fundamental programming language concepts. We approach this by acquiring practical experience with a set of four very different programming languages - Scheme, Miranda, Java, and CLP(R). Following the study of the individual languages, we'll finish up by a comparative discussion of programming language concepts in these and other languages.
Prerequisite: CSE 143
There are no required text books; however, the following are recommended. They are on reserve in the Engineering Library.
This is a reference for Scheme - it's actually the introductory programming text used at MIT and is a great book, not just for Scheme but for computer science concepts generally.
This is a good reference for many of the concepts we will be discussing in the class. Unfortunately it does not present these concepts with the languages that we teach.
The course email list is cse341@cs. It is a majordomo mailing list. Subscribe in the usual way. Send email to majordomo@cs with the text, subscribe cse341, in the body of the message. You are responsible for announcements made to this list.
The supported course software is on the instructional Linux machines; tahiti, sumatra , ceylon, and fiji. You are welcome to work on your homework on your own machines using interpreters/compilers that are not supported by the course; however, it is your responsibility to make sure that your homework works on the course supported software also.
The course will consist of about eight assignments, roughly two for each language. One of these assignments will be a warmup and the other will be a more substantial exercise. There will be a midterm and a final.
homework | 50% |
midterm | 20% |
final | 30% |
Individual grades may vary slightly, based on effort, contribution to class and section, etc.
Students are expected to do the assignments on their own, except for assignments explicitly labelled as group assignments. Any cases of cheating that we discover will be sent to the College disciplinary committee.
However, we also want to be clear on what is legitimate collaboration - please help each other out in this class in appropriate ways! It is OK to help other students debug their programs, and to discuss general approaches to solving problems. After having such a discussion, though, you should go do something else for at least half an hour, for example watch an inane TV show, before independently working on your solution (This is sometimes called the Gilligan's Island rule). It is not OK to copy someone else's code or homework solution.
Exams must of course be done on your own.
Assignments will typically be due on Monday. Unless otherwise stated, they should be turned in during class, but will also be accepted until 5:00 in 226C. Under certain circumstances extensions may be granted; however, it is your responsibility to let us know before hand (at least the lecture or section before the assignment is due - typically Friday). For more details see Submission Guidelines.