Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • Principles of Object-Oriented Programming by Zung Nguyen and Stephen Wong. An online self-contained introduction to OOP in Java roughly corresponding to the former Comp 212 course. It is reasonably complete, but still under construction.
  • Index to online Java Tutorials by Sun Microsystems The Sun tutorials refer to the full Java language not the Elementary and Intermediate language levels supported by DrJava.  Nevertheless, they cover many important language details in depth, such as the complete collection of primitive operators on primitive data types.
  • Java Basics by Fred Swartz is a clearly written traditional introduction to Java that focuses on Java mechanics rather than OO Design. It can be helpful in learning the {\em mechanics} of writing full Java code. Please ignore what he says about program design.
  • Java Notes by Fred Swartz is a reasonably comprehensive Java reference that is a good supplement to the official Sun documents.

DrJava: Please download and use the DrJavapedagogic DrJava pedagogic programming environment available from drjava.org. You must install either the Java 5 or Java 6 JDK on your machine for DrJavato DrJava to work. If you machine is running some flavor of Windows or Linux, go to the \[Sun 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. DrJavawill DrJava will run on either a Java 5.0 or Java 6.0 JDK.

...

Note that future date schedules are only guidelines. Future homeworks and slides may contain materials from previous Comp 210 and Comp 212 classes. New material will be provided before the corresponding class. There will only be two 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 no final examination.

  L 20

L 25L 27

 

Day

Date(2009)

Topic

Reading

Lectures

Problems

Due(2009)

Lab

Supplements

1

Mon

Jan 11

Introduction

 

L 1

HW 0

W Jan 13

Lab 0

Pair Programming

2

Wed

Jan 13

Scheme primitives; function and data definitions

Skim Chs. 1-10

L 2

HW 1

F Jan 22

 

 

3

Fri

Jan 15

Inductive data, conditionals, and the design recipe

Review Chs. 1-10

L 3

 

 

 

 

-

Mon

Jan 18

School Holiday

 

 

 

 

 

 

4

Wed

Jan 20

Data-directed design I

Read Chs. 11-13

L 4

 

 

Lab 1

 

5

Fri

Jan 22

Data-directed design II

Read Chs. 14-15

L 5

HW 2

Fri Jan 29

 

 

6

Mon

Jan 25

Mutually Referential Data Definitions

Skim Chs. 16-17

L 6

 

 

Lab 2

 

7

Wed

Jan 27

Local definitions and Lexical Scope

Read Ch. 18

L 7

 

 

 

 

8

Fri

Jan 29

Functions as Values

Read Chs. 21-22

L 8

HW 3

Fri Feb 5

 

 

9

Mon

Feb 01

Functional Abstraction and Polymorphism

Read Chs. 19-20

L 9

 

 

Lab 3

 

10

Wed

Feb 03

Lambda the Ultimate

Read Ch. 24

L 10

 

 

 

 

11

Fri

Feb 05

Generative Recursion

Read Chs. 25-28

L 11

HW 4

Fri Feb 15

 

 

12

Mon

Feb 08

Generative Recursion Illustrated

Study Chs. 25-28

L 12

 

 

Lab 4

 

13

Wed

Feb 10

Complexity and Accumulators

Read Chs. 29.1-2
Skim Chs. 30-32

L 13

 

 

 

 

14

Fri

Feb 12

Accumulators and Tail Calls

Read Chs. 30-32

L 14

HW 5

Fri Feb 19

 

 

15

Mon

Feb 15

Clever Programming With Functions

Review prior readings

L 15

 

 

Lab 5

210 Exam 1|CSWIKI:211^exam-1.pdf||\
210 Exam 2|CSWIKI:211^exam- 2.pdf||\

16

Wed

Feb 17

Vectors and Iteration

Review prior readings

L 16

 

 

 

 

17

Fri

Feb 19

Exam Review

Review prior readings

L 17

HW 6 (optional)
Exam 1

Fri Feb 26

 

 

18

Mon

Feb 22

On to Java

OO Design Notes Ch 1.1-1.4

L 18

 

 

Lab 6

parse/unparse

19

Wed

Feb 24

Java Design Recipe

OO Design Notes Ch 1.1-1.4

L 19

 

 

 

 

20

Fri

Feb 26

Defining Inductive Data in Java

OO Design Notes Ch 1.5

L 20

, HW 7 

 

IntList.dj0|CSWIKI:211^IntList.dj0||\dj1
IntListTest.dj0|CSWIKI:211^IntListTest.dj0||\dj1

-

M-F

Mar 01-05

Spring Break

 

 

 

 

 

 

21

Mon

Mar 08

Static Class Members and the Singleton Pattern

OO Design Notes Ch 1.6

L 21

 

 

Lab 7

ObjectList.dj1
ObjectListTest.dj1

22

Wed

Mar 10

Polymorphism and Interfaces

OO Design Notes Ch 1.8

L 22

 

 

 

ComparableList.dj1
ComparableListTest.dj1

23

Fri

Mar 12

Handling Exceptions and Errors

OO Design Notes Ch 1.9-1.10, 1.12

L 23

HW 8

Fri Mar 13

 

 

24

Mon

Mar 15

The Strategy and Visitor Patterns

OO Design Notes Ch 1.9, 1.11

L 24

 

 

Lab 8

IntList.dj1
IntListVisitor.dj1
IntListTest.dj1

25

Wed

Mar 17

Visitors, Visitors, Vistors ...

OO Design Notes Ch 1.11

L 25

 

 

 

26

Fri

Mar 19

Full Java, Arrays, Mutation

OO Design Notes Ch 1.13

L 26

HW 9

Wed Mar 31

 

IntList.java
IntListTest.java

27

Mon

Mar 22

Visibility, Type-Checking, and Generics

OO Design Notes Ch. 1.10, 1.13

L 27

 

 

Lab 9

List.java
ListTest.java

28

Wed

Mar 24

Generics with Discretion

 

L 28

 

 

 

 

29

Fri

Mar 26

Mutation and Bi-Directional Linked Lists

OO Design Notes Ch 1.13

L 29

 

 

 

 

30

Mon

Mar 29

Graphical User Interfaces

OO Design Notes Ch 3

L 30

 

 

Lab 10

 

31

Wed

Mar 31

Anonymous Inner Classes and Task Decomposition

OO Design Notes Ch 2.1

L 31

HW 10

 

 

BigBiList.java
BigBiListTest.java

-

Fri

Apr 2

School Holiday

 

 

 

 

 

 

32

Mon

Apr 5

Mutable Trees

OO Design Notes Ch 2.1

L 32

 

 

Lab 11

TreeMap.java
TreeMapTest.java
OOTreeMap.java
OOTreeMapTest.java

33

Wed

Apr 7

Review: Confronting the Reality of Full Java

 

L 33

 

 

 

 

34

Fri

Apr 9

QuickSort Revisited

 

L 34

HW 11

 

 

FunctionalQuicksort.java
CallableQuicksort.java
CallableQuicksortAlternateOrder.java
ParallelQuicksort.java
QuicksortWithComparable.java
QuicksortTest.java

35

Mon

Apr 12

Graphical User Interfaces II

OO Design Notes

L 35

 

 

Lab 12

 

36

Wed

Apr 14

OO Sorting Algorithms

 

L 36

 

 

 

Design Patterns for Sorting.pptx
Design Patterns for Sorting SIGCSE paper.pdf
Sorter Demo code.zip

37

Fri

Apr 16

Fast Searching with Balanced Trees

 

L 37

HW 12

 

 

Red-Black Trees|CSWIKI:211^Okasaki-Red-Black.pdf||\
Animated PPT
OOPSLA paper on balanced trees
Executable demo
Demo source code

38

Mon

Apr 19

Fast Searching and Memoization

 

L 38

 

 

Lab 13

MyHashMap.java
MyHashMapTest.java
BetterMath.java

39

Wed

Apr 21

Parallel Programming Tradeoffs

 

L 39

 

 

 

 

40

Fri

Apr 23

Exam II Review

 

L 40

 

 

Lab 14

 

...

  • comp211-discussion-l@mailman.rice.edu
    (subscribe here (https:mailmanriceedumailmanlistinfocomp211discussionl)):
    • This is where important announcements related to the class will be posted.
    • Students are required to sign up to this list.
    • You may use this list for open discussions relating to the course. \
      Postings are expected to abide by standard \
      Netiquette.
    comp211-teachers@mailman.rice.edu:
    • Any questions relating to the course can be sent to this list.
    • Specific questions about homework problems and grading can be directed here.
  • cs-events-l@mailman.rice.edu:
    • Announcements relating to talks and other interesting events hosted by the CS departments.
    • Subscription to this list is optional but highly recommended

...