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

Jan 6

Lecture 1: Data Definitions in Java

Jan 7

Lab 1: Introduction to Eclipse and Simple Data Definitions

Jan 8

Lecture 2: Data Definitions: Unions

Jan 9

Lecture 3: Methods for simple classes

Week 2

Jan 13

Lecture 4: Methods for unions

Jan 14

Lab 2: Working with Self-Referential Data

Jan 15

Lecture 5: Methods for self-referential lists

Jan 16

Lecture 6: Accumulator methods

Assignment 1 due at 9pm

Week 3

Jan 20

Lecture 7: Accumulator methods, continued

Assignment 2 (part 1) due at 9pm

Jan 21

Lab 3: Working with Lists and the Image Library

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

Jan 22

Lecture 8: Practice Design

Jan 23

Lecture 9: Abstract classes and inheritance

Assignment 2 (part 2) due at 9pm

Week 4

Jan 27

Lecture 10: Customizing constructors for correctness and convenience

Assignment 3 (part 1) due at 9pm

Jan 28

Lab 4

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

Jan 29

Lecture 11: Defining sameness for complex data, part 1

Jan 30

Lecture 12: Defining sameness for complex data, part 2

Assignment 3 (part 2) due at 9pm

Week 5

Feb 3

Lecture 13: Abstracting over behavior

Feb 4

Lab 5

Feb 5

Lecture 14: Abstractions over more than one argument

Feb 6

Lecture 15: Abstracting over types

Assignment 4 due at 9pm

Week 6

Feb 10

Lecture 16: Visitors

Feb 11

Lab 6

Feb 12

Lecture 17: Mutation

Feb 13

Exam review

Exam 1 at 6pm

Week 7

Feb 17

No class: Presidents' Day

Feb 18

Lab 7

Feb 19

Lecture 18: Mutation inside structures

Feb 20

Lecture 19: Mutation, aliasing and testing

Assignment 5 due at 9pm

Week 8

Feb 24

Lecture 20: Mutable data structures

Feb 25

Lab 8

Feb 26

Lecture 21: ArrayLists

Feb 27

Lecture 22: ArrayLists

Assignment 6 due at 9pm

Week 9

March 10

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

March 11

Lab 9

March 12

Lecture 24: While loops

March 13

Lecture 25: Iterator and Iterable

Assignment 7 due at 9pm

Week 10

March 17

Lecture 25: Iterator and Iterable

Assignment 8, part 1 due at 9pm

March 18

Lab 10

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

March 19

Lecture 26: Hashing and Equality

March 20

Lecture 27: Introduction to Big-O Analysis

Assignment 8 due at 9pm

Week 11

March 24

Lecture 28: Quicksort and Mergesort

March 25

Lab 11

March 26

Lecture 29: Priority Queues and Heapsort

March 27

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

Assignment 9 part 1 due at 9pm

Week 12

March 31

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

April 1

Lab 12

April 2

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

April 3

Exam Review

Exam 2 at 6pm

Week 13

April 7

Lecture 32: Minimum Spanning Trees

April 8

Lab 13

April 9

Lecture 33: Implementing Objects

April 10

Lecture 34

Assignment 10, part 1 due at 9pm

Week 14

April 14

Wrap-up

April 15

Lab 13

Assignment 10, part 2 due at 9pm