Instructor: James Paton
paton@cs.wisc.edu
Office hours: 9:30-10:30am MTuWTh 3379 CS
TA: Nisha Kiran
nkiran@cs.wisc.edu
Office hours: ??? 3395 CS
Study of data structures (including stacks, queues, trees, graphs, and hash tables) and their applications. Development, implementation, and analysis of efficient data structures and algorithms (including sorting and searching). Experience in use of an object-oriented programming language.
| Week | Readings | Topics | Other | |
|---|---|---|---|---|
| 1 | 6/18 | Introduction | Intro to CS367 | course information |
| 6/19 | interfaces, Objects, Java generics | |||
| 6/20 | Lists | lists (array-based) | ||
| 6/21 | iterators, comparators | |||
| 2 | 6/25 | Exceptions | using the command line, exceptions | |
| 6/26 | exceptions, intro to linked lists | |||
| 6/27 | Linked Lists | primitive vs reference types, linked lists | P1 due (midnight Wednesday) | |
| 6/28 | linked lists | |||
| 3 | 7/2 | Complexity | complexity | |
| 7/3 | complexity | |||
| 7/4 | Independence Day | |||
| 7/5 | Stacks and Queues | stacks and queues | P2 due (midnight Thursday) | |
| 4 | 7/9 | Recursion | recursion | |
| 7/10 | recursion | Midterm: Thursday, 7/12 in class | ||
| 7/11 | Searching | recursion, search, intro to trees | ||
| 7/12 | MIDTERM EXAM | |||
| 5 | 7/16 | Intro to Trees | general trees, binary trees | |
| 7/17 | Binary Search Trees | binary search trees | ||
| 7/18 | binary search trees, balanced search trees | P3 due (midnight Wednesday) | ||
| 7/19 | Red-Black Trees | red-black trees | ||
| 6 | 7/23 | Priority Queues | red-black trees, priority queues, heaps | |
| 7/24 | priority queues, heaps, intro to hashing | |||
| 7/25 | Hashing | hashing | ||
| 7/26 | hashing | P4 due (midnight Thursday) | ||
| 7 | 7/30 | Graphs | graphs | |
| 7/31 | graphs | |||
| 8/1 | Sorting | graphs, sorting | ||
| 8/2 | sorting | |||
| 8 | 8/6 | course wrap-up | ||
| 8/7 | ||||
| 8/8 | P5 due (midnight Wednesday) | |||
| 8/9 | FINAL EXAM |
Lecture notes © 2012 by CS367 Instructors.
You get five (5) free late days to use throughout the semester. They can be used on homework assignments and programming assignments. After you have run out of late days, you may no longer turn in late work.
All assignments are due at midnight. An assignment counts as one day late if it is turned in after midnight but before midnight the next day.
You may not collaborate on written homework assignments. They must be completed individually. You may discuss written homeworks with other students, however, but you must write up your answers individually. If you work on problems with other students, do not take notes while you are working together. In other words, if you work on homeworks with another student, you should each write up your answers at separate tables without referencing any written materials from your time together.
You may complete programming assignments in pairs or alone. If you work as part of a pair, exactly one of the pair should turn in the homework, and the other member should simply turn in a README file giving their name and the name of their partner.
Attendance and participation are required. Participation consists in attending lecture, volunteering to answer questions posed during lecture, and asking good questions during lecture. Toward the end of the semester, there will be an opportunity to do a short presentation in order to boost your participation grade.
Midterm: 20%
Final: 20%
Programs (5): 35%
Homeworks (3): 20%
Attendance and participation: 5%