Versions Compared

Key

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

...

  • Dr. Cartwright: MWF 9:00 AM - 10:00 AM
  • Dr. Wong:   See home page
  • Alina: MWF 11:00 AM -12:00 PM
  • Kamal:  MF 3:00 PM - 5:00 PM
  • Nicholas: TR 7:00 PM - 8:30 PM

e-mail the entire class: comp211s11 at owlspace-ccm.rice.edu 

...

  • 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.
  • Design Patterns Lens  - A collection of short descriptions of the design patterns covered in the course.
  • 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 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 work. DrJava to work. (Addendum: DrJava releases starting in 2011 can also run using a Java 7 JDK.) 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 the Apple Java 5.0 or Java 6.0 JDK.

...

 

Day

Date(2011)

Topic

Reading

Lectures

Problems

Due(2011)

Lab

Supplements

1

Mon

Jan 10

Introduction & Scheme Primitives

 

L 1

HW 0

W Jan 12

Lab 0

Pair Programming

2

Wed

Jan 12

Function definitions and conditionals

Read Chs. 1-10

L 2

HW 1

F Jan 21

 

 

3

Fri

Jan 14

Data Definitions & The Design Recipe

Read Chs. 11-13

L 3

 

 

 

 

-

Mon

Jan 17

School Holiday

 

 

 

 

Lab 1

 

4

Wed

Jan 19

Data-directed design

Read Chs. 14-15

L 4

 

 

 

 

5

Fri

Jan 21

Data-directed design: trees

 

L 5

HW 2

Fri Mon Jan 28 31

 

 

6

Mon

Jan 24

Mutually Referential Data Definitions

Read Chs. 16-17

L 6

 

 

Lab 2

Class Demo

7

Wed

Jan 26

Local Definitions and Lexical Scope  

Read Ch. 18

L 76

 

 

 

 

8

Fri

Jan 28

Functional Abstraction and Polymorphism Local Definitions and Lexical Scope

Read Chs. 19-20

L 87

HW 3

 

  Fri Feb 4

 

 

9

Mon

Jan 31 Functions as Values

Functional Abstraction and Polymorphism

Read Chs. 21-22

L 98

 

HW 3

Mon Feb 7 

Lab 3

 

10

Wed

Feb 02 Lambda

the Ultimate Functions as Values

Read Ch. 24

L 109

 

 

 

 

11

Fri

Feb 04 Generative

Recursion Lambda the Ultimate

Read Chs. 25-28

L 1110

HW 4

 

  Fri Feb 11

 

 

12

Mon

Feb 07

Generative Recursion Illustrated

Study Chs. 25-28

L 1211

 

HW 4

Mon Feb 14 

Lab 4

 

13

Wed

Feb 09

Complexity and Accumulators

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

L 13

 

 

 

 

14

Fri

Feb 11

Accumulators and Tail Calls

Read Chs. 30-32

L 14

HW 5

 

  Fri Feb 18

 

 

15

Mon

Feb 14

Clever Programming With Functions

Review prior readings

L 15

 

HW 5

Mon Feb 21 

Lab 5

210 Exam 1
210 Exam 2
Solution to 12.4.2

16 16

Wed

Feb 16

Vectors and Iteration Exam Review

Review prior readings

L 16, L 17

 

 

 

 

17

Fri

Feb 18

Exam Review

Review prior readings

L 17

HW 6 (optional)
Exam 1

On to Java

OO Design Notes Ch 1.1-1.4

L 18

 

  Fri Feb 25

 

 

18

Mon

Feb 21

On to Java  

OO Design Notes Ch 1.1-1.4

L 18

 

HW 6 (Optional)
Exam 1

Mon Mar 07 

Lab 6

parse/unparse  

19

Wed

Feb 23

Java Design Recipe

OO Design Notes Ch 1.1-1.4

L 19

 

 

 

IntList
  IntListTest

20

Fri

Feb 25

Defining Inductive Data in Java

OO Design Notes Ch 1.5
Tony Hoare: "Null References: The Billion Dollar Mistake"

L 20

HW 7  

 

 

IntList.dj0
IntListTest.dj0  

-

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

L 21

 

HW 7

Mon Mar 14 

Lab 7

ObjectList.dj1
ObjectListTest.dj1

22

Wed

Mar 09

Polymorphism and Interfaces

OO Design Notes Ch 1.8

L 22

 

 

 

ComparableList.dj1
ComparableListTest.dj1

23

Fri

Mar 11

Handling Exceptions and Errors

OO Design Notes Ch 1.9-1.10, 1.12

L 23

HW 8

 

  Fri Mar 11

 

 

24

Mon

Mar 14

The Strategy and Visitor Patterns

OO Design Notes Ch 1.9, 1.11

L 24

 

HW 8

Mon Mar 21 

Lab 8

IntList.dj1
IntListVisitor.dj1
IntListTest.dj1

25

Wed

Mar 16

Visitors, Visitors, Vistors ...

OO Design Notes Ch 1.11

L 25

 

 

 

 

26

Fri

Mar 18

Accepting Reality: Full Java, Arrays, Mutation

OO Design Notes Ch 1.13

L 26

HW 9

 

  Wed Mar 30

 

IntList.java
IntListTest.java

27

Mon

Mar 21

Visibility, Type-Checking, and Generics  

OO Design Notes Ch. 1.10, 1.13

L 27   

HW 9

 Fri Apr 4

Lab 9

List.java
ListTest.java

28

Wed

Mar 23

Generics with Discretion  

 

L 28  

 

 

 

 

29 -

Thurs-Fri

Mar 24-25

Mutation and Bi-Directional Linked Lists

OO Design Notes Ch 1.13

School Holiday

 

  L 29

 

 

 

 

30 29

Mon

Mar 28

Mar 28

Simple Generics in Java Graphical User Interfaces

OO Design Notes Ch 3 1.13.4 (contains advanced material as well)

L 3029

 

 

Lab 10

lec29_code.zip  (incl. genList)

31 30

Wed

Mar 30

Anonymous Inner Classes and Task Decomposition Mutation and Bi-Directional Linked Lists

OO Design Notes Ch 21.1 13

L 3130

HW 10  

 

 

BigBiList.java
BigBiListTest.java

 

31 -

Fri

Apr 1

School Holiday

BiLists Continued

OO Design Notes Ch 2.1

L 30 

 

 

  

BigBiList
  BigBiListTest

32

Mon

Apr 4

Mutable Trees

OO Design Notes Ch 2.1

L 32

 

HW 10

Wed. Apr 13 

Lab 11

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

33

Wed

Apr 6

Review: Confronting the Reality of Full Java Mutable Trees

 

L 3332

 

 

 

 

34

Fri

Apr 8

QuickSort Revisited Mutable Trees

 

L 3432

HW 11  

 

 

FunctionalQuicksort
CallableQuicksort
AlternateCallableQuicksort
ParallelQuicksort
QuicksortWithComparable QuicksortTest

35

Mon

Apr 11 Graphical User Interfaces II

Mutable Trees and OO Data Structure Review

OO Design Notes

L 35 32

 

 

Lab 12

 

36

Wed

Apr 13

OO Sorting Algorithms

CNX Module on Sorting 

L 36

 

(incl. insertion and selection sort animations)

L 36

HW 11

Milestone 1: Mon. Apr 18
Milestone 2: Fri. Apr 22 

 

Design Patterns Slides
Design Patterns Paper
Sorter Demo

37

Fri

Apr 15 Fast

Searching with Balanced Trees Graphical User Interfaces

 

L 37, 2010

HW 12  

 

 

Red-Black Trees
Animated PPT
OOPSLA pape
Executable demo
Demo source code  

38

Mon

Apr 18

Fast Searching and Memoization

 

L 38

 

 

Lab 13

MyHashMap.java
MyHashMapTest.java
BetterMath.java

39

Wed

Apr 20 Parallel

Programming Tradeoffs Fast Sorting Methods

 

L 39

 

 

 

 

40

Fri

Apr 22

Exam II Review

 

L 40

 

 

Lab 14 

 

Grading, Honor Code Policy, Processes and Procedures

...

Reading: For each lecture, there is associated reading. Students are required to complete the reading before the class associated with this reading.h2

Other Resources

...

The New Turing Omnibus, A. K. Dewdney

QA76 .D448 1993

Algorithmics: The Spirit of Computing, David Harel

QA76.9 .A43 H37 2004

Computers Ltd.: What They Really Can't Do, David Harel

QA76.5 .H3575 2000

Great Ideas in Computer Science, Alan W. Biermann

QA76 .B495 1997

Computer Science: An Overview, J. Glenn Brookshear

QA76 .B743 1997

G�delGodel, Escher, Bach: An Eternal Golden Braid, Douglas Hofstadter

QA9.8 .H63 1980

Metamagical Themas, Douglas Hofstadter

Q335 .H63 1985

...