CMSC 131 -- Object Oriented Programming I

Fall 2009

Fear the Turtle!

 

Tentative Schedule

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

Exam Dates:

  • Midterm #1:   Wednesday, October 7th in Lab section
  • Midterm #2:   Wednesday, November 18th in Lab section
  • Final Exam:    Tuesday  December 15th, 4:00pm - 6:00pm.  Location to be announced.

 

Monday

Wednesday

Friday

Week 1
8/31

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
9/7

HOLIDAY – NO CLASS

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/14

if-statements; logical operators

Last Day of Schedule Adjustment

short-circuiting; nesting if-statements; "else-if" style; identifier names; camel case

symbolic constants; proper style for project #1; while loops; do-while loops

Week 4
9/21

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/28

classes; instantiating objects; primitive types vs. references; memory diagrams

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

Example of a typical class

Week 6
10/5

static vs. instance; static variables; summary of accessing members

Midterm #1 in Lab

initialization of variables; passing parameters (memory diagrams); proper style for project #3

Week 7
10/12

 

exception handling

libraries; overview of packages; Math class; String class

visibility; public/private; getters/setters; API; Encapsulation

 

Week 8
10/19

JUnit

calling instance method from instance method; "this"

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

Week 9
10/26

floating point calculations; review (elaborate example)

Eclipse debugger; corner cases

arrays of primitives

Week 10
11/2

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

2-dimensional arrays

method overloading; ?: ternary operator

Week 11
11/9

switch statements; break; continue

Last Day to Drop with a W

Java interfaces; polymorphism

wrappers; polymorphic arrays

Week 12
11/16

algorithms; intro to Big-O

Midterm #2 in Lab

design of large projects; Java from the command prompt;

Week 13
11/23

package visibility; more about packages

more about commenting; internal vs. external commenting; Javadoc

HOLIDAY – NO CLASS

 

Week 14
11/30

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

overview of inheritance; inheritance example

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

Week 15
12/7

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

"Why not multiple inheritance?"; other topics TBA

Review for Final Exam