CSE 341 Administrivia & Useful Information
The Team:
Alan Borning,
Instructor
e-mail: borning
Office: Sieg 409
Office Hours: M W 4:30 - 5:20pm, or whenever the door is open
Ken Yasuhara,
Teaching Assistant
Harr Chen, Teaching Assistant
Class Meetings
Lectures: MWF 12:30-1:20, MGH 231
Quiz AA: TH 8:30-9:20 (yawn), MGH 242
Quiz AB: TH 9:30-10:20 EE1 045
Objective
Our objective is to learn fundamental programming language concepts. We
approach this by acquiring practical experience with a set of four quite
different programming languages -- Miranda, Java, Smalltalk, and Scheme.
Following the study of the four languages, we'll finish up with a
comparative discussion of programming language concepts in these and other
languages. We will spend about 2 weeks per topic.
Recommended Texts
- Simon Thompson, Miranda: The Craft of Functional Programming
- Timothy Budd, Understanding Object-Oriented Programming with Java
- Mark Guzdial, Squeak: Object Oriented Multimedia Applications
- Hal Abelson and Gerald Sussman, Structure and Interpretation of Computer
Programs
Buying all four of these is going to set you back some cash. However, none
of these books are required -- they are all just recommended. They are all
on 4 hour reserve in the Engineering Library, so you can read them there
instead. There are also some related books on reserve.
Complete list of 341 books on reserve.
There are also copies of the Thompson and Budd books in the ACM library
in Sieg 326. (We'll see if we can find copies of the remaining ones as
well.) Finally, these books have all been used in the past at one time or
another, and you may be able to get used copies from former 341
students.
Here are some idiosyncratic suggestions regarding which books to buy, if you
only want to buy some of them. (Your tastes in this may well differ.)
- Simon Thompson, Miranda: The Craft of Functional Programming.
Lowest priority of the four, I think. I'll hand out a short article on
Miranda, and that may be enough for you to learn the language. (It's
weird but simple.)
- Timothy Budd, Understanding Object-Oriented Programming with Java.
Medium priority. Unless you already know Java, you will doubtless want a
Java reference of some sort, and this is a reasonable one (since it also
includes more general concepts of object-oriented programming). But if
you're impoverished, and have another Java book to hand, use that instead.
- Mark Guzdial, Squeak: Object Oriented Multimedia Applications.
High priority. Squeak (both the language and the environment) are
different from other languages you've encountered, and having a reference will
help.
- Hal Abelson and Gerald Sussman, Structure and Interpretation of Computer
Programs. Medium priority. You can probably learn Scheme using
another book, or from material on the web. On the other hand, this is an
absolutely classic text, and worth reading anyway.
Important Dates
Class will not meet on May 27 (Memorial Day). The final exam will be given on
Thursday, June 13, 8:30am - 10:20am.
Coursework
There will be one warmup and one larger program per language. There will
also be a course project, which should be done by a group of 2-4 students, in
either Java or Smalltalk. There will also be some small written homework
assignments. There will be two exams: a midterm and a final.
Grading
Your final grade will be based on homework (40%), the project (20%),
midterm (15%) and final (25%). Individual grades may vary slightly, based
on effort, contribution to class and section, etc.
Late Assignments and Incompletes
Assignments are due at the beginning of lecture, usually on a Monday.
We will try to get assignments back in the quiz section on Thursday of that
same week. If you write answers out by hand, please make sure they are
legible. Write your name, quiz section, and the name(s) of your
collaborators (see below) on each assignment. The late policy is as
follows: each student is granted two late days to use at his/her discretion
during the quarter. A late day is defined as the period of time until the
beginning of the next lecture or quiz section. For example, if an
assignment is due Monday, turning in the assignment anytime up to the
beginning of Wednesday's lecture constitutes the use of one late day.
Turning it in anytime up to the start of your Thursday quiz section
constitutes the use of two late days. (So you're better off using just one
late day and getting it done by Wednesday, and saving the other late day
for a different assignment.) Barring exceptional circumstances, you must
hand in each assignment before that assignment is discussed and handed back
in quiz section.
Please use your late days wisely. Again barring exceptional
circumstances, extra late days, other extensions, or incompletes will
not be granted.
Collaboration/Cheating Policy
Students in this course are encouraged to work together. However,
there are a few groundrules everyone must follow. Failure to
understand and follow these rules will constitute cheating, and will
be dealt with as per university guidelines.
- The Gilligan's Island Rule: This rule says that you are
free to meet with fellow students(s) and discuss the assignment with
them. Writing on a board or shared piece of paper is acceptable
during the meeting; however, you should not take any written
(electronic or otherwise) record away from the meeting. After the
meeting, engage in a half hour of mind-numbing activity (like watching
an episode of Gilligan's Island), before starting to work on
the assignment. This will assure that you are able to reconstruct
what you learned from the meeting, by yourself, using your own brain.
- The Freedom of Information Rule: To assure that all
collaboration is on the level, you must always write the name(s)
of your collaborators on your assignment.