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/
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.
(This list is not in any particular order, nor is it comprehensive. It should however provide an idea of what the course will cover.)
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:
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.
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.
Click here for the slides directory. And click here for some example code.
|#||Date||Topics||Readings and Assignments|
|1||Jan. 20, 2010||Introduction||Course survey (1 point extra credit on final grade!)|
|2Jan. 25, 2010||Java review, Programming style||Horstmann 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 examples||Homework 1 assigned. Horstmann Ch. 3|
|5Feb. 8, 2010||Introduction to Java graphics||Code. Horstmann Ch. 4 (4.6-4.9)|
|Feb. 10, 2010||Horstmann Ch. 4 (4.1-4.5, 4.10)|
|6Feb. 15, 2010||Interfaces and Polymorphism|
|7Feb. 17, 2010||Introduction to programming patterns||Homework 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 continued||Horstmann Ch. 6|
|10Mar. 1, 2010||Inheritance and hierachy||Horstmann 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|
|13Mar. 22, 2010||The Object Class||Homework 3 assigned. Horstmann 7.5-7.6|
|14Mar. 24, 2010||Generics||Horstmann 7.6-7.7|
|15Mar. 29, 2010||Frameworks||Horstmann 8.1-8.3|
|16Mar. 31, 2010||Case study: Graph Editor Framework||Horstmann 8.4|
|17Apr. 5, 2010||Multithreading||Homework 3 due at 11 AM. Homework 4 assigned. Horstmann 9.1|
|18Apr. 7, 2010||Multithreading continued||Horstmann Ch. 9|
|19Apr. 12, 2010||Data Structures, the Collections Framework|
|20Apr. 14, 2010||More Data Structures|
|21Apr. 19, 2010||Leftover Design Patterns||Homework 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 review||Homework 5 due at 11 AM.|
|26May 10, 2010||Final exam. 9AM-noon|