![[Rice University]](http://www.cs.rice.edu/CS/images/ricelogo.gif) |
COMP 212: Intermediate Programming
99.fall
|
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
- Solutions to Exam
3 are here.
- All grades should be in the database now.
- The weighting is as follows:
- hw1 = ?/80
- hw2 = ?/100
- hw3 = ?/100
- quizzes = ?/20
- proj1 = ?/100
- proj2 = ?/100
- proj3 = ?/100
- exam1 = ?/105
- exam2 = ?/100
- exam3 = ?/100
Final average = hw1 * 4% + hw2 * 3% + hw3 * 2% + quizzes * 1% +
proj1 * 20% + proj2 * 15% + proj3 * 10% + (exam1 + exam2 + exam3) * 15%
- Inquiring minds have asked for the stats and stuff on the grades,
so...
- Grade cutoffs and distribution:
- >=97 A+ (3)
- >=90 A (4)
- >=87 A- (5)
- >=84 B+ (5)
- >=80 B (8)
- >=76 B- (5)
- >=72 C+ (4)
- >=65 C (6)
- >=60 C- (8)
- >=54 D+ (2)
- >=50 D (0)
- >=40 D- (1)
- >=0 F (0)
- Mean: 76.8
- stdev: 12.38
- Median: 79.5
- Have a great break!
Course Material
Staff
- Lecturer:
- Dung Nguyen (dxnguyen@rice.edu)
Office hours: M 11:00AM-1:00PM and WF
11:00AM-12:00PM in DH 3097 and by appointment.
- Teching Assistants:
- Labbies:
To reach everyone above, email comp212@rice.edu
TextBooks
- Syllabus,
Grading
Guideline, Exam
1 solutions Exam
2 solutions, Exam
3
- Week 1: PizzaUML
- Week 2: JavaSyntax,
JavaDoc
representation of Pizza problem, Polymorphism
- Week 3: Lab
Reviews
- Week 4: Design
Patterns, Visitor
Pattern, FunList.java,
FunListFW.java
- Week 5: FunFW
classes, FunFWGUI
(JavaDoc)
- Week 6: SimpleGui,
SimpleAnonymousGUI,
awt
- Week 7: FLGUI,
FlApplet,
FunList,
QFList
- Week 8: QFList
- Week 9: DLListDriver,
dllAlgoDoc,
dllDoc,
list
- Week 10: Test
Driver, Circular
list Doc, Circular
Visitor Doc, Circular
List
- Week 11: Binary
Tree Framework
- Week 12: 2-3-4
Tree Lecture Note, 2-3-4
Tree Code and Javadoc
- Week 13: Game
Trees and min-max strategy
- Week 14: Sorting
Taxonomy and source code, Dr.Cartwright's
notes on sorting.
- Week 15: Binary
Search, Hash
Table
Assignments
- Finger
Exercises, Due Monday, Sep. 13, 10:00 AM (solution)
- Boolean
Expressions, Due Friday, Sep. 24, 10:00 AM (solutions)
- Visitor
Pattern, Due Monday, Oct. 4, 10:00 AM (solutions)
- Boolean
Simplifier, Due Thursday, Oct. 28, 11:59PM (updated
10/20 with better diagrams)
- Laundry
Simulation, Due Monday, Nov. 15, 11:59PM
- Othello,
Due Sunday, Dec. 5, 11:59PM
Lab Tutorials
- What:
- Tutorial 1, Sep. 7, 8: Editing
and Compiling Java Programs
- Tutorial 2, Sep. 13, 14: JavaDoc
and Singleton
- Tutorial 3, Sep. 20, 21: Dr.
Java and Interpreter Pattern
- Tutorial 4, Sep. 27, 28: Structure
Builder, Visitor Pattern
- Tutorial 5, Oct. 4, 5: Exam
1 Review
- Tutorial 6, Oct. 11, 12: AWT
GUI Programming, MVC
- Tutorial 7, Oct. 20: Flyweights
and Factories
- Tutorial 8, Oct. 25, 26: Java
Stream IO
- Tutorial 9, Nov. 1, 2: Linear
Recursive Structures
- Tutorial 10, Nov. 8, 9: Stacks,
Queues, and Adapter Pattern
- Tutorial 11, Nov. 15, 16: Exam
2 Review The solutions to some of the
"harder" the problems are here (Exam
2 Review Sol). The solutions to
the "easy" problems will not be
posted. Try to work on the problems instead
of just reading the solutions.
- Tutorial 12, Nov. 22, 23: Tree
Traversals
- Tutorial 13, Nov. 29, 30: Sorting
Algorithms
- Where: Ryon 102 (back section)
- When:
- M 1:00PM- 2:30PM (Kai and Dennis)
- M 2:30PM- 4:00PM (Li and Dennis)
- M 7:00PM- 8:30PM (Kai and Erik)
- T 1:00PM- 2:30PM (Li and Steven)
- Who
is in each section.
Sample Programs
Home pages for Rice and Owlnet.
Please let us know of any broken links