|
|
http://www.cs.indiana.edu/classes/c311/
The Java Programming Language, by Arnold and Gosling,
second edition. (Addison-Wesley, ISBN 0201310066.)
The standard, basic reference on the Java language. Copies have just
been ordered at the bookstore because a new edition (for Java 1.1)
just came out. We won't need it until later in the semester.
The Scheme Programming Language (2nd edition), by Dybvig.
(Prentice Hall, ISBN 0-13-454646-6.)
A standard reference on Scheme
programming.
The following syllabus is still tentative and incomplete. Adjustments will be reflected on this page as we go.
For the most part, assignments will be handed in by email to an automatic checker with feedback emailed back almost immediately. Assignments may be prepared on the system of your choice, but should run properly using Chez Scheme version 5. Homework will be graded by hand, but the automatic checker will detect some errors.
You are welcome (in fact, encouraged) to collaborate with others in the class, tutors, etc., but in every case, if you have received help on an assignment from anyone other than the instructor or associate instructor of the course, their names should be indicated at the beginning of the assignment. Though you are encouraged to work on assignments in groups, each individual is responsible for submitting their own copy of each assignment.
An assignment will usually be given each week. Late assignments will not be accepted.
| # | Assignment | Due | Solution |
|---|---|---|---|
| 1 | Basic Scheme | T 1/20 @ 11:59pm | Our solution |
| 2 | Static Properties | T 1/27 @ 11:59pm | Our solution |
| - | Scheme Quiz | - | Our solution |
| 3 | Simple Interpreters | T 2/3 @ 11:59pm | Our solution |
| 4 | Procedures and assignment | T 2/10 @ 11:59pm | Our solution |
| 4 honors | Reduction | T 2/10 @ 11:59pm | Our solution |
| 5 | Recursion and dynamic assignment | R 2/19 @ 11:59pm | Our solution |
| 6 | Continuation passing style | T 2/24 @ 11:59pm | Our solution |
| 6 honors | Garbage collection | T 3/3 @ 11:59pm | Our solution |
| 7 | Data structure representations of continuations | T 3/10 @ 11:59pm | Our solution |
| 8 | CPS with registers and stacks | W 3/25 @ 11:59pm | Our solution |
| 8 honors | First class continuations | T 3/24 @ 11:59pm | Our solution |
| 9 | Scheme interpreter in Java | W 4/4 @ 11:59pm | Our solution |
| 9 honors | Trampolining | W 4/4 @ 11:59pm | Our solution |
| 10 | Inheritance in Java | T 4/16 @ 11:59pm | Our solution |
| 11 | Classes, interfaces, overloading | T 4/21 @ 11:59pm | Our (partial) solution |
| 12 | Java threads | F 4/1 @ 11:59pm | - |
Attendance at discussion sections is mandatory. Often a problem or set of problems will be given out at the beginning of discussion section and the class will be broken up into small groups to solve the problems. The AI leading the discussion section will go between groups answering questions and asking questions about the work done so far and about the class material. Your answers to these questions, and your progress on the problems given in discussion section, will count toward your final grade.
Some lectures may also be conducted in this manner, and some other lectures will present material not found in the book. Don't miss class!
Our web has information on use of Scheme at IU, including emacs support.Points will be deducted on the homework, quiz, and exams if the cardinal rules of indentation are violated, so make it a habit to follow them whenever you write Scheme code. This will greatly aid your Scheme programming.
Though emacs is a big help, it is strongly suggested that you write solutions to all exercises by hand and check them carefully for correctness before approaching a computer. This will give you practice at indentation by hand (which is necessary for exams) and, more importantly, it is in most cases much easier to find mistakes in this course's exercises by thinking about them than by debugging.
The assignments don't count a whole lot toward your grade, but extensive experience has shown that students who do not make a serious effort to do the assignments do poorly on exams. Experience has also shown that if most students spent much more time with paper and pencil before approaching a computer, they would spend much less time debugging, and better understand their programs. An hour with a pencil is often worth several at the keyboard!
If you're having difficulty, don't hesitate to see the instructor or AI during office hours. If these times are not convenient, see us after class or discussion, or contact us by email or phone, to set up another time. We're here to help you!
The following is a tentative schedule for evaluation, with approximate percentage contributions to the final grade.
Before the end of the semester, please complete the electronic Course evaluation forms for Benjamin Pierce and your discussion section AI, Michael Levin.