CMSC 131 -- Object Oriented Programming I

Fall 2008

Fear the Turtle!

Tentative Schedule

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

Exam Dates:
  Monday Wednesday Friday
Week 1
9/1
No Classes course intro; modern program development intro to CVS and Eclipse; hardware; internal representation of data
Week 2
9/8
software overview; history of programming languages; "What is Object Oriented programming?" intro to Java basics:  comments, expressions, statements, main method, System.out.print, local variables, Strings and concatenation primitive types; Scanner; arithmetic operators; comparison operators; basic String operators
Week 3
9/15
if-statements; logical operators short-circuiting; nesting if-statements; "else-if" style; indentifier names; camel case symbolic constants; proper style for project #1; while loops; do-while loops
Week 4
9/22
for loops; nesting loops; calling static methods; passing parameters; commenting of methods and proper style for project #2 literals; escape sequences; increment/decrement operators; various assignment operators; precedence narrowing/widening conversions; overview of software design; pseudocode; Objects
Week 5
9/29
classes; instantiating objects; primitive types vs. references; memory diagrams using "new"; garbage collection; aliasing; == vs. "equals" Example of a typical class
Week 6
10/6
static vs. instance; static variables; summary of accessing members initialization of variables; passing parameters (memory diagrams); proper style for project #3 Review for midterm
Week 7
10/13
exception handling

Midterm #1 in Lab

libraries; overview of packages; Math class; String class visibility; public/private; getters/setters; API; Encapsulation
Week 8
10/20
JUnit calling instance method from instance method; "this"

default constructor; copy constructor; using "this" in constructors; mutable vs. immutable

Week 9
10/27

floating point calculations; review (elaborate example)

Eclipse debugger; corner cases arrays of primitives
Week 10
11/3
arrays of references; privacy leaks; copying arrays (reference/shallow/deep)

method overloading; ?: ternary operator

 

switch statements; break; continue
Week 11
11/10

Java interfaces; polymorphism wrappers; polymorphic arrays algorithms; intro to Big-O
Week 12
11/17
Review for midterm design of large projects; Java from the command prompt; start 2-dimensional arrays

Midterm #2 in Lab

continue 2-dimensional arrays; package visibility; more about packages
Week 13
11/24
more about commenting; internal vs. external commenting; Javadoc Fun Day -- topics to be determined Holiday -- No Class
Week 14
12/1
Java "generics"; Stack class; ArrayList class; for-each loops; StringBuffer overview of inheritance; inheritance example (CrazyList) over-riding methods; "super"; early vs. late binding; Object class
Week 15
12/8
class vs. type; getClass; instanceof; casting; equals reconsidered "Why not multiple inheritance?"; other topics TBA Review for Final Exam

 

 

Web Accessibility