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

Sept 4

Lecture 1: Data Definitions in Java

Sept 5

Lecture 2: Data Definitions: Unions

Sept 6

Lab 1: Introduction to Eclipse and Simple Data Definitions

Week 2

Sept 9

Lecture 3: Methods for simple classes

Sept 11

Lecture 4: Methods for unions

Sept 12

Lecture 5: Methods for self-referential lists

Assignment 1 due at 9pm

Sept 13

Lab 2: Working with Self-Referential Data

Week 3

Sept 16

Lecture 6: Accumulator methods

Assignment 2 (part 1) due at 9pm

Sept 17

Assignment 2, self-eval for part 1 due at 10pm

Sept 18

Lecture 7: Accumulator methods, continued

Sept 19

Lecture 8: Practice Design

Assignment 2 (part 2) due at 9pm

Sept 20

Lab 3: Working with the debugger

Week 4

Sept 23

Lecture 9: Abstract classes and inheritance

Assignment 3 (part 1) due at 9pm

Sept 24

Assignment 3, self-eval for part 1 due at 10pm

Sept 25

Lecture 10: Customizing constructors for correctness and convenience

Sept 26

Lecture 11: Defining sameness for complex data, part 1

Lecture 12: Defining sameness for complex data, part 2

Assignment 3 (part 2) due at 9pm

Sept 27

Lab 4: Working with Abstract Classes, Problem Solving

Week 5

Sept 30

Lecture 13: Abstracting over behavior

Oct 2

Lecture 14: Abstractions over more than one argument

Oct 3

Lecture 15: Abstracting over types

Assignment 4 due at 9pm

Oct 4

Lab 5: Higher-order functions

Week 6

Oct 7

Lecture 16: Visitors

Oct 9

Lecture 17: Mutation

Oct 10

Exam review

Oct 11

Exam 1

Week 7

Oct 14

No class: Indigenous Peoples Day

Oct 16

Lecture 18: Mutation inside structures

Oct 17

Lecture 19: Mutation, aliasing and testing

Assignment 5 due at 9pm

Oct 18

Lab 6: Working with Cyclic Data

Week 8

Oct 21

Lecture 20: Mutable data structures

Oct 23

Lecture 21: ArrayLists

Oct 24

Lecture 22: ArrayLists

Assignment 6 due at 9pm

Oct 25

Lab 7: Working with ArrayLists and Loops

Week 9

Oct 28

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

Oct 30

Lecture 24: While loops

Oct 31

Lecture 25: Iterator and Iterable

Assignment 7 due at 9pm

Nov 1

Lab 8: Iterators and Imperative Worlds

Week 10

Nov 4

Lecture 26: Hashing and Equality

"Assignment 8, part 1 due at 9pm"

"Assignment 8, self-eval for part 1 due at 10pm"

Nov 6

Lecture 27: Introduction to Big-O Analysis

Nov 7

Lecture 28: Quicksort and Mergesort

Assignment 8 due at 9pm

Nov 8

Lab 9: Working with iterators

Week 11

Nov 11

No class: Veterans Day

Nov 13

Lecture 29: Priority Queues and Heapsort

Nov 14

Exam review

Nov 15

Exam 2

Week 12

Nov 18

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

Nov 20

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

Nov 21

Lecture 32: Minimum Spanning Trees

Assignment 9 due at 9pm

Nov 22

Lab 10: An Introduction to the JUnit testing library

Week 13

Nov 25

Lecture 33: Implementing Objects

Nov 26

Assignment 10, part 1 due at 9pm

Week 14

Dec 2

Lecture 34

Dec 4

Wrap-up

Assignment 10, part 2 due at 9pm