General | Description | Requirements | Readings | Topics | Policies | Schedule |
Instructor: Bert Huang. Office hours
Monday 4-6 PM, CEPSR 624 (or by appointment)
TA: Priyamvad Deshmukh, UNI prd2112,
Office Hours Wednesday 10 AM - 12 PM and Tuesday 3-5 PM
TA: Nikhil Ramesh, UNI nf2241,
Office Hours Thursday 4 PM - 6 PM and Friday 10 AM - 12 PM
TA Office Hour Location: TA Room
Time: Monday and Wednesday 2:40 PM - 3:55 PM
Location: Mudd 633
Courseworks site (message board
etc.):
http://courseworks.columbia.edu/
Course Homepage (this page):
http://www.cs.columbia.edu/~bert/courses/3137/
From the university bulletin: 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. Design and 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:
(This breakdown is subject to change, but the final percentages should be similar to the percentages listed above.)
Any unexcused late homework submissions will be penalized 10% each day it is late. The penalty begins at the beginning of class the day the assignment is due. The 10% penalties will continue for 3 full days at which point no more late submissions will be graded. Avoid invoking these penalities by starting early and seeking extra help.
Read through the department's policies on academic honesty ( http://www.cs.columbia.edu/education/honesty/). In this course all work is to be done individually.
If you found an error in grading, please type and print your argument on paper and deliver it to a TA. The TA will respond to your complaint and if there is still a disagreement, repeat the same written-argument process with the instructor and he will make a final decision on the disagreement.
Date | Topic | Links and Reading |
---|---|---|
Wed., Jan. 21 | First class. Introduction | Slides. Weiss, Sections 1 and 2 |
Mon., Jan. 26 | Algorithm Analysis, Big-Oh | Weiss, Sections 3.1-3.5. Homework 1 assigned. Slides |
Wed., Jan. 28 | Linked Lists | Slides. Graphing Package and CUNIX/Java info |
Mon., Feb. 2 | Lists in Java | Slides. Weiss 3.6 |
Wed., Feb. 4 | Stacks | Slides. Weiss 3.7 |
Mon., Feb. 9 | Queues | Homework 1 due. Homework 2 assigned. Makefile. Slides. Weiss 4.1-4.2 |
Wed., Feb. 11 | Trees | Slides. Weiss 4.3 |
Mon., Feb. 16 | Binary Search Trees | Slides. Weiss 4.4 |
Wed., Feb. 18 | AVL Trees | Slides. Weiss 4.5 |
Mon., Feb. 23 | Splay Trees | Homework 2 due. Homework 3 assigned. Slides. Supplemental files for hw3 |
Wed., Feb. 25 | Tries | Slides. Weiss 6.1-6.3. Tree Visualizer |
Mon., Mar. 2 | Priority Queues I | Slides. Weiss 6.4 |
Wed., Mar. 4 | Priority Queues II | Slides. Weiss 7.5 (optional) |
Mon., Mar. 9 | Midterm Review | Homework 3 due. Slides |
Wed., Mar. 11 | Midterm Exam | |
Mon., Mar. 16 | Spring Break | |
Wed., Mar. 18 | Spring Break | |
Mon., Mar. 23 | Huffman Coding Trees | Homework 4 Assigned. Supplemental files for hw4. Weiss 10.1.2. Slides |
Wed., Mar. 25 | Hashing I | Slides. Weiss Ch. 5 |
Mon., Mar. 30 | More Hashing/Intro to Graphs | Slides. Modified Hash Table, PrintTable.java. Weiss 9.1-9.2 |
Wed., Apr. 1 | Graphs: Shortest Path | Slides (short version), Slides, Weiss 9.3 - 9.4 |
Mon., Apr. 6 | Graphs: Network Flow | Homework 4 due. Homework 5 Assigned. Supplemental files for hw5, Slides. Weiss 9.5 |
Wed., Apr. 8 | Graphs: Spanning Trees | Slides, (short version). Weiss 9.6, 9.7 |
Mon., Apr. 13 | Graphs: Harder Problems | Slides. Weiss 9.7. Weiss Ch. 8 |
Wed., Apr. 15 | Disjoint Set | Slides(Unfinished). Weiss Ch. 8 |
Mon., Apr. 20 | Disjoint Set Cont... | Homework 5 due. Homework 6 Assigned. Supplemental files for hw6. Slides |
Wed., Apr. 22 | Sorting I | Slides |
Mon., Apr. 27 | Sorting II | Slides |
Wed., Apr. 29 | Data Structures for Machine Learning | Slides |
Mon., May 4 | Final Review | Homework 6 due. Slides |