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 8

Lecture 1: Data Definitions in Java

Jan 9

Lab 1: Introduction to Eclipse and Simple Data Definitions

Jan 10

Lecture 2: Data Definitions: Unions

Jan 11

Lecture 3: Methods for simple classes

Week 2

Jan 15

MLK Day, no class

Jan 16

Lab 2: Simple Data Definitions and Methods

Jan 17

Lecture 4: Methods for unions

Jan 18

Lecture 5: Methods for self-referential lists

Assignment 1 due at 9pm

Week 3

Jan 22

Lecture 6: Accumulator methods

Assignment 2 (part 1) due at 9pm

Jan 23

Lab 3: Working with the debugger

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

Jan 24

Lecture 7: Accumulator methods, continued

Jan 25

Lecture 8: Practice Design

Assignment 2 (part 2) due at 9pm

Week 4

Jan 29

Lecture 9: Abstract classes and inheritance

Assignment 3 (part 1) due at 9pm

Jan 30

Lab 4: Working with Abstract Classes, Problem Solving

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

Jan 31

Lecture 10: Customizing constructors for correctness and convenience

Feb 1

Lecture 11: Defining sameness for complex data, part 1

Assignment 3 (part 2) due at 9pm

Week 5

Feb 5

Lecture 12: Defining sameness for complex data, part 2

Feb 6

Lab 5: Sameness

Feb 7

Lecture 13: Abstracting over behavior

Feb 8

Lecture 14: Abstractions over more than one argument

Assignment 4 due at 9pm

Week 6

Feb 12

Lecture 15: Abstracting over types

Feb 13

Lab: Exam review

Feb 14

Lecture 16: Visitors

Feb 15

Lecture 16: Visitors

Exam 1 @ 6pm

Feb 16

Assignment 5, part 1 due at 9pm

Week 7

Feb 19

No class: Presidents Day

Feb 20

Lab 6: Higher-order functions

Feb 21

Lecture 17: Mutation

Feb 22

Lecture 18: Mutation inside structures

Assignment 5, Part 2 due at 9pm

Week 8

Feb 26

Lecture 19: Mutation, aliasing and testing

Feb 27

Lab 7: Working with Cyclic Data

Feb 28

Lecture 20: Mutable data structures

Feb 29

Lecture 21: ArrayLists

Assignment 6 due at 9pm

Week 9

Mar 11

Lecture 21: ArrayLists

Mar 12

Lab 8: Understanding Mutation

Mar 13

Lecture 22: ArrayLists

Mar 14

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

Assignment 7 due at 9pm

Week 10

Mar 18

Lecture 24: While loops

"Assignment 8, part 1 due at 9pm"

Mar 19

Lab 9: Working with ArrayLists and Loops

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

Mar 20

Lecture 25: Iterator and Iterable

Mar 21

Lecture 25: Iterator and Iterable

Assignment 8 due at 9pm

Week 11

Mar 25

Lecture 26: Hashing and Equality

Mar 26

Lab 10

Mar 27

Lecture 27: Introduction to Big-O Analysis

Mar 28

Lecture 28: Quicksort and Mergesort

Assignment 9 part 1 due at 9pm

Week 12

April 1

Exam 2 review

Exam 2, 6-8pm

April 2

No lab

April 3

Lecture 29: Priority Queues and Heapsort

April 4

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

Assignment 9 part 2 due at 9pm

Week 13

April 8

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

April 9

Lab 11

April 10

Lecture 32: Minimum Spanning Trees

April 11

Lecture 33: Implementing Objects

Assignment 10, part 1 due at 9pm

Week 14

April 15

No class: Patriots Day

April 16

Last lab

April 17

Wrap-up

Assignment 10, part 2 due at 9pm