General Description Requirements Readings Topics Policies Schedule
COMS 3134: Data Structures in Java

Data Structures in Java

General Information

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.):
Course Homepage (this page):


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.)

Course Policies


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:

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, especially the section on procedures and penalties. In this course all work is to be done individually.

Schedule of classes (tentative)

Click here to view slides directory in a frame

DateTopicLinks and Reading
9/8Introduction Homework 0 survey. Homework 1 assigned.
9/10Java/Math reviewHomework 0 due. Cunix tutorial. Java 6 API. Java review files(IOException bug not fixed). main.txt. Weiss Ch. 1 and 2.1
9/15Running time analysisWeiss Ch. 2
9/17ListsWeiss Ch. 3.1 - 3.5 (for next class too)
9/22Lists continuedHomework 1 due at 5:40 PM. Homework 2 assigned. Weiss Ch. 3.1-3.5
9/24Stacks and queuesWeiss Ch. 3.6-3.7
9/29TreesWeiss Ch. 4.1-4.2
10/1Binary search treesWeiss Ch. 4.3
10/6AVL treesHomework 2 due at 5:40 PM. Homework 3 assigned. Weiss Ch. 4.4
10/8Splay trees, TriesWeiss 4.5
10/13Priority queuesWeiss 6.1-6.3
10/15Priority queues, continuedWeiss 6.1-6.3
10/20Midterm reviewHomework 3 Theory due at 5:40 PM.
10/22Midterm exam
10/27HashingHomework 3 Programming due at 5:40. Homework 4 assigned. Weiss Ch. 5 (this class and next)
10/29Hashing cont. Weiss Ch. 5. Hash function comparison code
Election DayNo class
11/5Intro to Graphs, Topological SortWeiss 9.1-9.3
11/10Shortest PathsHomework 4 due at 5:40 PM. Homework 5 assigned. Weiss 9.4, 10.3.4
11/12Spanning Trees, Disjoint setWeiss 9.5, Ch. 8.1-8.5
11/17Disjoint set, continuedWeiss Ch. 8
11/19SortingWeiss Ch. 7
11/24Sorting continuedWeiss Ch. 7. Homework 5 due at 5:40 PM.
Thanksgiving DayTurkey and football (no class)
12/1Computational complexityWeiss 9.7. Homework 6 assigned.
12/3Computational complexity continued. k-d TreesWeiss 12.6
12/8Final review
12/10Final review, continued
12/14Homework 6 Due