General Description Requirements Readings Topics Policies Schedule

COMS W1007: Object Oriented Programming and Design in Java

General Information

Time: Monday and Wednesdays, 11 AM - 12:15 PM
Location: 173 Macy, Teacher's College. Map.
Instructor: Bert Huang. Office hours Wednesday 2-4 PM, CEPSR 624 (or by appointment)
TA: John Graham jwg2116 Office hours Sunday 1-3 PM, TA Room. Map.
TA: Lauren Pully lep2128, Office hours Friday 11 AM - 1 PM, TA Room
TA: Yipeng Huang, yh2315, Office hours Wednesday 4-6 PM, TA Room
Courseworks site (message board etc.): http://courseworks.columbia.edu/
Course Homepage (this page): http://www.cs.columbia.edu/~bert/courses/1007/

Description

From the university bulletin: The second course for majors in computer science. A rigorous treatment of object-oriented concepts using Java as an example language. Development of sound programming and design skills, problem solving and modeling of real world problems from science, engineering, and economics using the object-oriented paradigm.

Requirements/Prerequisites

Textbook

Topics

(This list is not in any particular order, nor is it comprehensive. It should however provide an idea of what the course will cover.)

Course Policies

Grading

The course will have five homework assignments distributed throughout the semester. Each will be a combination of programming problems and written problems.

There will be a midterm exam and a final exam. Both will be closed book and closed notes.

The final grade will be a weighted sum of the following:

Late Homework Policy

Homework that is submitted late without permission will be penalized according to the following formula:
(Penalized score) = (Your raw score) * (1-0.1*(# of days past deadline))
For example, if your raw score is 10 points and you submit two days late, your penalized score will be 10*(1-(1-0.1*2)) = 10*(1-0.2) = 8.

This formula will apply for up to three days, after which, the homework will not be accepted and will receive a grade of zero. Avoid invoking these penalities by starting early and seeking extra help.

Academic Honesty

Read through the department's policies on academic honesty, located at http://www.cs.columbia.edu/education/honesty/, especially the section on procedures and penalties. In this course all work is to be done individually. Note that academic dishonesty is extraordinarily easy to catch in computer science.

Schedule of classes (tentative)

Click here for the slides directory. And click here for some example code.

#DateTopicsReadings and Assignments
1Jan. 20, 2010 IntroductionCourse survey (1 point extra credit on final grade!)
2Jan. 25, 2010 Java review, Programming styleHorstmann Ch. 1. Cunix help
3Jan. 27, 2010 Design tools (UML, CRC cards, Use cases)Horstmann Ch. 2
Feb. 1, 2010 Class canceled; Distinguished Lecture
4Feb. 3, 2010 Designing classes, programming by contract, more examplesHomework 1 assigned. Horstmann Ch. 3
5Feb. 8, 2010 Introduction to Java graphicsCode. Horstmann Ch. 4 (4.6-4.9)
Feb. 10, 2010 Interfaces and Polymorphism. Extra office hour in 624 CEPSRHorstmann Ch. 4 (4.1-4.5, 4.10)
6Feb. 15, 2010 Interfaces and Polymorphism
7Feb. 17, 2010 Introduction to programming patternsHomework 1 due at 11 AM. Homework 2 assigned. Example menu file menuFile.txt
8Feb. 22, 2010 Java GUI programming
9Feb. 24, 2010 Java GUI programming continuedHorstmann Ch. 6
10Mar. 1, 2010 Inheritance and hierachyHorstmann 7.1-7.4
11Mar. 3, 2010 Types in Java (the hierarchy of Java)Homework 2 due. Horstmann 7.1-7.4
12Mar. 8, 2010 Midterm review
Mar. 10, 2010 Midterm Exam
Spring Break
13Mar. 22, 2010 The Object ClassHomework 3 assigned. Horstmann 7.5-7.6
14Mar. 24, 2010 GenericsHorstmann 7.6-7.7
15Mar. 29, 2010 FrameworksHorstmann 8.1-8.3
16Mar. 31, 2010 Case study: Graph Editor FrameworkHorstmann 8.4
17Apr. 5, 2010 MultithreadingHomework 3 due at 11 AM. Homework 4 assigned. Horstmann 9.1
18Apr. 7, 2010 Multithreading continuedHorstmann Ch. 9
19Apr. 12, 2010 Data Structures, the Collections Framework
20Apr. 14, 2010 More Data Structures
21Apr. 19, 2010 Leftover Design PatternsHomework 4 due at 11 AM. Homework 5 assigned. Horstmann Ch. 10
22Apr. 21, 2010 Networking
23Apr. 26, 2010 More Networking
24Apr. 28, 2010 Recursion, OOP and CS
25May 3, 2010 Final reviewHomework 5 due at 11 AM.
26May 10, 2010 Final exam. 9AM-noon