Schedule - CSC 207 CSC 207.01 & .02- Algorithms and Object-Oriented Design Spring 2022 Home Schedule Class Slides Labs Assignments Resources Schedule Assignments are due at 10:30 pm on the date indicated. For most labs, only selected questions are submitted for grading. Schedule May Change!! Week 1 # Day Date Class Work Reading Assignments 1 M 1/24 Introduction to Object-Oriented Programming Lab 1: Hello World Syllabus 2 W 1/26 Introduction to Java and basic I/O Lab 2:Getting Started with Java Weiss 1.1-1.6; Optional: from C to Java and How Java Works Lab 1 due 3 F 1/28 References and Objects Lab 3: References and Objects (Switch) Weiss 2.1- 2.2 Quiz 1 Lab 2 due Week 2 # Day Date Class Work Reading Assignments 4 M 1/31 Strings, Arrays, and StringBuilder Lab 4: Strings and StringBuilder Weiss 2.3 - 2.4, 15.4 Assignment 1 (Encryption) Lab 3 due 5 W 2/2 Objects, Classes and Methods Lab 5: Objects and Classes Weiss 3.1 - 3.6 Quiz 2 Lab 4 due 6 F 2/4 Packages and Visibility Lab 6: Java Standard Libraries Weiss 3.8, Java Packages Lab 5 due Week 3 # Day Date Topic Reading Assignments 7 M 2/7 Work Differently Day 8 W 2/9 The Eclipse Development Environment Lab 7: The Eclipse Integrated Development Environment The Eclipse IDE Eclipse Help Assignment 1 due Lab 6 due 9 F 2/11 Exception handling and more I/O Lab 8: Exceptions and File I/O Weiss 2.5 - 2.6, Basic I/O, Exceptions in Java Quiz 3 Week 4 # Day Date Topic Reading Assignments 10 M 2/14 Unit Testing, JUnit, and Debugging Lab 9: Unit testing and Debugging with Eclipse Unit testing and JUnit Debugging Lab 8 due 11 W 2/16 Inheritance, Polymorphism and Overriding Lab 10: Inheritance Weiss 4.1 & 4.2 Quiz 4 Lab 9 due 12 F 2/18 Abstract Methods, Abstract Classes, and Interfaces Lab 11: Polymorphism and Interfaces Weiss 4.3 - 4.5 Lab 10 due Week 5 # Day Date Topic Reading Assignments 13 M 2/21 Generic Methods and Classes; Composition vs. Inheritance Lab 12: Generics Weiss 4.6 & 4.7 Optional: Generic Types and Wildcards Assignment 2 (Vending) Lab 11 due 14 W 2/23 Version Control Systems (Git) Lab 13: Git Version Control System Charles Duan, Understanding Git Conceptually Quiz 5 Lab 12 due 15 F 2/25 Introduction to Analysis Lab 14: Empirical Complexity Analysis Weiss 5.1 - 5.3 Lab 13 due Week 6 # Day Date Topic Reading Assignments 16 M 2/28 Algorithm Analysis continued Lab 15: Algorithm Analysis Weiss 5.4 - 5.8 Optional: Osera's Complexity Chapter 17 W 3/2 Collections API Lab 16: Population Density of Iowa Counties Weiss 6.1 - 6.5 Quiz 6 Assignment 2 due 18 F 3/4 Stacks and Queues Lab17: Stacks Weiss 6.6 Labs due Week 7 # Day Date Topic Reading Assignments 19 M 3/7 Sets and Maps Lab18: Maps Weiss 6.7 & 6.8 20 W 3/9 Priority Queues Lab 19: Priority Queues Weiss 6.9 and Weiss 4.8 Quiz 7 21 F 3/11 Mid-Term Exam Labs due Week 8 # Day Date Topic Reading Assignments 22 M 3/14 Random Number Generation Lab: Random Number Generation (Simple games) Weiss 9.1 & 9.2 Assignment 3 (Bunco) 23 W 3/16 Sorting Lab: Mergesort Weiss 8.1 - 8.3 & 8.5 Optional: Osera 8.2 Quiz 8 24 F 3/18 Quicksort Lab: Quicksort Weiss 8.6 - 8.8 Optional: Osera 8.3 Labs due Spring Break March 19 through April 3 Week 9 # Day Date Topic Reading Assignments 25 M 4/4 Inner Classes Lab: Anonymous Inner Classes Weiss 15.1 - 15.2 Weiss 15.1 - 15.2 Optional reading: Nested Classes and Inner Class Example 26 W 4/6 Abstract Collection and ArrayList implementation Lab: ArrayList of Tasks Weiss 15. 3 & 15.5 Assignment 3 due Quiz 9 27 F 4/8 Stacks and Queues Set of Stacks Weiss 16.1 (review 6.5) Labs due Week 10 # Day Date Topic Reading Assignments 28 M 4/11 Stacks and Queues Dequeue Weiss 16.2 - 16.5 29 W 4/13 Linked Lists Lab: Linked Lists (Queue) Weiss 17.1 - 17.3 Quiz 10 30 F 4/15 Linked Lists Lab: Circular Lists Weiss 17.4 - 17.5 Labs due Week 11 # Day Date Topic Reading Assignments 31 M 4/18 Graphical User Interface Programming Assignment 4 (Speed Reader) 32 W 4/20 Recursion Lab: Recursion Quiz 11 33 F 4/22 Trees Lab: Trees (intro to traversing) Weiss 18.1 - 18.2 Optional: Java Depth-First Search Labs due Week 12 # Day Date Topic Reading Assignments 34 M 4/25 (Binary Search) Trees Lab: Trees and Traversals Weiss 18.3 - 18.4 , 19.1 Optional: A Quick Guide to Binary Search Trees Quiz 12 35 W 4/27 Working Differently Day 36 F 4/29 Binary Search Trees & AVL Trees Lab: AVL Trees Weiss 19.3 & 19.4 Assignment 4 due Labs due Week 13 # Day Date Topic Reading Assignments 37 M 5/2 Trees Review Assignment 5 (ALife) 38 W 5/4 Hash Tables Lab: Hash Map Weiss 20.1 - 20.7 Quiz 13 39 F 5/6 Priority Queue/Binary Heap Lab: Heap Sort Weiss 21.1 - 21.3, 21.5 (Optional: Osera Chapter 13) Labs due Week 14 # Day Date Topic Reading Assignments 40 M 5/9 Graphs Lab: Graph Traversal Weiss 14 through 14.2 41 W 5/11 Dijkstra's Algorithm Lab: Dijkstra’s Algorithm Weiss 14.3 Quiz 14 42 F 5/13 End of course evaluations, wrapup none Assignment 5 due Labs due Finals Week # Day Date Test Location 5/19 2:00 to 5:00 pm TBD This derivative work is used and licensed under a Creative Commons Attribution-NonCommercialShareAlike 4.0 International license. This course is adapted from prior courses taught by Shervin Hajiamini, John Stone, Sam Rebelsky, Anya Vostinar, and Jerod Weinman and used by permission. Other authors' contributions are noted when used or adapted.