Syllabus
Week 1
8/28:
Lecture 1: Data Definitions in Java
Designing Data: Simple classes, classes with containment
8/30:
Lecture 2: Data Definitions: Unions
Designing unions of classes; self-reference
Week 2
9/04:
LABOR DAY – UNIVERSITY CLOSED
9/06:
Lecture 3: Methods for simple classes
Methods for simple classes and classes with containmentRecitation 1: 6:00--8:00PM
Date: 9/5 Location: Online
Week 3
9/11:
Lecture 4: Methods for unions
Methods for unions of classes and classes with self-reference
9/13:
Lecture 5: Methods for self-referential lists
Designing methods for complex class hierarchiesRecitation 2 & 3: 6:00--8:00PM
Date: 9/12 Location: ARC (AS 242)
Week 4
9/18:
Lecture 6: Accumulator methods
More complicated methods for self-referential data
Lecture 7: Accumulator methods, continued
(continued) Methods with accumulators
9/20:
Lecture 8: Practice Design
Recap: designing methods and wish lists for a larger problem
Week 5
9/25:
Lecture 9: Abstract classes and inheritance
Abstract classes and inheritance
9/27:
Lecture 10: Customizing constructors for correctness and convenience
Customizing constructors for correctness and convenience
Week 6
10/02:
Exam 1
10/04:
Lecture 11: Defining sameness for complex data, part 1
Sameness of data values
Lecture 12: Defining sameness for complex data, part 2
More of the same
Week 7
10/09:
FALL BREAK
10/11:
CLASS CANCELLED
Week 8
10/16:
Lecture 13: Abstracting over behavior
Overview of world programming; Function objects
Lecture 14: Abstractions over more than one argument
More function objects
10/18:
Week 9
10/23:
Exam Post-mortem
10/25:
Lecture 16: Visitors
VisitorsRecitation 6: 6:00--8:00PM
Date: 10/26 Location: ARC (AS 242)
Week 10
10/30:
Lecture 17: Mutation
Creating cyclic data, mutation
11/01:
Lecture 18: Mutation inside structures
Testing mutation methods, indirect cycles
Week 11
11/06:
Lecture 19: Mutation, aliasing and testing
Aliasing and equality, revisited
11/08:
Lecture 20: Mutable data structures
Removing items from lists, mutable listsRecitation 7, Exam Review: 6:00--8:00PM
Date: 11/7 Location: ARC (AS 242)
Week 12
11/13:
Exam 2
11/15:
Lecture 21: ArrayLists
Direct-access data structures: ArrayList; swapping two items, mapping over ArrayLists, for-each loopsRecitation 9: 6:00--8:00PM
Date: 11/16 Location: ARC (AS 242)
Week 13
11/20:
Lecture 22: ArrayLists
ArrayLists and binary search; for-each loops; working with indices
11/22:
NO CLASSES
Week 14
11/27:
Lecture 23: For-each loops and Counted-for loops
For-each loops and counted-for loops
11/29:
Lecture 24: While loops
While-loops
Week 15
12/04:
Lecture 25: Iterator and Iterable
Iterators and Iterables
12/06:
Lecture 26: Hashing and Equality
HashMap, equals