This syllabus will be updated as the semester progresses - make sure to check it regularly.
Week 1: |
Course Intro., Interfaces, Java Objects, Generics, (array-based) Lists, Iterators Readings: Introduction, Lists Optional Readings: Java Interfaces, Java Generics Handout: Course Info Sheet Outlines: Monday, Tuesday, Wednesday, Thursday Code: BoxObjectsADT.java, BoxGenericADT.java, BoxIterableADT.java, ArrayBoxObjects.java, ArrayBoxGeneric.java, ArrayBoxIterable.java, ArrayBoxIterableIterator.java, BoxItertorTester.java, ListADT.html, ListADT.java Java: List interface, Iterator interface, Iterable interface Homeworks: h1 assigned 6/18 Programs: p1 assigned 6/18 |
Week 2: |
Exceptions, Complexity, Linked Lists Readings: Exceptions, Complexity Optional Readings: Java Exceptions Outlines: Monday, Tuesday, Wednesday, Thursday Code: ExceptionTester.java, BlueException.java, GreenException.java, OrangeException.java, RedException.java, YellowException.java Homeworks: h2 assigned 6/25 |
Week 3: |
Primitive vs. Reference Types, Linked Lists Readings: Linked Lists Optional: Java Variables Outlines: Monday, Tuesday, Wednesday Java: Comparable interface Code: ShadowArray.java Homeworks: h3 assigned 7/2 Programs: p2 assigned 7/3 |
Week 4: |
Linked Lists (finish), Stacks and Queues, Recursion Readings: Stacks-and-Queues, Recursion Outlines: Monday Tuesday Wednesday Midterm: Practice problems |
Week 5: |
Recursion, Search, Trees Intro. Readings: Recursion, Searching, Trees Outlines: Monday, Tuesday, Wednesday, Thursday Midterm: Midterm Solutions Homeworks: h5 due 6:00 pm on Monday, 7/22 Programs: p3 due 11:59pm on Wednesday, 7/31 |
Week 6: |
Binary Search Trees (cont.), Balanced Search Trees, Red-Black Trees, Heaps Readings: Binary-Search-Trees, Red-Black-Trees, Priority Queues Outlines: Monday, Tuesday, Wednesday, Thursday Homeworks: h6 due 6:00 pm on Monday, 7/29 |
Week 9: |
General Trees, Binary Trees, Binary Search Trees Readings: Trees, Binary-Search-Trees Outlines: Tuesday, Thursday Homeworks: h5 due 10:00 pm on Monday, 3/18 Programs: p3 assigned 3/20 |
Week 10: |
Binary Search Trees (cont.), Balanced Search Trees, Red-Black Trees Readings: Binary-Search-Trees, Red-Black-Trees Outlines: Tuesday, Thursday Homeworks: h6 due 10:00 pm on Monday, 4/1, h7 assigned 4/1 |
Week 11: |
Red-Black Trees (cont.), Priority Queues, Heaps, Hashing Intro. Readings: Red-Black-Trees, Priority Queues Outlines: Tuesday, Thursday Homeworks: h7 due 10:00 pm on Monday, 4/8, h8 assigned 4/8 Programs: p3 due 10:00 pm on Friday, 4/12 |
Week 12: |
Hashing Readings: Hashing Outlines: Tuesday, Thursday Homeworks: h8 due 10:00 pm on Monday, 4/15; h9 assigned 4/19 Programs: p4 assigned 4/14 Exam: Midterm 2, Tuesday, April 16th, 5:00 PM to 7:00 PM |
Week 13: |
Hashing, Graphs Intro. Readings: Hashing, Graphs Intro. Outlines: Tuesday, Thursday Programs: p4 due 10:00 pm on Friday, 4/26 |
Week 14: |
Graphs, Sorting Readings: Graphs, Sorting Outlines: Tuesday, Thursday Homeworks: h9 due 10:00 pm on Monday, 4/29; h10 assigned 4/29 Programs: p5 assigned 4/28 |
Week 15: |
Sorting (cont.) Readings: Sorting Outlines: Tuesday, Thursday Homeworks: h10 due 10:00 pm on Monday, 5/6 Programs: p5 due 5/10 |
Week 16: |
Exam: Final, Tuesday, May 14th, 2:45 PM to 4:45 PM |