...
Text For Scheme: How to Design Programs, Second Edition (DRAFT) by Felleisen et al. The First Edition was published in 2001 and has LC classification QA76.6 .H697 2001. We will refer to this text as HTDP.
DrScheme/DrRacket: Please download and use the DrScheme/DrRacket system available from the Racket download site.
...
DrJava: Please download and use the DrJava pedagogic programming environment available from drjava.org. You must install either the Java 5 6 or Java 6 7 JDK on your machine for DrJava to work. (Addendum: DrJava releases starting in 2011 can also run using a Java 7 JDKmay work with Java 5; it has not been tested since Java 5 is no longer supported by Oracle.) If you machine is running some flavor of Windows or Linux or a recent version of Mac OS X, go to the \[Sun Oracle Download Site for the Java SE 6.0 (http://java.sun.com/javase/downloads/index.jsp\]). Make sure that you download the JDK not the JRE. If you have a Mac, a Java JDK is available from Apple. In fact, it is part of the standard Mac OS X software package. DrJava will run on either the Apple Java 5.0 or Java 6.0 JDK..
Entrance Survey
Please fill out this survey.
...
The lab is an essential component of the course. Every student should attend lab on Tuesday 10:50-12:05 in Ryon 102.
If you have a conflict, you probably should drop the course. If you have a conflict, but still want to take the course, please come see Prof. Cartwright or Prof. Wong to evaluate your options.TBA.
Computing Environment
All Comp 211 programming assignments will be run and graded on the CLEAR (Linux) TBA educational computing facility. The Ryon 102 lab is equipped with machines connected to the CLEAR network. For instructions on how to use CLEAR, see the CLEAR web page.
Errata
This wiki for Comp 211 is a revision of last year's the Spring 2011 Comp 211 wiki and may contain a significant number of broken links and typos. If you notice an error in the wiki, please send email to the Comp 211 staff Prof. Robert (Corky) Cartwright.
Course Schedule
Note that future date schedules are only guidelines. Future that future date schedules are based on the 2011 calendar; they are merely guidelines for creating a similar calendar. The homeworks and slides may contain materials from previous Comp 210, 211, and Comp 212 classes. New material will be provided before the corresponding class. There will only be two In the Spring 2011 edition of this course, there were two take-home exams in the course: one given on functional programming during week 7 and one on object-oriented programming given during in the last week of the course. Both are take-home exams. There is was no final examination.
| Day | Date(2011) | Topic | Reading | Lectures | Problems | Due(2011) | Lab | Supplements |
---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 10 | Introduction & Scheme Primitives |
| W Jan 12 | ||||
2 | Wed | Jan 12 | Function definitions and conditionals | F Jan 21 |
|
| |||
3 | Fri | Jan 14 | Data Definitions & The Design Recipe |
|
|
|
| ||
- | Mon | Jan 17 | School Holiday |
|
|
|
|
| |
4 | Wed | Jan 19 | Data-directed design |
|
|
|
| ||
5 | Fri | Jan 21 | Data-directed design: trees |
| Mon Jan 31 |
|
| ||
6 | Mon | Jan 24 | Mutually Referential Data Definitions |
|
| ||||
7 | Wed | Jan 26 |
|
|
|
|
| ||
8 | Fri | Jan 28 | Local Definitions and Lexical Scope |
|
|
|
| ||
9 | Mon | Jan 31 | Functional Abstraction and Polymorphism | Mon Feb 7 |
| ||||
10 | Wed | Feb 02 | Functions as Values |
|
|
|
| ||
11 | Fri | Feb 04 | Lambda the Ultimate |
|
|
|
| ||
12 | Mon | Feb 07 | Generative Recursion | Mon Feb 14 |
| ||||
13 | Wed | Feb 09 | Complexity and Accumulators |
|
|
|
| ||
14 | Fri | Feb 11 | Accumulators and Tail Calls |
|
|
|
| ||
15 | Mon | Feb 14 | Clever Programming With Functions | Review prior readings | Mon Feb 21 | ||||
16 | Wed | Feb 16 | Exam Review | Review prior readings |
|
|
|
| |
17 | Fri | Feb 18 | On to Java | OO Design Notes Ch 1.1-1.4 |
|
|
|
| |
18 | Mon | Feb 21 |
| OO Design Notes Ch 1.1-1.4 | HW 6 (Optional) | Mon Mar 07 |
| ||
19 | Wed | Feb 23 | Java Design Recipe | OO Design Notes Ch 1.1-1.4 |
|
|
| ||
20 | Fri | Feb 25 | Defining Inductive Data in Java | OO Design Notes Ch 1.5 |
|
|
|
| |
- | M-F | Feb 28-Mar 4 | Spring Break |
|
|
|
|
|
|
21 | Mon | Mar 07 | Static Class Members and the Singleton Pattern | OO Design Notes Ch 1.6 | Mon Mar 14 | ||||
22 | Wed | Mar 09 | Polymorphism and Interfaces | OO Design Notes Ch 1.8 |
|
|
| ||
23 | Fri | Mar 11 | Handling Exceptions and Errors | OO Design Notes Ch 1.9-1.10, 1.12 |
|
|
|
| |
24 | Mon | Mar 14 | The Strategy and Visitor Patterns | OO Design Notes Ch 1.9, 1.11 | Mon Mar 21 | ||||
25 | Wed | Mar 16 | Visitors, Visitors, Vistors ... | OO Design Notes Ch 1.11 |
|
|
|
| |
26 | Fri | Mar 18 | Accepting Reality: Full Java | OO Design Notes Ch 1.13 |
|
|
| ||
27 | Mon | Mar 21 |
| OO Design Notes Ch. 1.10, 1.13 |
| Fri Apr 4 | |||
28 | Wed | Mar 23 |
|
|
|
|
|
|
|
- | Thurs-Fri | Mar 24-25 | School Holiday |
|
|
|
|
|
|
29 | Mon | Mar 28 | Simple Generics in Java | OO Design Notes Ch 1.13.4 (contains advanced material as well) |
|
| lec29_code.zip (incl. genList) | ||
30 | Wed | Mar 30 | Mutation and Bi-Directional Linked Lists | OO Design Notes Ch 1.13 |
|
|
|
| |
31 | Fri | Apr 1 | BiLists Continued | OO Design Notes Ch 2.1 |
|
|
| ||
32 | Mon | Apr 4 | Mutable Trees | OO Design Notes Ch 2.1 | Wed. Apr 13 | ||||
33 | Wed | Apr 6 | Mutable Trees |
|
|
|
|
| |
34 | Fri | Apr 8 | Mutable Trees |
|
|
|
| ||
35 | Mon | Apr 11 | Mutable Trees and OO Data Structure Review | OO Design Notes |
|
|
| ||
36 | Wed | Apr 13 | OO Sorting Algorithms | CNX Module on Sorting (incl. insertion and selection sort animations) | Milestone 1: Mon. Apr 18 |
| |||
37 | Fri | Apr 15 | Graphical User Interfaces |
|
|
|
|
| |
38 | Mon | Apr 18 | Fast Searching and Memoization |
|
|
| |||
39 | Wed | Apr 20 | Fast Sorting Methods |
|
|
|
|
| |
40 | Fri | Apr 22 | Review |
|
|
|
|
|
...