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
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:
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)
|
Syllabus Quiz
Are there any questions about the terms in
DQ #2?
|
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:
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:
Reading:
Review: Appendix B.11 and B.12
First 4 paragraphs of the
Geeks for Geeks page on Abstract Data
Types
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:
Reading:
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.)
|
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:
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
|
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 |
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:
Reading - Iterators & Iterable:
First 1st paragraph and example of the
Geeks for Geeks page on Iterator
in Java
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:
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
|
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:
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:
|
||
W6 |
|
||
F6 |
Due on Kit:
|
Weekly Reflection
is due Sunday evening.
(Reflection Markdown template)
|
|
DAY | PREPARATION | IN-CLASS TOPICS/ACTIVITIES | FOLLOW-UP ACTIVITIES |
M7 |
|
||
W7 | |||
F7 |
Due on Kit:
|
|
Weekly Reflection
is due Sunday evening.
(Reflection Markdown template)
|
DAY | PREPARATION | IN-CLASS TOPICS/ACTIVITIES | FOLLOW-UP ACTIVITIES |
M8 | |||
W8 |
|
||
F8 |
Due on Kit:
|
Weekly Reflection
is due Sunday evening.
(Reflection Markdown template)
|
|
DAY | PREPARATION | IN-CLASS TOPICS/ACTIVITIES | FOLLOW-UP ACTIVITIES |
M9 |
|
||
W9 | |||
F9 |
Due on Kit:
|
|
Weekly Reflection
is due Sunday evening.
(Reflection Markdown template)
|
DAY | PREPARATION | IN-CLASS TOPICS/ACTIVITIES | FOLLOW-UP ACTIVITIES |
M10 | |||
W10 |
|
||
F10 |
Due on Kit:
|
||
Exam Week | There will be no final exam in this class this quarter. |