15-111: Schedule
Sections A & B

Note:  Quizzes and Tests listed on Wednesdays may instead be offered in part or in full in the next day's recitation.

Day Date Comments Topics Handouts
Week 1:  Introduction + Review (Ch 1-3)
Mon 15-Jan Welcome! Ch1: Introduction
Installing Java and Eclipse
notes (doc, html)
hw1 (doc, html)
Wed 17-Jan hw1 due Ch2: Program Fundamentals
App A.1: Integer Binary Representation
App B.1: Operator Precedence Table
 
notes (doc, html)
hw2.1 (doc, html)
Fri 19-Jan --- Ch3:  Statements + Control Flow
App B.2: Standard Java Math Functions
notes (doc, html)
hw2.2 (doc, html)
hw2.ec (doc, html)
Week 2:  Review (Ch 4-5) + 2d Arrays
Mon 22-Jan hw2 due Ch4: Methods + Recursion + Overloading
Ch5: Arrays and Containers
 
notes (doc, html)
hw3.1 (doc, html)
quiz1-practice (doc, html)
hw2.1 solutions (doc, html)
hw2.2 solutions (doc, html)
Wed 24-Jan   String, StringBuffer, StringBuilder
Arrays of Objects
ArrayList<Object> and ArrayList<String>
notes (doc, html)
 
Thu 25-Jan quiz1
(to 19-Jan)
Recitation lecture:
2d Arrays Example:  Word Search
 
WordSearch.java
WordSearchInput.txt
Fri 26-Jan hw 3.1 due Quiz 1 Solutions
Word Search Redux
App A.3: Manipulating Bits
Pixel Graphics (briefly)
notes (doc, html)
quiz1 solutions (doc, html)
hw3.2 (doc, html)
hw3.ec (doc, html)
BitQuiz.java
PixelImages.java
sampleImage.jpg
hw3.1 solutions (doc, html)
Week 3:  Objects (Ch 6) +  2d Arrays +  2d Graphics
Mon 29-Jan hw3.2 due Ch6: Objects / Data Abstraction (through 6.10)
Style:  On "Magic Numbers"
More Pixel Graphics (makeThumbnail())
notes (doc, html)
hw4.1 (doc, html)
quiz2-practice (doc, html)
hw3.2 solutions (doc, html)
Wed 31-Jan quiz2
(to 26-Jan)
2d Matrices and Gaussian Elimination
Quiz 2
notes (doc, html)
GaussianElimination.java
hw4.2 (doc, html)
Thu 01-Feb   Recitation lecture:
2d Graphics and Event-Based Programming
 
Fri 02-Feb hw 4.1 due
quiz1 retake
More on SampleGUI.java
Quiz 1 Retake
notes (doc, html)
BasicGUI.java
SampleGUI.java
Week 4:  More 2d Graphics
Mon 05-Feb   Review Event-Based Programming (SampleGUI.java)
How to Write Tetris (1 of 3)
 
Wed 07-Feb   How to Write Tetris (2 of 3) hw 5:  Tetris
   (doc, html)
Thu 08-Feb hw 4.2 due Recitation lecture:
Return + Review Quiz 1 Retake and Quiz 2
 
Fri 09-Feb   How to Write Tetris (3 of 3) hw 4 solutions (doc, html)
Week 5:  Style + Classes, Objects, and Inheritance (Ch 6-7)
Mon 12-Feb   Style 101 Style Guide (doc, html)
Midi.java and midi files:
      route66.mid
      brandenburg6.mid
      entertainer.mid
      sabre.mid
Wed 14-Feb hw 5 due More on Classes (rest of Ch 6) notes (doc, html)
Thu 15-Feb quiz3
(to 12-Feb)
Recitation:  
Fri 16-Feb   Inheritance (Ch 7) (1 of 2) notes (doc, html)
quiz3 solutions (doc, html)
hw6.bonus (doc, html)
  (Flags & Text Adventure)
Week 6:  Inheritance + Test 1
Mon 19-Feb   Inheritance  (2 of 2)
Bonus Lecture (5-6pm):
How to Write a (Very Simple) Text Adventure
notes (doc, html)
Wed 21-Feb test1
(to 14-Feb)
Test 1  
Thu 22-Feb   Recitation (Review Test 1 Solutions)  
Fri 23-Feb   No Class (Class Canceled)  
Week 7:  Searching and Sorting (1 of 2)
Mon 26-Feb   Linear Search and Binary Search
Best-Case, Average-Case, Worst-Case Analysis
 
Wed 28-Feb   Quadratic Sorts (Insertion, Selection, Bubble)
Comparable + Comparator
Arrays.sort and Collections.sort
notes (doc, html)
hw6 (doc, html)
Thu 01-Mar   Recitation:
Interfaces + Comparable + Comparator
notes (doc, html)
Fri 02-Mar  

ArrayList.toArray and ArrayList.toArray(T[])
Mergesort

notes (doc, html)
Week 8:  Searching and Sorting (2 of 2)
Mon 05-Mar   Packages
Complexity + Big-Oh Notation
Quicksort
notes (doc, html)
Wed 07-Mar hw6 due Radixsort  
Thu 08-Mar quiz4
(to 02-Mar)
Recitation  
Fri 09-Mar  

No Class (Mid-Semester Break)

 
Week 9:  No Classes (Spring Break)
M-F 12-Mar
  to
16-Mar
  No Class (Spring Break)  
Week 10: Linked Lists (Association Lists, Doubly-Linked Lists, Circular Lists) + Iterators
Mon 19-Mar   Sorting Redux / Quiz Review Sorts.java
Wed 21-Mar   Linked Lists (1 of 2) notes (doc, html)
Thu 22-Mar quiz5
(to 07-Mar)
Recitation  
Fri 23-Mar  

Linked Lists (2 of 2)

notes (doc, html)
hw7 (doc, html)
Week 11: Stacks, Queues, Collections
Mon 26-Mar   Stacks & Queues (1 of 2) notes (doc, html)
Wed 28-Mar   Stacks & Queues (2 of 2) notes (doc, html)
Fri 30-Mar  

Java Collections Framework
   ArrayList, LinkedList, Stack,
   Queue (as LinkedList),
   HashMap, HashSet
   Collections class, Arrays class

notes (doc, html)
Week 12: Trees (BST's, Expression Trees, Traversals)
Mon 02-Apr hw7 due Trees (1 of 2) notes (doc, html)
Wed 04-Apr quiz6
(to 30-Mar)
Quiz 6 part 1  
Thu 05-Apr quiz6
(part 2)
Quiz 6 part 2 hw 8:  Boggle
   (doc, html)
Fri 06-Apr  

Trees (2 of 2)

notes (doc, html)
Week 13: Heaps + Hashing
Mon 09-Apr   Heaps notes (doc, html)
Wed 11-Apr quiz7
(to 06-Apr)
Priority Queues and Heapsort notes (doc, html)
Fri 13-Apr  

Applications of Heaps and Hashing
   Best-First Search
   Huffman Coding
   Message Digests (MD5, SHA)

notes (doc, html)
Week 14: Test 2
Mon 16-Apr   Test Review  
Wed 18-Apr test2
(to 13-Apr)
Test 2  
Fri 20-Apr  

No Class (Spring Carnival)

 
Week 15:  Search -- One-Player and Two-Player Games
Mon 23-Apr   Review:
     Hash tables, Heaps, hw 8 (Prefix Dictionaries)
     State Space Search:
          Depth-First, Breadth-First, Best-First
Discuss:  End-of-Semester Topics
notes (doc, html)
Wed 25-Apr hw8 due Minimax Search (1 of 3)
     Connect Four
     Othello
notes (doc, html)
hw9:  Othello (Reversi)
   (doc, html)
Fri 27-Apr  

Minimax Search (2 of 3)

notes (doc, html)
Week 16: More One-Player and Two-Player Games
Mon 30-Apr   Minimax Search (3 of 3) notes (doc, html)
Wed 02-May   Recursion, Backtracking, and Depth-First Search
     Towers of Hanoi
     8 Queens
     Knights Tour
     Making a Maze / Solving a Maze
notes (doc, html)
Fri 04-May hw9 due
quiz8
(to 02-May)

Quiz8
Test 2 Review
Epilogue  (Tetris, Boggle, Othello, oh my!)

notes (doc, html)
final exam notes
   (doc, html)
End of Semester