This is a rough sketch of the quarter that is likely to change. We can accurately predict the past, but predicting the future is hard! In particular,
all future assignment dates should be considered tentative and subject to change.
Jump to today
Week 1: Welcome!; Introduction to Java; Printing; Static Methods, Expressions, Variables
Welcome; Course policies; Hello World
program
escape sequences; static
methods
Students will be able to...
- write a simple Java program that produces console output using
System.out.println
- recognize and correct structural redundancy
- define and call static void methods
Intro to Java; resources; static
methods
Expressions; Variables; Types; for
loops
Students will be able to...
- evaluate arithmetic expressions in Java
- define and use
int
and double
variables
Week 2: Loops, Parameters, Scope
for
loops; print
statements
Students will be able to...
- write and trace the execution of
for
loops
Java basics;
Expressions, Variables, for
loops
Nested for
loops; print
statements; Class constants
Students will be able to...
- write and trace the execution of nested
for
loops
- define and use class constants
Students will be able to...
- define scope
- define and call methods that take parameters
Week 3: Graphics, Returns, Math class
Students will be able to...
- write programs to produce graphical output using
DrawingPanel
Parameters; DrawingPanel
; Debugger
Students will be able to...
- write more complex graphical programs
- perform iterative development to produce a more complex image
Return values; Math
class
Students will be able to...
- define and call methods that return values
- understand good functional decomposition
Week 4: Interactive Programs, conditionals, Strings
Students will be able to...
- effectively use methods from the
Scanner
class to create interactive programs
- define and use conditional (
if
) statements
Return values; Conditionals; User Input
Compound conditionals; cumulative algorithms
Students will be able to...
- define and use compound conditionals
- choose the most appropriate conditional structure for a given problem
- describe and implement a cumulative algorithm
Return values; Conditionals; User Input
Chaining; Information flow; String
s; char
Students will be able to...
- recognize and avoid chaining
- compare and manipulate
String
s and char
s
Week 5: Indefinite Loops, Random, booleans
Fencepost problems; while
loops; sentinel loops
Students will be able to...
- define and use
while
loops
- define and implement fencepost and sentinel loops
pseudorandomness, boolean
s
Students will be able to...
- generate pseudorandom numbers with
Random
- work with
boolean
types
while
loops; pseudorandomness; boolean
Students will be able to...
- understand and reason about a piece of code
Week 6: Simulated Midterm, File Processing
Review for Simulated Midterm
Simulated midterm practice
Students will be able to...
- implement token-based file processing algorithms using
Scanner
methods
Simulated midterm practice
Debugging (Optional Lecture)
Week 7: File Processing, Arrays
Line-based file input; File output
Students will be able to...
- implement line-based file processing algorithms using
Scanner
methods
Students will be able to...
Array Traversals, reference semantics
Students will be able to...
- define and implement array traversals
- understand and use reference semantics when working with arrays
Week 8: Arrays, Object-oriented Programming
Students will be able to...
- define and implement array shifting algorithms
Object-oriented Programming, Fields, Instance Methods
Students will be able to...
- define and implement classes with object-oriented style
Encapsulation, toString, Constructors
Students will be able to...
- understand and use encapsulation in good object-oriented design
- define and implement constructors and toString methods in classes
Week 9: More OOP, Inheritance
Students will be able to...
- define and implement the concept of inheritance
Object-oriented programming
Students will be able to...
- implement Critters to participate in the Critters simulation
Object-oriented progamming; Critters
Students will be able to...
- define and use polymorphism
- define and use
ArrayList
s
Victory lap, Content Review