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.

 

Monday

Wednesday

Friday

Week 1
1/25

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
2/1

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
2/8

Week Lost Due to Snow

Week 4
2/15

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;

  

04Operators

calling static methods;

Week 5
2/22

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
3/1

primitive types vs. references; memory diagrams

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

 Constructors, toStirng() method

Week 7
3/8

JUNIT

 

06 Encapsulation

 

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

floating point calculations (epsilon);

 

3/15

     Spring Break   

Week 8
3/22

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
3/29

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
4/5

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
4/12

12 Interfaces and Wrappers

 

Java interfaces; polymorphism

 

 

wrappers; polymorphic arrays

11 Switch etc

 

method overloading; ?: ternary operator

 

Week 12
4/19

More switch examples;

And review for exam

 

15 Collections

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

 Complete Collections with examples

 

Week 13
4/26

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
5/3

Object class; overloading vs overriding;

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

"Why not multiple inheritance?"; other topics TBA

Week 15
5/10

Review for Final Exam        

No Class

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