Time: Tuesdays and Thursdays, 5:40 PM - 6:55 PM
Location: 602 Hamilton Hall
Instructor: Bert Huang. Office hours Wed. 2-4 PM, CEPSR 624 (or by appointment)
TA: Nikhil Ramesh. UNI: nf2241. Office hours tentatively Mon. 2-4 PM, Fri. 10 AM-12 PM
Courseworks site (message board etc.): http://courseworks.columbia.edu/
Course Homepage (this page): http://www.cs.columbia.edu/~bert/courses/3134/
From the university bulletin: Not intended for computer science majors. Data types and structures: arrays, stacks, singly and doubly linked lists, queues, trees, sets, and graphs. Programming techniques for processing such structures: sorting and searching, hashing, garbage collection. Storage management. Rudiments of the analysis of algorithms. Taught in Java. Note: Due to significant overlap, students may receive credit for only one of the following four courses: COMS W3133, W3134, W3137, and W3139.
(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 six 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.
Click here to view slides directory in a frame
|Date||Topic||Links and Reading|
|9/8||Introduction||Homework 0 survey. Homework 1 assigned.|
|9/10||Java/Math review||Homework 0 due. Cunix tutorial. Java 6 API. Java review files(IOException bug not fixed). main.txt. Weiss Ch. 1 and 2.1|
|9/15||Running time analysis||Weiss Ch. 2|
|9/17||Lists||Weiss Ch. 3.1 - 3.5 (for next class too)|
|9/22||Lists continued||Homework 1 due at 5:40 PM. Homework 2 assigned. Weiss Ch. 3.1-3.5|
|9/24||Stacks and queues||Weiss Ch. 3.6-3.7|
|9/29||Trees||Weiss Ch. 4.1-4.2|
|10/1||Binary search trees||Weiss Ch. 4.3|
|10/6||AVL trees||Homework 2 due at 5:40 PM. Homework 3 assigned. Weiss Ch. 4.4|
|10/8||Splay trees, Tries||Weiss 4.5|
|10/13||Priority queues||Weiss 6.1-6.3|
|10/15||Priority queues, continued||Weiss 6.1-6.3|
|10/20||Midterm review||Homework 3 Theory due at 5:40 PM.|
|10/27||Hashing||Homework 3 Programming due at 5:40. Homework 4 assigned. Weiss Ch. 5 (this class and next)|
|10/29||Hashing cont.||Weiss Ch. 5. Hash function comparison code|
|Election Day||No class|
|11/5||Intro to Graphs, Topological Sort||Weiss 9.1-9.3|
|11/10||Shortest Paths||Homework 4 due at 5:40 PM. Homework 5 assigned. Weiss 9.4, 10.3.4|
|11/12||Spanning Trees, Disjoint set||Weiss 9.5, Ch. 8.1-8.5|
|11/17||Disjoint set, continued||Weiss Ch. 8|
|11/19||Sorting||Weiss Ch. 7|
|11/24||Sorting continued||Weiss Ch. 7. Homework 5 due at 5:40 PM.|
|Thanksgiving Day||Turkey and football (no class)|
|12/1||Computational complexity||Weiss 9.7. Homework 6 assigned.|
|12/3||Computational complexity continued. k-d Trees||Weiss 12.6|
|12/10||Final review, continued|
|12/14||Homework 6 Due|