Lectures
| Feb. 5 (F) | Introduction / Course overview [Hello.java] | |
| Feb. 8 (M) | Java overview [LetterFrequency.java] | HW 1 out |
| Feb. 10 (W) | Java overview [Person.java, Piano.java, pianostore.java] | |
| Feb. 12 (F) | Java overview [Bag.java] | |
| Feb. 15 (M) | Vectors [SuperBag.java] | HW 1 due / HW 2 out |
| Feb. 17 (W) | Typing and Generics [Vector.java] | |
| Feb. 19 (F) | (No class - holiday.) | |
| Feb. 22 (M) | Recursion / Binary Search | HW 2 due / HW 3 out |
| Feb. 24 (W) | Big O | |
| Feb. 26 (F) | Sorting [InsertionSort.java] | |
| Mar. 1 (M) | Sorting | HW 3 due / HW 4 out |
| Mar. 3 (W) | Lists [IntList2.java] | |
| Mar. 5 (F) | Lists [IntList.java, IntListTester.java, MergeSort.java] | |
| Mar. 8 (M) | Stacks | HW 4 due |
| Mar. 10 (W) | (No class - Exam day.) [Sample Midterm, Solution] | Midterm 1 [Solution PDF] |
| Mar. 12 (F) | Skip lists | |
| Mar. 15 (M) | Trees / Call Stacks | HW 5 out |
| Mar. 17 (W) | Trees [OpTree.java, AddOperator.java, Operand.java, Operator.java, MultiplyOperator.java] | |
| Mar. 19 (F) | Tree traversals | |
| Spring Break | ||
| Apr. 5 (M) | Huffman codes | |
| Apr. 7 (W) | Priority queues | HW 5 due / HW 6 out |
| Apr. 9 (F) | Priority queues | |
| Apr. 12 (M) | Binary search trees | HW 6 due / HW 7 out |
| Apr. 14 (W) | Balanced search trees | |
| Apr. 16 (F) | Graphs [Graph.java] | |
| Apr. 19 (M) | Graphs [DFSStack.java, BFSQueue.java] | HW 7 due / HW 8 out |
| Apr. 21 (W) | Graphs [MST.java] | |
| Apr. 23 (F) | Graphs | |
| Apr. 26 (M) | Graphs | HW 8 due |
| Apr. 28 (W) | (No class - exam day.) [Sample Midterm 2, Solution] | Midterm 2 [Solution PDF] |
| Apr. 30 (F) | Hash tables | |
| May 3 (M) | Hash tables | HW 9 out |
| May 5 (W) | Bloom filters | |
| May 7 (F) | BitTorrent | |
| May 10 (M) | TBD | HW 9 due / HW 10 out |
| May 12 (W) | TBD | |
| May 14 (F) | Overview |
Course Info :
Lecture: MWF 9-9:50, Bronfman 103
Professor: Barath Raghavan
Office Hours: Tu 10-noon, 2-4; Th 10-noon, 2-4.
TAs: Chansoo Lee, Sam Jackson
TA Lab Hours: Sam (Sun 8-10pm), Chansoo (Mon 8-10pm)
Homework Assignments
Homework 1 [PDF]. Files [Library1.java; (extra) Decodable.java]. Solutions [Library1.java; Decodable.java; CoinStrip.java]
Homework 2 [PDF]. Files [(extra) ReverseLines.java]. Solutions [WordGen.java, FrequencyList.java, MyTable.java, ReverseLines.java]
Homework 3 [PDF]. Files [Recursion.java; (extra) MusicGen.java]. Solutions [Recursion.java, MusicGen.java]
Homework 4 [PDF]. Files [Sort.java; IntList.java; DigitList.java; Reverse.java; (extra) DList.java, DListTester.java]. Solutions [DigitList.java, Reverse.java, DList.java]
Homework 5 [PDF]. Files [ps.tar.gz; Documentation; SkipList.java]. Solutions [Interpreter.java, SkipList.java]
Homework 6 [PDF]. Files [RecoverTrees.java]. Solution [RecoverTrees.java]
Homework 7 [PDF]. Files [sample.txt, sample.txt.sq, speciation.mp3.sq]. Solutions [squish.java, HuffmanTree.java, BitRead.java, BitWrite.java]
Homework 8 [PDF]. Files [PathFinder.java, city-dist.txt]. Solutions [PathFinder.java]
Homework 9 [PDF].
Homework 10 (extra credit only) [problem set volume 1]
Course Overview
Official Course Description: This course builds on the programming skills acquired in Computer Science 134. It couples work on program design, analysis, and verification with an introduction to the study of data structures. Data structures capture common ways in which to store and manipulate data, and they are important in the construction of sophisticated computer programs. Students are introduced to some of the most important and frequently used data structures: lists, stacks, queues, trees, hash tables, graphs, and files. Students will be expected to write several programs, ranging from very short programs to more elaborate systems. Emphasis will be placed on the development of clear, modular programs that are easy to read, debug, verify, analyze, and modify.
Course Grading and Logistics
50%: Ten homework assignments each worth 5% of your total grade. Each homework is graded out of 100 points. Homeworks may be turned in late; a homework turned in n hours late loses 2n/6 points.
30%: Two midterms each worth 15% of your total grade.
20%: Final exam.