CMSC 131 -- Object Oriented Programming I

Sections 010x/020x/030x -- Fall 2010

Fear the Turtle!

Schedule


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

Exam Dates:



Approximate Lecture Content:

  MondayWednesdayFriday
Week 1
01/23
Introduction to course; Course tools Demo of Eclipse IDE; Computer systems overview; Hardware; Memory
Week 2
01/30
Operating systems; Software languages; What is Object Oriented Programming? Why Java? Simple coding examples; Text output; Variables and assignment Primitive types; Strings; Arithmetic operators; Comparison operators
Week 3
02/06
Input via the Scanner; If and if/else statements; Logical operators More details on if and if/else statements; Rules for Java identifiers Camel case convention; Symbolic constants; while loops; do-while loops
Week 4
02/13
For-loops; Blocks; Nesting of loops Writing static methods; Increment/decrement; Other assignment operators Rules of precedence; Short-circuiting; Widening/narrowing conversions; Intro to design
Week 5
02/20
Intro to objects and classes; Instance members Java memory model (call stack and heap); Garbage collection; equals method; Begin example of detailed Java class ("Student") Continue "Student" example; Constructors; toString; equals
Week 6
02/27
Review for Midterm Midterm #1 in Lab
More about static members vs. instance members
Variable initialization; JUnit testing
Week 7
03/05
Commenting; Call stack (frames, etc.); Java keyword "this" Visibility; Encapsulation; "API" Round-off errors; Intro to Java packages; Java libraries
Week 8
03/12
Details of String class; Math class; break; continue Exception handling (throw, try/catch) "Fun Day" (Topics to be announced...)
Week 9
03/19
SPRING BREAK SPRING BREAK SPRING BREAK
Week 9
03/26
More exception handling (finally); Begin review example: "Password" class Continue "Password" example; Mutability; StringBuffer Eclipse debugger
Week 10
04/02
Arrays More details on arrays; Arrays of references Privacy leaks; Copying arrays (reference/shallow/deep copies); Two-dimensional arrays (ragged)
Week 11
04/09
Rectangular two-dimensional arrays; Java interfaces; Polymorphism Wrappers; Examples using Java interfaces Complexity (Big-O)
Week 12
04/16
Review for Midterm Midterm #2 in Lab
Project design; Method overloading
Continue method overloading; Ternary conditional operator
Week 13
04/23
Switch statements; Command-line Java; Javadoc Data structures; Syntax for using Java generic collections; Stack; ArrayList For-each loops; Java packages; package visibility
Week 14
04/30
Overview of inheritance Inheritance (with conceptual example) More about inheritance (Memory model; "super", etc.)
Week 15
05/07
Even more about inheritance (dynamic binding, etc.); Why no multiple inheritance? Review for final exam
Week 16
05/14
Final Exam

Web Accessibility