Prerequisite: COSC 211, 221.Instructor: Matt Evett ; Dept. Computer Science; Pray-Harold 511
Tel: 734-487-1227
e-mail: mevett@emich.edu
Course web site: http://canvas.emich.edu/Office Hours: T 10:00 -3:00; Th 10:00-12:00
(These times are subject to change. Please see my web site, http://emunix.emich.edu/~evett for up-to-date hours.) You may drop by at times other than office hours, but in that case I cannot guarantee that I'll be able to see you.
Textbook: Weiss, Data Structures and Algorithm Analysis in Java, 3rd Edition, Pearson, 2012.
Course Summary: Students successfully completing this course will understand the beneficial concepts of abstract data types (ADTs) including encapsulation, abstraction, security, polymorphism, inheritance, etc. Students will obtain proficiency in the use and implementation of the most common abstract data types, including trees, linked lists, queues, hash tables, stacks, etc. The course also covers some of the basic techniques for complexity and performance analysis of programs using ADTs.
The course is project oriented, with Java programming assignments spread throughout the semester. Students will learn advanced Java programming techniques including the use of inheritance, generic containers, and the Java Container Library.
Date | Text | Projects due |
1/7, 1/9 | Java review (esp. exception handling, Javadoc and packages), Ch 1 |
|
1/14, 16 | Ch 1 & Java review (esp. interfaces), design patterns, functors, generics | |
MLK Day, 1/23 | Ch 2 (analysis) | HW#1 |
1/28, 30 | Ch 2 (analysis) | HW#1.5 |
2/4, 6 | Ch 3 (Lists, Stacks, Queues) | HW#2 |
2/11, 13 | Ch 3 & Ch 4 (Binary Trees, traversals) | Proj#1 |
2/18, 20 | Ch 4 (AVL, B-Trees) | Proj#2 |
Winter Break | ||
3/4, 6 | Ch 5 (Hashing) | |
3/11, 3/13 | Ch 6 (Priority Queues) | Midterm Exam |
3/18, 20 | Ch 6 (Binar heaps), Ch 7 (Sorting) | Proj#3 |
3/25, 27 | Ch 7 (Quicksort, etc.) | |
4/1, 3 | Ch 8 (Disjoint Set Class) | Proj#4 |
4/8, 10 | Ch 9 (Graph Algs., shortest path) | Proj#5 |
4/15, 17 | Ch 9 (Spanning trees, depth-first search) | |
Monday 4/22 1:30-3:00 | Final Exam | Final Exam |
There will be five, unannounced quizzes, evenly distributed across the semester. The quiz component of a student's overall grade for the course will be the average of that student's four highest quiz grades.
Tardiness Policy: Programming and other homework assignments will be due at the beginning of class. After that, assignments will be accepted through the start of the next scheduled class, but will suffer a full grade penalty. E.g., if a late programming assignment is worthy of an 'A', I will mark it a 'B'. Assignments more than one class late will not be accepted, and will receive a grade of 'F'.
Attendance Policy: We're all grown-ups, when and whether you attend class is up to you. However, missed assignments, and exams shall only be excused by a doctor's written note, verifying that the student was medically indisposed to attend class that day. The first missed quiz (for any reason) will be treated as the "lowest graded quiz", and therefore dropped from the averaging calculation. Any additional missed quizzes must be excused by a doctor's note.
Grading of Programs: Grading of programming assignments will reflect three factors, weighted as shown.