Tentative Schedule

The schedule below is approximate, tentative, and subject to change!

Exam Dates:

  • Midterm #1:   Monday, March 1st in Lab section
  • Midterm #2:   Monday, April 19th in Lab section
  • Final Exam:    Friday 5/14, 4:00pm - 6:00pm.  Location to be announced.





Week 1

01 Intro

course intro; modern program development

intro to CVS and Eclipse; hardware; internal representation of data

software overview; history of programming languages; "What is Object Oriented programming?"

Week 2

02 Java Intro

intro to Java basics:  output, string literals, comments, variables, expressions, statements, main method, System.out.print, local variables, Strings and concatenation

primitive types; literals; escape sequences; Scanner; arithmetic operators; comparison operators; basic String operators

Day Lost Due to Snow

Week 3

Week Lost Due to Snow

Week 4

03 Control Structures

if-statements; logical operators

nesting if-statements; identifier names; camel case

symbolic constants; Java Code Conventions;  "else-if" style;

while loops; do-while loops; for loops; nesting loops;



calling static methods;

Week 5

passing parameters; commenting of methods and proper style for project #2


increment/decrement operators; side effects; various assignment operators;


Precedence; Short circuiting,

narrowing/widening conversions; implicit casting;

05 Classes Intro

overview of software design; pseudocode; Objects; accessing members (static/instance)

Classes vs objects; instantiating objects; using "new";heap vs stack;

Week 6

primitive types vs. references; memory diagrams

garbage collection; aliasing; == vs. "equals"

 Constructors, toStirng() method

Week 7



06 Encapsulation


This, public vs private members, getters and setters, API, javadoc,

floating point calculations (epsilon);



     Spring Break   

Week 8

libraries; overview of packages; Math class; String class



Math class; String class,


07 Exceptions and Mutability

Break and Continue for Loops

exception handling

aliasing, mutability and String Buffer


Week 9

08 Debugger


Eclipse debugger; corner cases


 Finish Debugger connecting to tracing overloaded methods and with junit

calling instance method from instance method; "this"


default constructor; copy constructor; using "this" in constructors;


Week 10

09 Arrays Intro


arrays of primitives


arrays of references; privacy leaks; copying arrays (reference/shallow/deep)

Array examples

For Each Loop



10 Multi Dimensional Arrays


2-dimensional arrays

Week 11

12 Interfaces and Wrappers


Java interfaces; polymorphism



wrappers; polymorphic arrays

11 Switch etc


method overloading; ?: ternary operator


Week 12

More switch examples;

And review for exam


15 Collections

Java "generics"; Stack class; ArrayList class; for-each loops;

 Complete Collections with examples


Week 13

15 Packages


package visibility; more about packages

16 Inheritance


overview of inheritance; inheritance example (CrazyList)



 over-riding methods; "super"; early vs. late binding;


Week 14

Object class; overloading vs overriding;

class vs. type; getClass; instanceof; casting; equals reconsidered

"Why not multiple inheritance?"; other topics TBA

Week 15

Review for Final Exam        

No Class

Final Exam May 14, 4:00-6:00 pm