15-100: Schedule
APEA Section E
Summer 2008


 
# Day Date Comments Topics Handouts
Week 1:  Introduction (Ch 1) + Number Systems (App B) + Unicode (App C)
               
Data and Expressions + Graphics (Ch 2)
1 Mon 30-Jun Welcome! Course Policies
Introduction, Number Systems, Unicode
notes
hw1 (due Wed 2-Jul)
2 Tue 1-Jul   Introduction to Java Programming
(Hello World!)
notes
Bonus #1 (Self-paced):
Captcha!
bonus notes
3 Wed 2-Jul hw1 due
quiz 0 (practice)
Ch 2:  Data and Expressions (1 of 2)
   Character Strings + String concatenation
   Variables and Assignment
   "int" Variables
   Scanner (from console, files, Strings)
notes
hw2 (due Mon 7-Jul)
Bonus #2 (Lecture):
How to turn a bucket of sand into a computer.
(Circuits, Architecture, Machine + Assembly Language, etc)
bonus lecture notes
4 Thu 3-Jul quiz 1 Ch 2:  Data and Expressions (2 of 2)
   Primitive Data Types
   Increment and Decrement Operators
   Assignment Operators + Precedence
   Data Conversion
Graphics
notes
BasicGraphics.java
BasicGraphicsDemo1.java
DrawCenteredString.java
DrawImageFromFile.java
    (and sampleImage.jpg)
-- Fri 4-Jul   No Classes  
Week 2:  Using Classes and Objects (Ch 3)
               
Intro to Writing Methods + Intro to Conditionals and Loops
5 Mon 7-Jul hw2 due Graphics Redux notes
hw3 (due Thu 10-Jul)
6 Tue 8-Jul quiz 2 Ch 3:  Using Classes and Objects (1 of 2)
     Creating Objects + Aliases
     The String, Random, and Math classes
     Packages
notes
7 Wed 9-Jul   Review notes
8 Thu 10-Jul hw3 due Style
Ch 3:  Using Classes and Objects (2 of 2)
     Converting Strings + Other Types
     The printf method
     Wrapper classes + Autoboxing
     Try/Catch and Exceptions
notes
9 Fri 11-Jul quiz 3 Methods, Conditionals, and Loops (1 of 3) notes
hw4
Week 3:  Conditionals and Loops (Ch 5)
                 ArrayLists and Arrays (Ch 7)
                 Searching and Sorting (Ch 9.4-5)
10 Mon 14-Jul hw4 due Methods, Conditionals, and Loops (2 of 3) notes
hw5 (due Thu 17-Jul)
hw5-bonus (due Tue 22-Jul)
11 Tue 15-Jul quiz 4 Methods, Conditionals, and Loops (3 of 3) notes
12 Wed 16-Jul   Review Quiz 4  
13 Thu 17-Jul hw5 due Review:  Methods, Conditionals, and Loops notes
14 Fri 18-Jul quiz 5 Review:  Methods, Conditionals, and Loops  
Week 4:  Arrays + Searching + Sorting
               
Midterm!
                How to write Tetris!
15 Mon 21-Jul   Arrays notes
16 Tue 22-Jul hw5 bonus due Ch 9.5: Searching
   linear and binary search
Ch 9.4: Sorting
   bubble, insertion, selection sorts
Sub-Quadratic Sorting:
   iterative merge sort
notes
IterativeMergeSort.java
IterativeQuickSort.java
17 Wed 23-Jul MIDTERM Midterm Exam  
18 Thu 24-Jul   Tetris (1 of 2) hw6 (Tetris, due Tue 29-Jul)
PreTetrisConnect4.java
TetrisMidi.java + tetris.midi
MusicalNotePlayer.java
19 Fri 25-Jul   Tetris (2 of 2)  
Week 5:  Writing Classes (Ch 4)
               
Object-Oriented Design (Ch 6)
                Inheritance (Ch 8)               
20 Mon 28-Jul
 
Tetris Lab  
21 Tue 29-Jul quiz 6
(sorting)hw6 due
(Tetris)
Writing a custom Fraction class
Writing a custom Polynomial class
hw7a (due Fri 1-Aug)
FractionDemo.java
PolynomialDemo.java
22 Wed 30-Jul   "Writing Classes" topics: (Ch 4):
    Instance Methods + Fields (variables),
    Constructors, toString methods,
    Encapsulation, Visibility Modifiers, Scope,
    Disambiguating with "this",
    Accessors and Mutators,
    Variable-length Parameter Lists (Ch 7.5)
notes
 
23 Thu 31-Jul   Writing a custom StringBuffer class
"OO Design" topics: (Ch 6):
   Software Development Activities
   Static Class Members, Class Relationships,
   Method Design, Method Overloading,
   Testing
notes
StringBufferDemo.java
24 Fri 1-Aug hw7a due Writing a custom sortable ArrayList
   by subclassing AbstractList
"Inheritance" topics: (Ch 8):
   Creating Subclasses, Overriding Methods,
   "this" and "super", Class Hierarchies
hw7b (due Tue 5-Aug)
Week 6:  Polymorphism (Ch 9) + Exceptions (Ch 10) +
                Recursion (Ch 11) + Collections (Ch 12) +
                Final Exam + Term Projects
25 Mon 4-Aug   Ch 9:  Polymorphism (overview)
Ch 10: Exceptions (overview)
Polymorphism.java
SortableLinkedList.java
26 Tue 5-Aug hw7b due
quiz 7
Ch 12: Collections (overview) JcfDemo.java
sortedDictionary.txt
27 Wed 6-Aug Final Exam Final Exam hw8 (due Fri 8-Aug)
28 Thu 7-Aug   8:15am:  Bonus Lecture on Minimax
Lecture:  Ch 11: Recursion (overview)
      Pascal's Triangle, Towers of Hanoi
Recitation:  Review of week 5+6
RecursionDemo.java
Connect4WithMinimax0.java
Connect4WithMinimax1.java
Connect4WithMinimax2.java
29 Fri 8-Aug hw8 due
hw 9-10:
Term
Projects
due
quiz 8
8:15am: Bonus Lecture on jar files + applets
   How to make/use jar files
   jar files, manifests, resources, temp files, ...
   How to make/use applets
9:00am:  Quiz 8
Recitation:  Term Project Presentations
bonus notes (jars + applets)