On this page:
Week 1
Week 2
Week 3
Week 4
Week 5
Week 6
Week 7
8.5

Syllabus

Week 1

May 6

Lecture 1: Data Definitions in Java

Lecture 2: Data Definitions: Unions

May 7

Lecture 3: Methods for simple classes

Lecture 4: Methods for unions

Lab 1: Introduction to Eclipse and Simple Data Definitions

Week 2

May 13

Lecture 6: Accumulator methods

Lecture 7: Accumulator methods, continued

May 14

Lecture 7: Accumulator methods, continued

Lecture 8: Practice Design

Lab 3: Working with the debugger

Assignment 2, due at 9pm

May 15

Lecture 9: Abstract classes and inheritance

Lecture 10: Customizing constructors for correctness and convenience

May 16

Lecture 10: Customizing constructors for correctness and convenience

Lecture 11: Defining sameness for complex data, part 1

Lab 4: Working with Abstract Classes, Problem Solving

Week 3

May 20

Lecture 11: Defining sameness for complex data, part 1

Lecture 12: Defining sameness for complex data, part 2

May 21

Lecture 13: Abstracting over behavior

Lecture 14: Abstractions over more than one argument

Lab

Exam Review

May 22

Exam 1

May 23

Lecture 14: Abstractions over more than one argument

Lecture 15: Abstracting over types

Lab 5: Sameness

Week 4

May 27

Memorial Day: no class

May 28

Lecture 16: Visitors

Lab 5: Sameness

May 29

Lecture 17: Mutation

Lecture 18: Mutation inside structures

May 30

Lecture 19: Mutation, aliasing and testing

Lab 6: Higher-order functions

Week 5

June 3

Lecture 19: Mutation, aliasing and testing

Lecture 20: Mutable data structures

June 4

Lecture 21: ArrayLists

Lecture 22: ArrayLists

Lab 7

June 5

Lecture 22: ArrayLists

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

June 6

Lecture 24: While loops

Lecture 25: Iterator and Iterable

Lab 8

Week 6

June 10

Lecture 25: Iterator and Iterable

Lecture 26: Hashing and Equality

June 11

Lecture 27: Introduction to Big-O Analysis

Lecture 28: Quicksort and Mergesort

Lab 9

June 12

Lecture 28: Quicksort and Mergesort

Lecture 29: Priority Queues and Heapsort

June 13

Exam 2

No Lab

Week 7

June 17

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

Lab 11

June 18

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

Lecture 32: Minimum Spanning Trees

June 19

Juneteenth: no class

June 20

Wrap up

Last lab