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 |
