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

Syllabus

Week 1

May 5

Lecture 1: Data Definitions in Java

Lecture 2: Data Definitions: Unions

May 6

Lecture 3: Methods for simple classes

Lecture 4: Methods for unions

Lab 1: Introduction to Eclipse and Simple Data Definitions

Week 2

May 12

Lecture 6: Accumulator methods

Lecture 7: Accumulator methods, continued

May 13

Lecture 7: Accumulator methods, continued

Lecture 8: Practice Design

Lab 3

May 14

Lecture 9: Abstract classes and inheritance

Lecture 10: Customizing constructors for correctness and convenience

May 15

Lecture 10: Customizing constructors for correctness and convenience

Lecture 11: Defining sameness for complex data, part 1

Lab 4

Week 3

May 19

Lecture 11: Defining sameness for complex data, part 1

Lecture 12: Defining sameness for complex data, part 2

May 20

Lecture 13: Abstracting over behavior

Lecture 14: Abstractions over more than one argument

Lab

Exam Review

May 21

Exam 1

May 22

Lecture 14: Abstractions over more than one argument

Lecture 15: Abstracting over types

Lab 5

Week 4

May 26

Memorial Day: no class

May 27

Lecture 16: Visitors

Lab 5

May 28

Lecture 17: Mutation

Lecture 18: Mutation inside structures

May 29

Lecture 19: Mutation, aliasing and testing

Lab 6

Week 5

June 2

Lecture 19: Mutation, aliasing and testing

Lecture 20: Mutable data structures

June 3

Lecture 21: ArrayLists

Lecture 22: ArrayLists

Lab 7

June 4

Lecture 22: ArrayLists

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

June 5

Lecture 24: While loops

Lecture 25: Iterator and Iterable

Lab 8

Week 6

June 9

Lecture 25: Iterator and Iterable

Lecture 26: Hashing and Equality

June 10

Lecture 27: Introduction to Big-O Analysis

Lecture 28: Quicksort and Mergesort

Lab 9

June 11

Lecture 28: Quicksort and Mergesort

Lecture 29: Priority Queues and Heapsort

June 12

Exam 2

No Lab

Week 7

June 16

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

June 17

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

Lecture 32: Minimum Spanning Trees

Lab 11

June 18

Wrap up