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

Sep 10

Slides

Introduction to Course, Version Control, and GitHub

Complete Git Lab - due Monday at 11:59 p.m.

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

Another Java textbook - a first textbook for students, so it will seem more basic but it covers more topics, more in-depth

Review Unix commands

Week 2

Sep 13

Slides
Examples

Introduction to Java

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

Assignment 0

Sep 15

Drop/Add ends

Slides
Examples

Statically typed variables

Java API
Common Java classes: (Math, String)

Java Tutorials

Read textbook, "Java Data Types", up to but not including List.

Assignment 1

Sep 17

Slides
Examples

Control structures, command-line arguments

Read textbook up through Loops and Iteration

Assignment 2

Week 3

Sep 20

Slides
Examples

Control structures
Static Methods and Fields

Read textbook up through Loops and Iteration

Assignment 3

Sep 22

Slides
Examples

Creating classes

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

Assignment 4

Sep 24

Slides
Examples

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

Week 4

Sep 27

Slides
Examples

Cloning

Passing parameters

Sep 29

Slides
Examples

Java Garbage Collection

Inheritance

Continue in Textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods"

Assignment 5

Oct 01

Slides
Examples

Polymorphism

Dynamic Dispatch

Abstract Classes, Interfaces

Continue in Textbook "Defining Classes in Java"

Week 5

Oct 04

Slides
Examples

Interfaces

Collections, Generics

Wrapper Classes

Oct 06

Slides
Examples

Collections

Packaging

Finish "Java Data Types" section in textbook

Oct 08

Exam 1
Exam 1 Prep

Week 6

Oct 11

Slides
Examples

Eclipse

Exceptions

Files

Streams

Assignment 6

Oct 13

Slides
Examples

Oct 15

Reading Days

Week 7

Oct 18

Slides
Examples

Streams

Standard Error

Java wrapup:

  • Jar Files
  • Classpath
  • Comparing Java, Python
  • Compiler Optimizations

2020 ACM Breakthrough Award Winner: Michael Franz, for the development of just-in-time compilation techniques that enable fast and feature-rich web services on the internet.

Oct 20

Slides

Introduction to Software Development

Testing, JUnit

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

Oct 22

Slides

Week 8

Oct 25

In-Class Lab: Catch The Mutants

Examples

Slides

Testing, JUnit

Collaboration

Coverage, White-box Testing

Eclipse Plug-in (EclEmma)

Testing Project (due Tuesday at 11:59 p.m.)

Oct 27

Slides
Examples

Oct 29

Slides

Week 9

Nov 01

Slides

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

Readings and Resources:

Liskov Substitution Principle

Readings:

Nov 03

Slides

Assignment 7: Roulette - Refactoring for Extensibility, Maintenance, and Readability

Nov 05

Slides

Week 10

Nov 08

Slides

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

Head First Design Patterns

Dependency Inversion Principle

Animation

Lab: Screensavers - for Wednesday's class

Nov 10

Slides

Nov 12

Exam 2
Exam 2 Prep

Week 11

Nov 15

Slides

Analysis and Design (Analysis and Design)

GUIs

Handling events

Swing References:

Final Project

Preparation Analysis: Due Friday, November 19 before class

Nov 17

Slides

Nov 19

Slides

Week  

Nov 22

Thanksgiving Break

Nov 24

Nov 26

Week 12

Nov 29

Slides

Singleton design pattern

Prototypes, Review

Decorator Design pattern

Project Design, Management

Final Project

Preliminary implementation and demo due Friday, Dec 3

Dec 01

Slides

Dec 03

Slides

Week 13

Dec 06

Slides

Designing APIs, Design Principles

Project Design, Management

Final Project

Intermediate implementation and demo due Friday, Dec 10

Dec 08

Slides

Dec 10

Slides

Week  

Dec 13

Final Exam Period
Final Implementation and Post Analysis Due

Dec 15

Dec 17