CMSC 131 -- Object Oriented Programming I

Sections 0401/0402/0403 -- Spring 2013

Fear the Turtle!

Schedule


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

Exam Dates:



Approximate Lecture Content:

  MondayWednesdayFriday
Week 1
01/21
Introduction to course; Course tools Demo of Eclipse IDE; Computer systems overview; Hardware; Memory
Week 2
01/28
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/04
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/11
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/18
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/25
Review for Midterm Midterm #1 in Lab
More about static members vs. instance members
Variable initialization; JUnit testing
Week 7
03/04
Commenting; Call stack (frames, etc.); Java keyword "this" Visibility; Encapsulation; "API" Round-off errors; Intro to Java packages; Java libraries
Week 8
03/11
Details of String class; Math class; break; continue Exception handling (throw, try/catch) "Fun Day" (Topics to be announced...)
Week 9
03/18
SPRING BREAK SPRING BREAK SPRING BREAK
Week 9
03/25
More exception handling (finally); Begin review example: "Password" class Continue "Password" example; Mutability; StringBuffer Eclipse debugger
Week 10
04/01
Arrays More details on arrays; Arrays of references Privacy leaks; Copying arrays (reference/shallow/deep copies); Two-dimensional arrays (ragged)
Week 11
04/08
Rectangular two-dimensional arrays; Java interfaces; Polymorphism Wrappers; Examples using Java interfaces Complexity (Big-O)
Week 12
04/15
Review for Midterm Midterm #2 in Lab
Project design; Method overloading
Continue method overloading; Ternary conditional operator
Week 13
04/22
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/29
Overview of inheritance Inheritance (with conceptual example) More about inheritance (Memory model; "super", etc.)
Week 15
05/06
Even more about inheritance (dynamic binding, etc.); Why no multiple inheritance? Review for final exam
Week 16
05/13
Final Exam

Web Accessibility