SCHEDULE (Under Construction)


Note: Instructors can now make notes to themselves that can be made visible on your laptop but invisible on kcs01.kzoo.edu if you put them in tag with class 'instNotes' and if you set the display for instNotes to none on kcs01 and to something like initial on your laptop. Just be sure not to add/commit instructorNotes.css in either place, otherwise they won't be different.

IMPORTANT NOTE:The COMP210 schedule will be updated throughout the term! Check this space frequently for any changes or any updates.

If you want to see the old schedule, to have a sense of the workload and pace in previous terms, you can look at it here.

DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
Week 1
Monday
(M1)
Introduction / Syllabus
Intro to Data Structures
Review of Data Types

Code Reading exercise (in groups) and follow-up discussion
(Simplified COMP 150 code: PercolationApp, SlowPercolationController, completed VerticalPercolator)
Study the Syllabus, especially the sections on Attendance, Assignments, and Collaboration and the Honor System. (Syllabus quiz on Friday.)
Write a paragraph or two for this week's Weekly Reflection about what you learned during the Code Reading exercise, whether about the code, the process of reading unfamiliar code, or your learning style.
Wednesday
(W1)
Read Chapter 1.2
Review:
DQ #1
Skim (or read as necessary) Appendix B.1 to B.8, B.10, and B.13 to B.15
Video Alternative to B.13-B.15 (from COMP 150): Polymorphism and Dynamic Binding; Review of the Big Ideas of Inheritance - 12 min
Are there any questions about the terms in DQ #1?
Second Code Reading exercise
Similar to 1st reading exercise, but with 2 more classes and comments and good names restored. Serves as intro to refactoring exercise.
Review Inheritance, Dynamic Binding, Abstract Superclasses
Refactoring Code exercise
Turn on notifications for the Collaboration Center General channel in Teams, if you haven't done so already.
Complete Refactoring Code exercise
Friday
(F1)
Read Syllabus to prepare for Syllabus Quiz
Review:
Video: Abstract Superclasses - 9.5 min (from COMP 150)
DQ #2
Syllabus Quiz
Are there any questions about the terms in DQ #2?

Start Percolation Programming Project
Continue Percolation Programming Project

Your first Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M2
Due Before Monday:
Week 1 Weekly Reflection

Complete before Class: Try to do through the end of Testing Efficiency: Testing SlowPercolationController before class
Syllabus Quiz if forgot to do it earlier; could be group discussion
In-Class: ListPercolationController
Complete Percolation Programming Project
W2
Review Videos:
Arrays & ArrayLists - 9 min (slides)
Linear Search Animation, with Best/Worst Case Analysis - 5 min; analysis starts at 3:17
Binary Search Animation - 10 min

Read and consider the discussion questions in DQ #3. We will talk about these in class.
Empirical analysis and Code analysis
Discuss the questions in DQ #3
Review best/worst/average case analysis of linear and binary search
Linear vs Logarithmic vs N2 time complexity
Alyce deferred formal introduction of Big-Oh until Week 3
CRUD

Group Discussion: What is the time complexity for each CRUD operation in an array (fixed size)? Assume you have a companion variable storing the current number of items in the array. How do you think this might be different for ArrayList? Then read the class documentation for ArrayList. Were there any surprises?
F2
Due on Kit:
Percolation Programming Project

Reading:
Review: Appendix B.11 and B.12
First 4 paragraphs of the Geeks for Geeks page on Abstract Data Types
Wikipedia entry on Java Interfaces
Oracle's page on What is an Interface?
Collections: 3.1 (pp. 30 - 33)
Conceptual Queue: 5.1 (pp. 98 - 99)
Interfaces and ADTs
Reading Class Documentation with Interfaces
Java Collection Classes
List Interface and ArrayList class
Queue ADT

Group Discussion: What would be the issues if you implement a Queue ADT using an ArrayList?
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M3
Due Before Monday:
Week 2 Weekly Reflection

Reading:
Time Complexity
Reference Review
Intro to Linked Lists
Alternative Readings from Lewis and Chase: Chapter 2 (Time Complexity), Appendix B.9 (References), Chapter 4.1 and 4.2 (Linked Data Structures, ignore references to stacks for now)
Time Complexity: Big-Oh Notation
Illustrations of Growth Functions from Lewis & Chase
Linked Lists

Group Discussion:
What is the time complexity for each CRUD operation in a linked list?
How might you implement a Queue as a linked list?

In-Class: Linked List Mini-Lab
Complete Linked List Mini-Lab
W3
Reading:
Read the Problem Description for the Car Wash Design Exercise that we will do in class. (You don't need to read the exercise yet.)
Object-Oriented Design (example object diagrams, example CRC cards)

In-Class Project: Car Wash Design Exercise
Compare the design you came up with in class with the Car Wash Design Case Study.
F3
Due Before Friday:
Linked List Mini-Lab

Reading:
Read the KQueue interface and the Analysis Question for the Queue Mini-Lab that we will do in class. (You don't need to read ahead to the implementation stages of the mini-lab yet.)
Inheritance, Composition, Delegation
Design guidelines: Strong cohesion, Loose coupling
What is the time complexity for each CRUD operation in your K_SimpleLL?

In-Class: Queue Mini-Lab
Structured Design

Complete Queue Mini-Lab
Start Car Wash Project
Weekly Reflection is due Sunday evening. (Reflection Markdown template) In addition to reflecting on the topics for this week, read the class documentation for the Java Queue interface and reflect on some key differences between it and our Queue implementation.
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M4
Due Before Monday:
Weekly Reflection
Queue Mini-Lab

Reading - Facade Pattern:
Read the introduction and Overview section of the Wikipedia entry.
Read the Intent, Problem, Solution, and Real-World Analogy sections of the Refactoring Guru page.
Stack ADT
Facade Design Pattern; Queue and Stack as Facades
Group Discussion:
What are the advantages or disadvantages of implementing a Stack ADT as an ArrayList or a LinkedList?

In-Class: Stack Mini-Lab
Complete Stack Mini-Lab
W4
Due on Kit:
Car Wash Project

Reading - Iterators & Iterable:
Iterators
First 1st paragraph and example of the Geeks for Geeks page on Iterator in Java
Iterable
Read the class documentation for Iterable.
Iterators and Iterable
Which data structures that we've seen are Iterable?
Java's ArrayList and LinkedList are Iterable. K_SimpleLL is not (no iterator method). Queues and Stacks are not naturally iterable -- are the Java Queue interface and Stack class iterable? How can students find out?

In-Class: Add an Iterator class to K_SimpleLL. The example in this Geek for Geeks page (half-way down the page) is almost exactly what you need, although the names are different. Create your class internally in K_SimpleLL.
F4
Due on Kit:
Stack Mini-Lab

Reading:
Read the introduction (and more if you're interested) of the Wikipedia entry on Design Patterns.
Read the beginning of the Geeks for Geeks page on the Singleton Pattern, up to "Key Components".
Reading on Inheritance, Composition, Delegation?
Look at Clueless Mouse: documenting inherited and overridden methods; Singleton pattern

Backtracking Mouse Project
Weekly Reflection is due Sunday evening. (Reflection Markdown template) In addition to reflecting on the topics for this week, read the class documentation for the Java Stack class and reflect on some key differences between it and our Stack implementation.
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M5
Due Before Monday:
Weekly Reflection
Reading on Recursive Data Structures? Analyzing Recursion? Recursion vs Iteration?
[Maybe] Recursive Linked List?
W5
F5
Fall Break
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M6
Due Before Monday:
Weekly Reflection
W6
F6
Due on Kit:
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M7
Due Before Monday:
Weekly Reflection
W7
F7
Due on Kit:
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M8
Due Before Monday:
Weekly Reflection
W8
F8
Due on Kit:
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M9
Due Before Monday:
Weekly Reflection
W9
F9
Due on Kit:
Weekly Reflection is due Sunday evening. (Reflection Markdown template)
DAY PREPARATION IN-CLASS TOPICS/ACTIVITIES FOLLOW-UP ACTIVITIES
M10
Due Before Monday:
Weekly Reflection
W10
F10
Due on Kit:
Exam Week There will be no final exam in this class this quarter.