CMSC 131 -- Object Oriented Programming I

Spring 2013

Fear the Turtle!

Schedule


This schedule is approximate, tentative, and subject to change. Students wishing to supplement material presented in lecture and recitation should consider purchasing a copy of the reference text Java Foundations (see the Syllabus for details). Keep in mind that the slides may not include all the material discussed in lecture. You are responsible for any material we present in lecture, even if it does not appear in the slides. Coding examples will be sent to your CVS repository.

Week Topics Slides Projects/Classwork
23-25 January Introduction, general work flow, important dates, expectations, etc. Introductory slides, Eclipse Basics Demonstrations of Eclipse; Computer Systems overview; operational overview of memory and processing elements.
28 Jan. - 1 Feb Computing languages and object-oriented programming. Hardware Basics Java Basics Text output, variables, data types and values; Arithmetic operators.
4 - 8 Feb. Comparison operations; Strings; Input (via Scanner class); conditionals; Naming rules and conventions; Logical operators. Naming Conventions, Logic and conditionals, While statements, CamelCase Convention; symbolic constants; Flow-of-control using if and While   statements
11-15 Feb. Using for statements; scoping, nested loops; tracing iteration and debugging; various assignment operators and rules of precedence; writing static methods For Statements, Expressions  Static methods Using methods from String and Integer class objects; writing static methods.
18-22 Feb. Exploring classes and objects; widening and narrowing (casting) conventions. Data type conversion;  Designing with classes/objects Designing Java classes--identifying properties, behaviors, and visibility.
25 Feb. - 1 Mar. Static versus dynamic (instance) members; refining class design; Java memory model: heap and stack; Garbage Collection; variable initialization. Classes, objects;  Memory Model;  Initializing variables TBD
4-8 Mar. Monday: Midterm Exam #1, during Lecture; Unit testing and commenting code Unit Testing;   Commenting code TBD
11-15 Mar. Writing Java Libraries (JAR files); using Java packages Packages TBD
25-29 Mar. Exceptions; debugging; running from the command-line; generating JavaDocs Exceptions;  Debugging;  Interacting with the command line,  Generating JavaDocs TBD
1-5 Apr. Introduce Arrays; deep versus shallow copying schemes; references and arrays; privacy leaks. Arrays;  TBD
8-12 Apr. 2-dimensional arrays (regular and ragged); interfaces; polymorphism; using wrappers Interfaces and Wrappers TBD
15-19 Apr. Monday: Midterm #2, during Lecture Method overloading; ternary conditionals; switch statements Overloading and ternary conditionals TBD
22-26 Apr. Asymptotic complexity (Big O Notation); using Java generics (collections) and ArrayList Big-O;  ArrayList TBD
29 Apr - 3 May Code reuse through inheritance. Inheritance TBD
6 - 10 May More about inheritance; inheritance versus interfaces; other language models; review for Finals. TBD
13 May Final Exam: 13 May 4-6PM, room TBA TBD

Web Accessibility