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/25:

 

Syllabus, tech set-up

8/27:

 

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

Lab:

 

Recitation 1, first half

Week 2🔗

9/01:

 

LABOR DAY – UNIVERSITY CLOSED

9/03:

 

Lecture 2: Data Definitions: Unions
Designing unions of classes; self-reference

Lab:

 

Recitation 1: Introduction to IntelliJ and Simple Data Definitions
Data definitions in Java; IntelliJ IDE; Handins homework server

Week 3🔗

9/08:

 

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

9/10:

 

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

Lab:

 

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

Week 4🔗

9/15:

 

Lecture 5: Methods for self-referential lists
Designing methods for complex class hierarchies

9/17:

 

Lecture 6: Accumulator methods
More complicated methods for self-referential data
Lecture 7: Accumulator methods, continued
(continued) Methods with accumulators

Lab:

 

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

Week 5🔗

9/22:

 

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

9/24:

 

Git/Github

Week 6🔗

9/29:

 

Lecture 9: Abstract classes and inheritance
Abstract classes and inheritance

10/01:

 

Java at the CLI

Lab:

 

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

Week 7🔗

10/06:

 

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

10/08:

 

Exam 1

Week 8🔗

10/13:

 

FALL BREAK

Week 9🔗

10/20:

 

Lecture 13: Abstracting over behavior
Overview of world programming; Function objects

Lab:

 

Recitation 6: Designing a simple game
Working with function objects

Week 10🔗

10/27:

 

Exam 1 Post-mortem

10/29:

 

Lecture 16: Visitors
Visitors

Week 11🔗

11/03:

 

Exam 2

11/05:

 

Lecture 17: Mutation
Creating cyclic data, mutation

Lab:

 

Recitation 8: Understanding Mutation
Working with mutable and cyclic data

Week 12🔗

11/10:

 

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

11/12:

 

Lecture 19: Mutation, aliasing and testing
Aliasing and equality, revisited

Lab:

 

Recitation 9: Working with Cyclic Data
Loyd's 15 puzzle: working with ArrayLists, loops and imperative worlds

Week 13🔗

11/17:

 

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

11/19:

 

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

Lab:

 

Recitation 10: Imperative Worlds
Practice implementing iterators

Week 14🔗

11/24:

 

Lecture 22: ArrayLists
ArrayLists and binary search; for-each loops; working with indices
Lecture 23: For-each loops and Counted-for loops
For-each loops and counted-for loops

11/26:

 

THANKSGIVING BREAK

Week 15🔗

12/01:

 

Lecture 24: While loops
While-loops

12/03:

 

Lecture 25: Iterator and Iterable
Iterators and Iterables

Lab:

 

Recitation 12
TBD

Week 16🔗

12/08:

 

Immaculate Conception Force / Immaculate Conception Acceleration

Lab:

 

Recitation 13
TBD