COMP 212 - 01 – INTERMEDIATE PROGRAMMING SYLLABUS

RICE UNIVERSITY - FALL 2001

INSTRUCTORS: 

TEXT BOOKS:  We do not require any text books since none of the existing text books meet our needs and requirements.  We do have a few recommendation however.

COURSE PREREQUISITE:

Comp 210 – programming concepts and design recipes taught in Comp 210 will serve as part of the foundation of object-oriented programming (OOP).

COURSE DESCRIPTION:

This course provides the transition from the functional paradigm (Comp 210) to the object-oriented paradigm. It introduces OOP using Java as the implementation language. It emphasizes proper formulation and abstraction of the problem domain in the programming process in order to build programs that are robust, flexible, and extensible. It teaches how design patterns help formulate and implement abstractions in effective and elegant ways.

The course covers data structures and algorithms to manipulate them that are essential to programming, such as lists, stacks, queues, trees, tables. These structures are implemented as systems of cooperating objects using appropriate design patterns. The course will also cover both stream I/O and event-driven I/O. Since the textbooks do not systematically present these topics, additional lecture notes will be provided.   In such, class and laboratory attendance is mandatory!

Programming assignments are designed to help understand how the above concepts are implemented and used in various situations. These assignments constitute as an integral part of the course.

COURSE OBJECTIVES:

Upon successful completion of the course, the students should know:

COURSE SCHEDULE:

There are basically 14 weeks of classes. We intend to present the following topics in the following order. The time allocated to each topic is only approximate.  We may also change the order of presentation of the topics should we find it necessary to do so.

Weeks 1-3: Transition from functional to object-oriented programming: primitive types, String type, classes, fields, methods, constructors, UML diagrams, abstract classes, interfaces, inheritance, polymorphism, immutable linear recursive structure and the composite pattern, static fields, static methods, the singleton pattern, the visitor pattern, exception handling.

Weeks 4-5 : Graphical User Interface and event-driven programming, strategy pattern, command pattern, the Model-View-Controller (MVC) paradigm, mutable linear recursive structure and the state pattern.

Weeks 6-12:  Arrays, searching, sorting and the template pattern, simple sorting algorithms, quick sort, merge sort, heap sort; common data structures, stacks, queues, binary trees, binary search trees, self-balancing trees, adapter pattern, decorator pattern, iterator pattern, priority queues, hashing, complexity analysis.

Weeks 13-14: Game trees, min-max principle.

The above schedule should be viewed as tentative only. There are a lot of materials to cover, and we may not be able to cover them all, as stated in the schedule. We will vary the pace of the class and change the presentation order of the topics according to how fast the class is absorbing the materials as a whole. If we work hard together, we will cover everything. Please feel free to fit to give me feedback on how the class is coming along. Your input is very important to the success of this class.  We want you to all succeed and we need your help.

GRADING:

The course grade will be based on the programming assignments, homework assignments, class participation and exams. Pop quizzes will be given in the lab from time to time and counted as class works. Assignments’ due dates and rules will be clearly stated at the time they are given. No make-up exams will be given unless there is a legitimate excuse such as proof of medical emergency.

Programming assignments: 40%

3 exams: 45% (15% each)

Homework and class work: 15%

We reserve the right to make slight modifications of the above weighting.

ADA:

Any student with a documented disability needing academic adjustments or accommodations is requested to speak with me during the first two weeks of class. All discussions will remain confidential. Students with disabilities should also contact Disability Support Services in the Ley Student Center.