Below is the current calendar for the CSE143X class. Please keep in mind that Brett is constantly updating this. It should accurately describe the past, but it won't always accurately predict the future. Links to lecture notes are included as they become available.

Monday Wednesday Friday
 
9/27
administrative details
simple programs with println
static methods


Reading: Reges/Stepp 1
Video: methods
Video: complex figure
Slides (basics): pdf, ppt
Slides (static void methods): pdf, ppt
Program: HelloWorld.java
Program: Figure1.java
Program: Figure2.java
Program: Figure3.java
9/29
primitive types, expressions
variables, assignment
for loops, nested loops
class constants

Reading: Reges/Stepp 2
Video: expressions
Video: variables/assignment
Video: for loop
Video: nested loops
Video: complex figure
Slides (expressions): pdf, ppt
Slides (constants): pdf, ppt
Program: Diamond0.java
Program: Diamond1.java
Program: Diamond1alt.java
Program: Diamond2.java
Program: Diamond3.java
10/2
parameters
graphics


Reading: Reges/Stepp 3 and 3G
Video: parameter mystery
Video: basic drawing
Video: parameterized drawing
Slides (parameters): pdf, ppt
Slides (graphics): pdf, ppt
Program: DrawingPanel.java
Program: Figure4.java
Program: Figure5.java
Program: Car1.java
Program: Car2.java
Program: Car3.java
Program: Car4.java
10/4
Scanner/interactive programs
if/else
methods that return values

Reading: Reges/Stepp 4
Video: Scanner
Video: nested if/else
Video: factoring if/else
Slides (Scanner): pdf, ppt
Slides (if/else): pdf, ppt
Slides (return values): pdf, ppt
Program: BouncingBall.java
Program: BadBMI.java
Program: GoodBMI.java
10/6
type boolean
while loops
pseudorandom numbers

Reading: Reges/Stepp 5.1-5.4
Video: type boolean
Video: random numbers
Video: sentinel loops
Slides (Booleans): pdf, ppt
Slides (random numbers): pdf, ppt
Slides (while loops): pdf, ppt
Slides (String manipulation): pdf, ppt
Program: Roulette.java
10/9
file processing
assertions

Reading: Reges/Stepp 6
Video: token-based processing
Video: line-based processing
Video: complex input
Video: assertions
Slides (file input): pdf, ppt
Slides (line-based input): pdf, ppt
Slides (assertions): pdf, ppt
Program: Examples.java
Program: SumFile.java
Program: Assertions.java
Data file: numbers.txt
10/11
arrays


Reading: Reges/Stepp 7.1-7.2
Video: array mystery
Video: array traversal
Slides (array basics): pdf, ppt
Slides (arrays as parameters): pdf, ppt
Program: ArraySamples.java
Program: Semantics.java
Program: ArrayMystery.java
10/13
more arrays
output files

Reading: Reges/Stepp 7.4-7.6
Video: array tallying
Slides (array traversal): pdf, ppt
Program: Section.java (data file: section.txt)
10/16
objects and classes
instance methods

Reading: Reges/Stepp 5.5, 7.3, 8.1-8.2
Video: Defining a class
Slides (classes): pdf, ppt
Program: PointClient0.java
Program: PointClient1.java, Point.java
10/18
toString, constructors
encapsulation

Reading: Reges/Stepp 8.3-8.5
Video: constructors
Video: encapsulation
Slides (toString, this): pdf, ppt
Slides (constructors, encapsulation): pdf, ppt
Program: PointClient2.java, Point.java
10/20
critters
review for midterm


10/23
midterm


10/25
linked lists

Reading: Reges/Stepp 16.1-16.2
Video: working with nodes
Video: linked list traversal
Slides (linked nodes): pdf, ppt
Slides (linked lists): pdf, ppt
Program: LinkedIntList.java, ListNode.java
10/27
more linked lists

Reading: Reges/Stepp 16.3
Video: complex list operations
Slides (complex linked list code): pdf, ppt
Program: LinkedIntList.java
Program: LinkedIntListClient.java
10/30
Lists
throwing exceptions

Reading: Reges/Stepp 9.5, 10.1-10.2, 15.1-15.2
Video: ArrayList example
Video: ArrayList example
Video: middle of the list
Video: pre/post
Video: exception
Slides (ArrayList): pdf, ppt
Program: ListExample.java
Program: LinkedIntList.java
Program: ArrayIntList.java
11/1
interfaces
Sets

Reading: Reges/Stepp 11.2-11.3
Video: Set example
Slides (sets and maps): ppt, pdf
Program: ArrayIntList.java
Program: LinkedIntList.java
Program: IntList.java
Program: ListClient.java
Program: SetExample.java
11/3
Maps
More collections

Video: Map example
Program: WordCount.java
Program: Friends.java
Data file: superFriends.dot
Graph visualization: superFriends.png
Link: Graphviz
11/6
Comparable
recursion

Reading: Reges/Stepp 10.2, 12.1-12.2
Video: recursive tracing
Slides (recursion): pdf, ppt
Program: TimePeriod.java, TimeClient.java
Program: PrintStars.java
Program: ReverseFile.java
11/8
more recursion
public/private approach

Reading: Reges/Stepp 12.3-12.4
Video: recursive programming
Video: recursive programming
Program: ArraySum.java
Program: FileCrawler.java
Program: Sierpinski.java, Point.java, DrawingPanel.java
11/10
Veteran's Day Holiday
NO CLASS

11/13
grammars
recursive backtracking

Reading: Reges/Stepp 12.5
Slides (recursive backtracking): pdf, ppt
Program: Queens.java, Board.java, BoardFrame.java
Full Package: queens.zip
11/15
more on recursive backtracking


Diagram: 4-queens trace (text)
Diagram: 4-queens trace (image)
Diagram: anagrams trace (text)
Diagram: anagrams trace (image)
11/17
binary trees


Reading: Reges/Stepp 17.1
Video: tree traversal I
Video: tree traversal II
Program: IntTree.java, IntTreeNode.java
Program: IntTreeClient.java,
11/20
binary search trees


Reading: Reges/Stepp 17.2-17.4
Video: x = change(x)
Demo: Tree.jar
Program: IntSearchTree.java
Program: IntSearchTreeClient.java
11/22
inheritance


Reading: Reges/Stepp 9.1-9.2
Video: using super
Video: polymorphism
11/24
Thanksgiving Holiday
NO CLASS

11/27
Huffman assignment


11/29
stacks and queues
abstract classes

Reading: Reges/Stepp 9.3, 14
Notes: stack.txt
Notes: queue.txt
Program: Browser.java
Program: DeliLine.java
Program: StackQueue.java
Program: ShapeClient.java, Shape.java
Classes: Circle.java, Rectangle.java, Square.java
12/1
more abstract classes
IntList case study

Reading: Reges/Stepp 9.3, 15, 16.4-16.5
Program: ShapeClient.java, Shape.java
Classes: Circle.java, Rectangle.java, Square.java

Program: IntList.java
Program: AbstractIntList.java
Program: ArrayIntList.java
Program: LinkedIntList.java
12/4
generic binary search tree


Reading: Reges/Stepp 17.5
Program: SearchTreeClient.java
Program: SearchTree.java
Program: TreeNode.java
12/6
mergesort
complexity

Reading: Reges/Stepp 13.2, 13.4
Video: binary search
Video: sorting
Video: complexity
Image: complexity.png
Program: Sorter.java
Program: MaxSum.java
12/8
hashing
Java 8 functional programming

Reading: Reges/Stepp 18.1, 19
Program: HashSet.java
Program: HashTest.java
Program: Java8Demo.java
Data file: trek.txt (warning: 12.2 MB)

Final Exam -- Thursday, December 14, 2:30-4:20