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

Week 1

Aug 24

First day of class

Slides

Introduction to Course, Version Control, and GitHub

Complete Lab 0: Git before Wednesday's class

Register for the interactive textbook by going to the textbook site and then register, creating a username/password for the course. Use the code csci209_fall2020 for the course name. While the book and registration is free, please consider donating $10 to help with their hosting and development costs.

Review Unix commands

Aug 26

Slides
Examples

Introduction to Java

Start reading textbook through 1.4: Let's Look at a Java Program

Assignment 0

Aug 28

Slides
Examples

Statically typed variables

Java API
Common Java classes: (Math, String)

Java Tutorials

Read 1.5, up to but not including List.

Assignment 1

Week 2

Aug 31

Slides
Examples

Control structures, command-line arguments

Read textbook up through Loops and Iteration

Assignment 2

Sep 02

Slides
Examples

Control structures
Static Methods and Fields

Read textbook up through Loops and Iteration

Assignment 3

Sep 04

Slides
Examples

Creating classes

Read textbook: "Defining Classes in Java" up to but not including Inheritance

Assignment 4

Week 3

Sep 07

Slides
Examples

Creating classes, cont'd; Continue in Textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods"

Java Garbage Collection

Parameter Passing

Inheritance, Polymorphism

Assignment 5

Sep 09

Slides
Examples

Sep 11

Slides
Examples

Assignment 6

Week 4

Sep 14

Slides
Examples

Abstract Classes, Interfaces

Packaging

JavaDocs

Eclipse

Collections, Generics

Wrapper Classes

Finish "Java Data Types" section in textbook

Exceptions

Sep 16

Slides
Examples

Assignment 7

Sep 18

Slides
Examples

Week 5

Sep 21

Slides
Examples

Exceptions

Files

Streams

Sep 23

Slides
Examples

Sep 25

Exam 1
Exam 1 Prep

Week 6

Sep 28

Slides
Examples

Streams

Standard Error

Jar Files

Comparing Java, Python

Introduction to Software Development

Testing, JUnit


Sep 30

Slides

Read through this overview of testing, unit testing, and JUnit and complete the reading quiz in Canvas.

Oct 02

Slides

Lab: Catch The Mutants

Examples

Testing Project (due Monday)

Week 7

Oct 05

Slides
Examples

Testing, JUnit

Collaboration

Coverage, White-box Testing

Eclipse Plug-in (EclEmma)

Oct 07

Slides
Examples

Oct 09

Slides
Examples

Week 8

Oct 12

Slides

Design in the Small - Open-Closed Principle, Code Smells, Refactoring for Readability, Maintainability, and Extensibility

Readings and Resources:

Liskov Substitution Principle

Readings:

Oct 14

Slides

Assignment 8: Roulette - Refactoring

Oct 16

Class suspended -- See Eclipse refactoring demo on Canvas

Week 9

Oct 19

Slides

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

Head First Design Patterns

Dependency Inversion Principle

Animation

Oct 21

Slides
Lab: Screensavers

Oct 23

Exam 2
Exam 2 Prep

Week 10

Oct 26

Slides

Analysis and Design (Analysis and Design)

GUIs

Handling events

Swing References:

Final Project

Preparation Analysis: Due Friday, October 30

Oct 28

Slides

Oct 30

Slides

Week 11

Nov 02

Slides

Singleton design pattern

Prototypes

Eclipse Debugger

Decorator Design pattern

Project Design, Management

Final Project

Initial implementation and demo due Monday, Nov 9

Nov 04

Slides

Nov 06

Slides

Week 12

Nov 09

Preliminary implementation demos (slides)

Designing APIs, Design Principles

Project Design, Management

Nov 11

Slides

Final Project

Final implementation due Thursday, Nov 19

Post analysis due Friday, Nov 20

Nov 13

Slides

Week  

Nov 16

Final Exam Period
Final Implementation and Post Analysis Due

Nov 18

Nov 20