Below is the current calendar for the CSE143X class. Please keep in mind that Stuart 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/30
administrative details
simple programs with println
static methods


Reading: Reges/Stepp 1
Lecture: panopto video
Q&A: lecture questions
Video: methods
Video: complex figure
Slides: pdf, ppt
Slides: pdf, ppt
Program: Figure1.java
Program: Figure2.java
Program: Figure3.java
10/2
primitive types, expressions
variables, assignment
for loops, nested loops
class constants

Reading: Reges/Stepp 2
Lecture: panopto video
Q&A: lecture questions
Video: expressions
Video: variables/assignment
Video: for loop
Video: nested loops
Video: complex figure
Slides: pdf, ppt
Slides: pdf, ppt
Program: Diamond1.java
Program: Diamond2.java
10/5
parameters
graphics


Reading: Reges/Stepp 3 and 3G
Lecture: panopto video
Q&A: lecture questions
Video: parameter mystery
Video: basic drawing
Video: parameterized drawing
Slides: pdf, ppt
Slides: pdf, ppt
Program: Diamond3.java
Program: DrawingPanel.java
Program: Car1.java
Program: Car2.java
Program: Car3.java
Program: Car4.java
10/7
Scanner/interactive programs
if/else
methods that return values

Reading: Reges/Stepp 4
Lecture: panopto video
Q&A: lecture questions
Video: Scanner
Video: nested if/else
Video: factoring if/else
Slides: pdf, ppt
Slides: pdf, ppt
Slides: pdf, ppt
Program: Ball1.java
Program: Ball2.java
Program: BadIfReturn.java
Program: GoodIfReturn.java
Program: BMI1.java
Program: BMI2.java
10/9
type boolean
while loops
pseudorandom numbers

Reading: Reges/Stepp 5.1-5.4
Lecture: panopto video
Q&A: lecture questions
Video: random numbers
Video: sentinel loops
Video: type boolean
Slides: pdf, ppt
Slides: pdf, ppt
Slides: pdf, ppt
Slides: pdf, ppt
Program: Roulette.java
Program: Examples.java
10/12
file processing
assertions

Reading: Reges/Stepp 6
Lecture: panopto video
Q&A: lecture questions
Video: token-based processing
Video: line-based processing
Video: complex input
Video: assertions
Slides: pdf, ppt
Slides: pdf, ppt
Slides: pdf, ppt
Program: HoursWorked.java (hours.txt)
Program: HoursWorked2.java (hours2.txt)
10/14
arrays


Reading: Reges/Stepp 7.1-7.2
Lecture: panopto video
Q&A: lecture questions
Video: array mystery
Video: array traversal
Slides: pdf, ppt
Slides: pdf ppt
Program: ArraySample.java
10/16
more arrays
output files

Reading: Reges/Stepp 7.4-7.6
Lecture: panopto video
Q&A: lecture questions
Video: array tallying
Slides: pdf, ppt
Program: EchoWebPage.java
Program: ArraySample2.java
Program: Section.java (section.txt)
10/19
objects and classes
instance methods

Reading: Reges/Stepp 5.5, 7.3, 8.1-8.2
Lecture: panopto video
Q&A: lecture questions
Video: Defining a class
Slides: pdf, ppt
Program: PointClient1.java, Point.java
Program: PointClient2.java, Point.java
10/21
toString, constructors
encapsulation

Reading: Reges/Stepp 8.3-8.5
Lecture: panopto video
Q&A: lecture questions
Video: constructors
Video: encapsulation
Slides: pdf, ppt
Slides: pdf, ppt
Program: PointClient3.java, Point.java
10/23
critters


Lecture: panopto video
Q&A: lecture questions
Resources: ass5.zip
10/26
ArrayIntList
throwing exceptions
interfaces
Lists

Reading: Reges/Stepp 9.5, 10.1, 15.1-15.2
Lecture: panopto video
Q&A: lecture questions
Notes: notes
Video: ArrayList example
Video: ArrayList example
Video: middle of the list
Video: pre/post
Video: exception
Program: ArrayIntList.java
Program: IntList.java
Program: ListClient.java
Program: ListExample.java
10/28
linked lists




Reading: Reges/Stepp 16.1-16.2
Lecture: panopto video
Q&A: lecture questions
Notes: notes
Video: working with nodes
Video: linked list traversal
Program: ListNode.java
Program: ListTest.java
10/30
more linked lists




Reading: Reges/Stepp 16.3
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: complex list operation
11/2
Sets
Maps

Reading: Reges/Stepp 11.2-11.3
Lecture: panopto video
Q&A: lecture questions
Notes: notes
Video: Map example
Program: ListSetExample.java
Program: Instructor.java
Program: WordCount.java
Program: Friends1.java
Data file: friends.dot
Link: Graphviz
11/4
More collections


Lecture: panopto video
Q&A: lecture questions
notes: notes
Program: Friends.java
Data file: friends.dot
11/6
Comparable interface
recursion

Reading: Reges/Stepp 10.2, 12.1-12.2
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: implementing Comparable
Video: recursive tracing
Program: Angle.java, AngleTest.java
Program: Recurse.java
11/9
more recursion
public/private approach

Reading: Reges/Stepp 12.3-12.4
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: recursive programming
Video: recursive programming
Program: Recurse2.java
Program: Crawler.java
Program: Sierpinski.java, DrawingPanel.java
11/11
Veteran's Day Holiday
11/13
regular expressions
grammars

Reading: Reges/Stepp pages 689-690
Lecture: panopto video
Q&A: lecture questions
notes: notes
Program: Splitter.java
Data: fun.txt
11/16
critter tournament


Lecture: panopto video
Tournament results
11/18
recursive backtracking


Reading: Reges/Stepp 12.5
Lecture: panopto video
Q&A: lecture questions
notes: notes
Program: Queens.java, Board.html
Source code: queens.zip
11/20
more on recursive backtracking
binary trees

Reading: Reges/Stepp 17.1
Lecture: panopto video
Q&A: lecture questions
notes: notes
diagram: 4-queens trace
diagram: anagrams trace (text)
diagram: anagrams trace (picture)—click on image to enlarge
11/23
binary search trees


Reading: Reges/Stepp 17.2-17.4
Lecture: panopto video
Q&A: lecture questions
notes: notes
demo: Tree.jar
Video: tree traversal
Video: tree traversal
Video: x = change(x);
Program: IntTreeNode.java, IntTree.java
Program: IntSearchTreeClient.java
11/25
stacks and queues
abstract classes

Reading: Reges/Stepp 9.3
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: stack basics
Video: queue basics
Video: advanced stack/queue
Program: SimpleStackQueue.java
Program: StackQueue.java
Program: Shape.java, ShapeTest.java
Program: Circle.java, Rectangle.java, Square.java
11/27
Thanksgiving Holiday


11/30
Huffman assignment

Lecture: panopto video
Q&A: lecture questions
notes: notes
12/2
inheritance

Reading: Reges/Stepp 9.1-9.2
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: using super
Video: polymorphism
Review: study guide from a former TA
12/4
IntList case study

Reading: Reges/Stepp 17.5
Lecture: panopto video
Q&A: lecture questions
notes: notes
Program: ArrayIntListClient2.java
Program: ArrayIntList.java
Program: ArrayIntListIterator.java
Program: IntList.java
Program: AbstractIntList.java
Program: ArrayIntList.java
Program: LinkedIntList.java
12/7
generic binary search tree
complexity

Reading: Reges/Stepp 13.2
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: binary search
Video: complexity
Program: MaxSum.java
12/9
mergesort


Reading: Reges/Stepp 13.4
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: sorting
Program: Sorter.java
Program: StableSort.java
12/11
hashing

Reading: Reges/Stepp 18.1
Lecture: panopto video
Q&A: lecture questions
notes: notes
Video: hashing
Program: HashSet.java
Program: HashTest.java
Data: trek.txt (warning: 12.2 mb)
Extra lectures: Java 8 and Quicksort (search for "optional topic")