CSE 341 Administrivia & Useful Information
Lectures, MWF 1:30-2:20, EE1 045 (New building)
Quiz AA, Th 8:30-9:20, EE1 026
Quiz AB, Th 9:30-10:20, EE1 026
(Note that this is a 4 credit course, with just 1 quiz section meeting per
week. Earlier versions of the time schedule had it listed incorrectly as 5
credits with 2 quiz section meetings per week.
Check with the staff advisor if you have some problem with your schedule due
to the change to 4 credits.)
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, Java, Miranda, and CLP(R).
There will be an emphasis on object-oriented languages, and we'll have one
or two lectures on Smalltalk in addition to the Java lectures (although no
programming assignment for Smalltalk). 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
The only required book is:
The following books are recommended references for the other languages.
However, I put a set of books on reserve in the Engineering Library, and if
you're short of money you can get away without buying them. We'll also
have handouts and online reference material for the languages.
- Timothy Budd, Understanding Object-Oriented Programming with
- Abelson and Sussman, Structure and Interpretation of Computer
Programs. 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. But it's expensive and
you can do without it -- we'll also have handouts. Also this book and some
other Scheme books are on reserve.
- Simon Thompson, Miranda: The Craft of Functional Programming.
Again, we'll have handouts, and some other Miranda books are on reserve.
We will use orcas for Miranda, Scheme and CLP(R). Any X Terminal, or PC
with an X server, or just a vanilla telnet, can connect you to orcas.
You can use whatever version of Java you would like (see the Java pages for
Assignments and Grading
There will be one or more small assignments and a major programming
assignment for each language, as well as some written homework. There will
be a midterm covering Java, Smalltalk, and Scheme, and a comprehensive
final at the end of the quarter.
Here is the grading structure (possibly subject to modification):
Individual grades may vary slightly, based on effort, contribution to class
and section, etc. This grading structure is subject to change.
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
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.) However, it is not OK to copy someone
else's code or homework solution.
Exams must of course be done on your own. Both the midterm and final will
be open book and open notes.
Late Assignments and Incompletes
Assignments are due in lecture on Friday (unless otherwise specified).
If you write answers out by hand,
please make sure it's legible. Do not write program code by hand.
Write your name and quiz section time on
the assignment. Late assignments will be marked down as follows:
25% off -- up to 1 day late
50% off -- up to 2 days late
75% off -- up to 3 days late
"25% off" means that 25% of the maximum possible score is taken off of the
score for the late assignment. "Up to 1 day late" means up to the time of
lecture on the day following the day the assignment was due, and
so forth. For example, if the assignment is due on a Friday, "up to one
day late" means until 1:30 pm on Saturday, "up to 2 days late" means until
1:30 pm on Sunday, and "up to 3 days late" means until before lecture on Monday.
Send e-mail to the TA du jour if you want
to turn in a homework late to arrange to get it to him. (Sorry to sound so
picky about this -- but I've had problems with very creative
interpretations of the rules in the past.)
Incompletes are never given never simply because assignments were not
completed on time.