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
8.5

Syllabus

Week 1

Sep 6

Lecture 1: Data Definitions in Java

Sep 7

Lecture 2: Data Definitions: Unions

Sep 8

Lab 1

Week 2

Sep 11

Lecture 3: Methods for simple classes

Sep 13

Lecture 4: Methods for unions

Sep 14

Lecture 5: Methods for self-referential lists

Assignment 1 due at 9pm

Sep 15

Lab 2

Week 3

Sep 18

Lecture 6: Accumulator methods

Assignment 2 (part 1) due at 9pm

Sep 20

no class

Sep 21

Lecture 7: Accumulator methods, continued

Assignment 2 (part 2) due at 9pm

Sep 22

Lab 3

Week 4

Sep 25

Lecture 8: Practice Design

Assignment 3 (part 1) due at 9pm

Sep 27

Lecture 9: Abstract classes and inheritance

Sep 28

Lecture 10: Customizing constructors for correctness and convenience

Assignment 3 (part 2) due at 9pm

Sep 29

Lab 4

Week 5

Oct 2

Lecture 11: Defining sameness for complex data, part 1

Lecture 12: Defining sameness for complex data, part 2

Oct 4

Lecture 13: Abstracting over behavior

Oct 5

Lecture 14: Abstractions over more than one argument

Assignment 4 due at 9pm

Oct 6

Lab 5

Week 6

Oct 9

No class: Indigenous Peoples' Day

Oct 11

Lecture 15: Abstracting over types

Oct 12

Lecture 16: Visitors

Assignment 5, part 1 due at 9pm

Oct 13

Lab 6

Week 7

Oct 16

Lecture 17: Mutation

Oct 17

Assignment 5, Part 2 due

Oct 18

Lecture 18: Mutation inside structures

Oct 19

Exam 1 Review

Oct 20

Exam 1

Week 8

Oct 23

Lecture 19: Mutation, aliasing and testing

Oct 25

Lecture 20: Mutable data structures

Oct 26

Lecture 21: ArrayLists

Assignment 6 due at 9pm

Oct 27

Lab 7

Week 9

Oct 30

Lecture 22: ArrayLists

Nov 1

Lecture 23: For-each loops and Counted-for loops

Nov 2

Lecture 24: While loops

Assignment 7 due at 9pm

Nov 3

Lab 8

Week 10

Nov 6

Lecture 25: Iterator and Iterable

"Assignment 8, part 1 due at 9pm"

Nov 8

Lecture 26: Hashing and Equality

Nov 9

Lecture 27: Introduction to Big-O Analysis

Assignment 8 due at 9pm

Nov 10

Lab 9

Week 11

Nov 13

Lecture 28: Quicksort and Mergesort

Nov 14

Assignment 9 part 1 due

Nov 15

Lecture 29: Priority Queues and Heapsort

Nov 16

Exam 2 Review

Nov 17

Exam 2

Week 12

Nov 20

Lecture 30: Breadth-first search and Depth-first search on graphs

Nov 21

Assignment 9 part 2 due

Nov 22

No class: Thanksgiving break

Nov 23

No class: Thanksgiving break

Nov 24

No lab: Thanksgiving break

Week 13

Nov 27

Lecture 30: Breadth-first search and Depth-first search on graphs

Nov 29

Lecture 31: Dijkstra’s Algorithm for single-source shortest paths

Nov 30

Lecture 32: Minimum Spanning Trees

Assignment 10, part 1 due

Dec 1

Lab 10

Week 14

Dec 4

Lecture 33: Implementing Objects

Dec 6

Wrap-up

Assignment 10, part 2 due