On this page:
Week 1
Week 2
Week 3
Week 4
Week 5
Week 6
Week 7
Week 8
Week 9
Week 10
Week 11
Week 12
Week 13
Week 14
Week 15
Week 16
8.13

Schedule🔗

Week 1🔗

8/31:

 

Lecture 1: Data Definitions in Java
Designing Data: Simple classes, classes with containment

9/02:

 

Lecture 2: Data Definitions: Unions
Designing unions of classes; self-reference
Brief mastery check 1

Preparation:

 

Recitation 0: Course Setup: IntelliJ and AI Assistance
Course accounts, licensing, IntelliJ, and AI setup
start the account-readiness checkpoint in class; pending review is expected
Recitation 1: Simple Data Definitions in Java
Simple data definitions in Java

Week 2🔗

9/07:

 

LABOR DAY - UNIVERSITY CLOSED

9/09:

 

Lecture 3: Methods for simple classes
Methods for simple classes and classes with containment

Preparation:

 

Recitation 2: Working with Self-Referential Data
Designing methods in Java: classes, containment, unions, self-reference

Week 3🔗

9/14:

 

Lecture 4: Methods for unions
Methods for unions of classes and classes with self-reference

9/16:

 

Lecture 5: Methods for self-referential lists
Methods for self-referential lists; recursive insertion sort
Brief mastery check 2

Preparation:

 

Recitation 3: Methods for Complex Data
Designing methods for self-referential data

Week 4🔗

9/21:

 

Lecture 6: Accumulator methods
More complicated methods for self-referential data

9/23:

 

Lecture 7: Accumulator methods, continued
(continued) Methods with accumulators

Preparation:

 

Recitation 4: Working with Abstract Classes, Problem Solving
Practice with abstract classes and constructors

Week 5🔗

9/28:

 

Lecture 8: Practice Design
Recap: designing methods and wish lists for a larger problem

9/30:

 

Lecture 9: Abstract classes and inheritance
Abstract classes and inheritance
Brief mastery check 3

Preparation:

 

Recitation 5: Custom Constructors and Equality
Custom constructors and equality

Week 6🔗

10/05:

 

Lecture 10: Customizing constructors for correctness and convenience
Customizing constructors for correctness and convenience

Preparation:

 

Recitation 6: Designing a simple game
Designing a simple game with bigBang

Week 7🔗

10/12:

 

FALL BREAK

10/14:

 

Midterm

Week 8🔗

10/19:

 

Lecture 12: Defining sameness for complex data, part 2
More of the same
Brief mastery check 4

10/21:

 

Lecture 13: Abstracting over behavior
Function objects: abstracting over behavior
Remote class meeting, 9:30–10:45 a.m. Eastern; access details in Canvas

Preparation:

 

Recitation 7: Parametric data and visitors
Generics and Visitors

Week 9🔗

10/26:

 

Lecture 14: Abstractions over more than one argument
More function objects
Remote class meeting, 9:30–10:45 a.m. Eastern; access details in Canvas

10/28:

 

Lecture 15: Abstracting over types
Generics
Remote class meeting, 9:30–10:45 a.m. Eastern; access details in Canvas

Preparation:

 

Recitation 8: Understanding Mutation
Understanding mutation and testing effects

Week 10🔗

11/02:

 

Lecture 16: Visitors
Visitors

11/04:

 

Lecture 17: Mutation
Creating cyclic data, mutation
Brief mastery check 5

Preparation:

 

Recitation 9: Working with Cyclic Data
Working with cyclic data and buddy graphs

Week 11🔗

11/09:

 

Lecture 18: Mutation inside structures
Testing mutation methods, indirect cycles

11/11:

 

Lecture 19: Mutation, aliasing and testing
Aliasing and equality, revisited
Mastery check 6: Homework 5 code-walk appointments this week

Week 12🔗

11/16:

 

Lecture 20: Mutable data structures
Removing items from lists, mutable lists

11/18:

 

Timed individual practical 1

Week 13🔗

11/23:

 

Lecture 21: ArrayLists
Direct-access data structures: ArrayList; swapping two items, mapping over ArrayLists, for-each loops

11/25:

 

NO CLASSES - THANKSGIVING RECESS

Week 14🔗

11/30:

 

Lecture 22: ArrayLists
ArrayLists, binary search, sorting, and counted-for loops

12/02:

 

Lecture 23: For-each loops and Counted-for loops
For-each loops and counted-for loops
Brief mastery check 7

Week 15🔗

12/07:

 

Timed individual practical 2

12/09:

 

Lecture 24: While loops
While-loops
Brief mastery check 8

Week 16🔗

12/14:

 

Course review and slack

Final exam: 12/16
2:30PM–4:30PM
SC 109