|
COMP 212: Intermediate Programming
Fall 2000
|
Comp212 introduces students to object-oriented program design and the fundamental
algorithms and data structures of imperative programming. All programming assignments are
done in the Java programming language. Several programming projects of moderate size will
help students to learn
- how to design object-oriented programs using design patterns such as
composite/interpreter, command/strategy, visitor, singleton, iterator, flyweight, and
observer;
- how to choose appropriate data structures and algorithms that strike a balance between
logical simplicity and performance; and
- how to write programs in stream-oriented and event-oriented style.
The exercises will involve common data structures such as lists, stacks, queues, search
trees, syntax trees, and hash tables, and will use algorithms for sorting, searching, and
graph traversal. Some exercises will involve writing programs driven by a graphics user
interface (GUI).
Announcements
- Congratulations to everyone who made it to the final
round. Here are the results:
- ryanking (go Labbies!)
- hara
- kunzhang
- jzhan
- lalmagor
- yjliu
- othello
- synthman
- dzang
- steveso
- Please read the revision and clarification for exam
3.
- Exam 3 (the final) is now posted. There is no time
limit on it, so feel free to read it in advance.
- Have a great Break! We hope you enjoyed the class.
Course Material
Staff
- Lecturer:
- Dung Nguyen (dxnguyen@rice.edu) Ph: 713-348-3835
Office hours: MW 12:00 - 13:00, T 11:00 - 12:00 in DH 3097 and by appointment
- Teching Assistants:
- Brian Chen (brianyc@rice.edu)
Office hours: W 14:00 - 15:00 in DH 3119
- Romer Gill (rgil@rice.edu) Ph: 713-526-9239
Office hours: W 13:00 - 15:00 in DH 3112
- Anirban Mandal (anirban@rice.edu) Ph: 713-348-2268
Office hours: T 20:00 - 21:30 in DH 3061
- Scott Schaefer (sschaefe@rice.edu) Ph:
713-529-3763
Office hours: Tu 13:30 - 14:30 in DH 3011
- Labbies (all office hours are in Ryon 102):
To reach everyone above, email comp212@rice.edu
Note: all handouts are also on owlnet at ~comp212/handouts
for copying.
- Syllabus, README Guidelines
- Week 1: Pizza, Java Syntax
- Week 2: Polymorphism
- Week 3: Immutable List (pdf format)
- Week 4: Visitor Pattern, Design Patterns
- Week 5: Mutable Lists, LRS code
- Week 6: Hangman GUI, Java Graphics
- Week 7: Inner Classes, Double Dispatch
- Week 8: Doubly-Linked Lists
- Week 9: Circular Lists
- Week 10: Sorting Taxonomy, Sorting Code
- Week 11: Sorting
- Week 12: Animation and Threads,
BinaryTrees, Binary Tree Docs
- Week 13: Binary Search Trees
- Week 14: Min Max, Alpha-Beta pruning
- Week 15: 2-3-4 Trees, Hashtables
Assignments
- Lists, Due Friday, Sep. 15, 23:59 (solutions)
- Visitor, Due Monday, Sep. 25, 10:00 AM (solutions)
- Hangman, Due Monday, Oct. 23, 10:00 AM
- Polynomials, Due Monday, Oct. 30, 10:00 AM
- RPN Calculator, Due Monday, November 13, 10:00 AM
- Extra Credit Sort Animation, Due Friday,
December 1, 23:59
- Othello, Due Friday, December 8, 23:59
Lab Tutorials
- What:
- Aug. 28, 29: Unix, Emacs, and
StructureBuilder
- Sep. 11, 12: Javadoc, Packages, and
Factories
- Sep. 18, 19: Visitors (Solutions)
- Sep. 25, 26: The State Patterns
- Oct. 2, 3: Exam 1 Review
- Oct. 9, 10: MVC
- Oct. 23, 24: Anonymous Inner Classes
- Oct. 30, 31: Adapters
- Nov. 6, 7: Java I/O
- Nov. 13, 14: Sorting Animation
- Nov. 20, 21: Awt Applets
- Nov. 27, 28: Binary Search Tree
- Dec. 4, 5: Tic-Tac-Toe
- Where: Ryon 102 (back section)
- When:
- M 2:30-4:00 PM (Brian, adupre, Joann, and andrewf)
- M 7:00-8:30 PM (Dennis, Natasha, and Greg)
- Tu 1:00-2:30 PM(Ivy, Steven, and James)
- Tu 2:30-4:00 PM(Steven, Ivy, Sarah, and Anirban)
- Tu 7:00-8:30 PM (Dennis, Dale, Brian, and Scott)
- Who is in each section.
TextBooks
- Ken Arnold and James Gosling, The Java Programming Langauge (Third Edition),
Addison-Wesley, 2000. [Recommended]
- Bruce Eckel, Thinking in Java (Second Edition), Prentice-Hall, 2000. [Dennis
Recommended: I used the first edition of this book when I took 212 and thought it was
easier to read than the one from the authors above. The author keeps a list of mirror sites where you can download the
book for free online.]
- James Cooper, Java Design Patterns, A Tutorial AW 2000. [Recommended]
- Gamma, Helm, Johnson, Vlissides, Design
Patterns: Elements of Reusable Object-Oriented Software [Recommended]
- Mark Grand, Patterns in Java, John Wiley & Sons, 1998. [Recommended]
- David Geary, Graphic Java 2, Mastering the JFC 3rd edition, Sun Microsystems
Press, 1999. [Recommended]
Please let us know of any broken
links