|
Tentative Schedule |
The schedule below is approximate, tentative, and subject to change!
- Midterm #1: Wednesday 3/5 in the discussion section
- Midterm #2: Wednesday 4/16 in the discussion section
- Final Exam: Friday May 16th from 4:00PM to 6:00PM. Location to be announced.
| Monday | Wednesday | Friday | |
|---|---|---|---|
| Week 1 1/28 |
Intro to course; using an IDE; introduction to course tools |
intro to Eclipse, CVS, and submitting projects |
intro to computer systems; hardware; operating system; programming languages |
| Week 2 2/4 |
portability;
intro to Object Oriented way of thinking; primitive Java
examples; text output; variables; statements; main method;
assignment operator; primitive types; |
expressions;
operators; programming errors and debugging; strings and
concatenation; arithmetic operators; integer truncation; |
if-statements; blocks |
| Week 3 2/11 |
more about if-statements; Java identifier names; Camel case; choosing proper variable names; named constants; |
while loops; do-while loops; for-loops; nested loops |
literals; escape sequences; short-circuiting; increment/decrement operators; various assignment operators; rules of precedence |
| Week 4 2/18 |
suggestions for
readable code; type casting (of primitives); overview of
program design; pseudocode; overview of testing/debugging; |
classes; instance variables primitive vs. reference to Objects; the Heap; memory diagrams; garbage collection |
assignments with reference variables; aliasing; equals method |
| Week 5 2/25 |
example of Object Oriented class, including: parameters, return values; constructors; writing an equals method; toString |
static vs. non-static; static methods vs. instance methods; the three kinds of variables: instance, local, static; syntax for accessing static/instance members; example of static/instance members; |
setting default values; memory diagrams for passing parameters; begin exception handling; throwing exceptions; catching exceptions; try/catch
|
| Week 6 3/3 |
Review for Midterm #1 |
...more about
exception handling; finally block; Java libraries; intro to
packages; Midterm #1 (in Lab) |
String class in detail; encapsulation and visibility; public vs. private; API |
| Week 7 3/10 |
software testing; JUnit; assertTrue; assertEquals; methods that modify parameters; copy constructors |
proper commenting; examples of good programming style; instance methods calling other instance methods; |
Fun Day (Topics to be announced.)
|
| Week 8 3/17 |
Spring Break |
Spring Break |
Spring Break |
| Week 9 3/24 |
summary of accessing class members; Java call stack; initialization of variables; setting "default" values |
typical uses of constructors; use of copy constructor to avoid aliasing; mutability; rounding errors in floating point calculations; |
Example of a complete Java class, including test cases |
| Week 10 3/31 |
connection
between testing and debugging; |
method
overloading; prototype vs. signature; |
ternary ?: operator; switch statements; break; continue |
| Week 11 4/7 |
arrays of primitives |
arrays of references; privacy leaks; three ways to copy arrays: reference/shallow/deep |
Java interfaces; polymorphism; wrappers |
| Week 12 4/14 |
Review for Midterm #2
|
More interface examples; algorithms
Midterm #2 (in Lab) |
intro to complexity; design of large projects
|
| Week 13 4/21 |
command line Java; passing arguments to main method; proper use of commenting; internal vs. external comments; Javadoc |
two-dimensional arrays (ragged and rectangular) |
polymorphic arrays; package visibility; overview of Java packages... |
| Week 14
4/28 |
continue overview of Java packages; Java generics (brief intro); overview of collections; Stack class |
ArrayList; for-each loops; StringBuffer class; overview of inheritance; superclasses and subclasses |
more about for-each loops; inheritance examples; super in constructors; memory diagrams with inheritance |
| Week 15 5/5 |
method
overriding; using super with overridden methods; variable
shadowing; |
InstanceOf; getClass;
explicit type casting; proper equals method (in view of
inheritance); inheritance vs. association vs. composition |
overloading vs.
overriding; multiple inheritance (and Java's lack thereof) |
| Week 16 5/12 |
Review for final exam. |
|
Final Exam |
