Department of Computer Science
Middlebury College
CS 201 - Data Structures
Spring 2014
instructor: Dave Kauchak
e-mail: [first_initial][last_name]@middlebury.edu
office hours: MBH 635
M 3-4pm
T/Th 10-11:30am
and by appointment
time: MWF 1:45-2:35pm
location: MBH 104
web page: http://www.cs.middlebury.edu/~dkauchak/classes/cs201/ (or go/cs201)
Lab Tutor Schedule: Sun-Tue 8-10pm in MBH 632
ASI (Colby Horn): M/W 1:30-2:30pm, T/Th 1:30-3:30pm
Computer lab help:
For computer issues in the lab (MBH 505) e-mail cshelp @ middlebury edu.
textbooks:
- Duane A. Bailey, Java Structures, sqrt(7) edition, 2007. The book is available online.
- Something else online :)
general information:
This course is an introduction to the basic computer science data structures. As part of this process, you'll learn how to program in Java as well as general advanced programming concepts such as object-oriented design and complexity analysis.
This class assumes you've had prior programming experience (specifically one of our 100-level courses). If you have any question if the class would be appropriate for you, I'm happy to discuss it with you.
administrivia
digital submission
Announcements
Schedule
Note: This is a tentative schedule and is subject to change
Date | Topic | Reading | Problems | Assignments |
2/10 | admin, Java intro | data types, operators (5 pgs) | | |
2/12 | Java basics | arrays, control (7 pgs) | set 1 - solution | assign 1, part 1 |
2/14 | classes | objects, classes, "Classes"-"More on Classes" | set 2 - solution | assign 1, part 2 |
2/17 | more on classes | - | set 3 - solution | |
2/19 | arrays | - | set 4 - solution | assign 2, part 1 |
2/21 | NO CLASS | | | assign 2, part 2 |
2/24 | inheritence | subclasses | set 5 - solution | |
2/26 | inheritence 2 | Bailey Ch. 1-1.4 | set 6 - solution | assign 3, part 1 |
2/28 | JUnit | super, object, Sections 1 - 3.3 | set 7 - solution | assign 3, part 2 |
3/3 | interfaces, sorting | interfaces (4 pages) Optional: Why use interfaces? | set 8 - solution | |
3/5 | more inheritence, mergesort (ppt) | Ch. 6-6.4 | reading catch-up | assign 4, part 1 |
3/7 | Exceptions, Java I/O | assign 4, part 2, Appendix | set 9 - solution | assign 4, part 2 |
3/10 | asymptotics | Ch. 6.5-6.7 | set 10 - solution | |
3/12 | quicksort (ppt) | | set 11 - solution | assign 5, part 1 |
3/14 | extendable arrays | Ch. 3-3.1 (Vector=ArrayList) | set 12 - solution | assign 5, part 2 |
3/17 | JavaDoc | | set 13 - solution | |
3/19 | midterm review sample questions | | - | |
3/21 | generics | Ch. 4-4.2.1, this | | |
3/24 | NO CLASS | | | |
3/26 | NO CLASS | | | |
3/28 | NO CLASS | | | |
3/31 | ArrayList (ppt) ArrayList code | Ch. 4.2.2-4.3 | | |
4/2 | linked lists | Ch. 9-9.4 | set 14 - solution | assign 6, part 1 |
4/4 | more linked lists | Ch. 9.5-9.6 | set 15 - solution | assign 6, part 2 |
4/7 | stacks and queues | Ch. 10 | set 16 - solution | |
4/9 | stack and queue applications | | - | assign 7 |
4/11 | NO CLASS | | | |
4/14 | trees | Ch. 12 | set 17 - solution | |
4/16 | binary trees | Ch. 14-14.4 | set 18 - solution | assign 8, part 1 |
4/18 | binary search trees | - | set 19 - solution | assign 8, part 2 |
4/21 | priority queues | Ch. 13-13.3 | set 20 - solution | |
4/23 | heaps | 13.4-13.4.2 | - | assign 9, part 1 |
4/25 | more heaps | | set 21 - solution | assign 9, part 2 |
4/28 | hashing | | set 22 - solution | |
4/30 | hashtables | Ch. 15 | set 23 - solution | assign 10 |
5/2 | open addressing | | set 24 - solution | |
5/5 | open addressing 2 | | set 25 - solution | |
5/7 | graphs | Ch. 16-16.3 | - | |
5/9 | graph algorithms | Ch. 16.4.1 | set 26 - solution | |
5/12 | Exam review | | | |
Midterm: Thursday, March 20 7-9pm in MBH 104
Final exam: Self-scheduled during exam week (available now)
Resources