Skip to main content.

Schedule

Lecture slides will be posted after class.

Most dates are tentative. The schedule will be updated as the semester progresses...

WEEK DAY Lectures & Examples Topic & Reading Assignments
1

Sep 05

 

Introduction to Course, Java

Read the pre-class reading for Monday. Use compilejava.net to compile and run the examples.

Respond to the Sakai forum question about your development process.

If interested, install the JDK for Java 8 on your computer

Review Linux commands

Sep 07

 

Sep 09

First day of class

Slides

2

Sep 12

Pre-Class Reading

Examples

In Class

Introduction to Java, Statically typed variables

Common Java classes (Math, String)

Creating classes

Java Tutorials

Assignment 0

Sep 14

Drop/Add ends

Pre-Class Reading

Examples

In class

Assignment 1

Sep 16

Pre-Class Reading

Examples

In class

Assignment 2
3

Sep 19

Pre-Class Reading

Examples

In class

Static Methods (Beginner Guide to Java Static Methods, Variables, Static Block and Class with Example)

Creating classes, cont'd

Java Garbage Collection

Parameter Passing

Inheritance, Polymorphism

Assignment 3

Sep 21

Pre-Class Reading

Examples

In class

Assignment 4

Sep 23

Pre-Class Reading

Examples

In class

Assignment 5
4

Sep 26

Pre-Class Reading

Examples

In class

Abstract Classes, Interfaces
Designing with Interfaces: One Programmer's Struggle to Understand the Interface

Packaging

JavaDocs

Eclipse

Collections, Generics

Wrapper Classes

Exceptions

Sep 28

Pre-Class Reading

Examples

In class

Assignment 6

Sep 30

Pre-Class Reading

Examples

In class

5

Oct 03

Pre-Class Reading

Examples

In Class

Exceptions
Designing with Exceptions

Jar files

Files

Streams

Standard Error

Oct 05

Pre-Class Reading

Examples

PetSurvey.java starter

Example Data

In Class

Oct 07

Exam

Exam 1 Prep

6

Oct 10

Pre-Class Reading

Examples

In Class

Comparing Java, Python

Introduction to Software Development

Software Development Explained with Cars

A spiral model of software development and enhancement

No Silver Bullet: Essence and Accidents of Software Engineering

Agile Is Dead (Long Live Agility)

Testing, JUnit

Assignment 7

Extra Credit: Regular Expressions

Extra Credit: Enum Types

(extra credit due by class Nov 18)

Oct 12

Pre-Class Reading

Examples

In Class

Oct 14

Reading Days

7

Oct 17

Pre-Class Reading

In Class

Testing, JUnit

Collaboration, Subversion

A Visual Guide to Version Control

SVN Practice

Oct 19

Work on project

Testing Project (due Wednesday)

Oct 21

8

Oct 24

In Class

Coverage, White-box Testing

Eclipse Debugger

Eclipse Plug-in (EclEmma)

Design in the Small - Open-Closed Principle, Code Smells, Refactoring

Readings and Resources:

Oct 26

Pre-Class Reading

In Class

Oct 28

Pre-Class Reading

Refactoring for Readability - bins.tar


9

Oct 31

Pre-Class Reading

Refactoring for Extensibility - roulette.tar

In Class

Liskov Substitution Principle

Refactoring for Extensibility

Software Quality Metrics

Useful Eclipse Plugins:

Readings:

GUIs

Handling events

Swing References:

Assignment 8: Roulette - Refactoring for Extensibility

Nov 02

Pre-Class Reading

In Class

Nov 04

Pre-Class Reading

ButtonPanel.java starter code

In Class

Examples

10

Nov 07

Pre-Class Reading

In Class

Design Patterns (Factories, Composite, Strategy, Observer, MVC)

Nov 09

Exam

Exam Prep

Nov 11

Get code for Assignment 9 - Screensavers for in-class discussion.

Pre-Class Reading

In Class

Design Patterns, continued

Animation

Assignment 9: Screensavers
11

Nov 14

Pre-Class Reading

In Class

Analysis and Design (Analysis and Design)

Understanding a large code base

Project Design, Management

Nov 16

Checkout and explore your team's code, Review the requirements for the project

In Class

Final Project

Preparation Analysis: Due Friday, November 18 BEFORE CLASS

Nov 18

In Class

 

Nov 21

Thanksgiving Break

Nov 23

Nov 25

12

Nov 28

Trello

In Class

Project Design, Management

Collaboration Tool: Trello

Final Project

Initial implementation and demo due Wednesday, November 30

Nov 30

Preliminary implementation demo

In Class

Dec 02

 
13

Dec 05

In Class

Designing APIs, Design Principles

Final Project

Intermediate Implementation due Wednesday, Dec 7

Final implementation due Thursday, Dec 15

Post analysis due Friday, Dec 16 at 5 p.m.

Dec 07

Intermediate implementation demo

In Class

Dec 09

In Class

 

Dec 12

Final Exam Period

Final Implementation and Analysis Due

Dec 14

Dec 16