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.


Jump to current week.


Week Day Slides & Examples Topic & Reading Assignments

Week 1

Sep 04

Slides

Introduction to Course

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_cs2100_2026 for the course name and make sure you register with some info that will make it easy for me to identify you. (Like, don't make your name "Benji T. Gorilla" or something, unless that is your name.) While the book and registration is free, please consider donating $10 to help with their hosting and development costs.

An optional Java textbook: CS Awesome - a first textbook for students, so it will seem more basic but it covers more topics, more in-depth.

Towards a Power User - due before class on Monday

Week 2

Sep 07

Slides

Toward a Power User Review

Python and Programming Terminology Refresher

Python and Programming Terminology Refresher

Sep 09

Slides

Review Python programming and terminology
Text Editors
Design discussion

Complete Design discussion

Set Up Development Environment: Git

Sep 11

Slides

Review Design Discussion

Introduction to Version Control and GitHub

Complete Git Lab

Set Up Development Environment: Java

Week 3

Sep 14

Slides
Examples

Introduction to Java

Java fundamentals: printing

Read textbook up through 2.2: Let's Look at a Java Program

Sep 16

Slides
Examples

Java fundamentals; statically typed variables, arithmetic operators, relational operators

Read textbook, 3.1-3.3

Java Tutorials

Assignment 0

Sep 18

Slides
Examples

Common Java classes: String; getting user input: Scanner

Using the Java API

Control structures

Read textbook, 3.3, Chapter 4.

Assignment 1

Week 4

Sep 21

 

Control structures, arrays, command-line arguments

Read Chapter 3.4 (although we aren't talking about lists yet), Chapter 5

Sep 23

 

Standard Streams

Creating our own classes

Testing classes

Read textbook: "Defining Classes in Java" (6.1-6.3)

 

Sep 25

 

Overloading; Inheritance, Overriding

Continue in Textbook "Defining Classes in Java" (6.4)

Week 5

Sep 28

 

Static Methods and Fields

Formatting

Math

Read textbook sections on static member variables and methods

Sep 30

 

Cloning

Passing parameters

Oct 02

Exam 1

Week 6

Oct 05

 

Packages

Inheritance, Polymorphism, Dynamic Dispatch

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

Oct 07

 

Jar Files, Classpath

Abstract Classes, Interfaces

Generics

Collections

Continue in textbook "Defining Classes in Java"

Oct 09

Reading Days

Week 7

Oct 12

 

Collections

Finish "Java Data Types" chapter in textbook

Oct 14

 

Collections

Eclipse

Exceptions

Oct 16

  Exceptions

Week 8

Oct 19

 

Files

Streams

Oct 21

 

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 23

 

Comparing Java, Python

Introduction to Software Development

Java Garbage Collection

Bonus: Garbage Collection slides, not covered in class

Week 9

Oct 26

 

Software Development

Testing

Oct 28

 

Unit Testing

JUnit

Examples

Oct 30

 

Testing

Collaboration

Coverage, White-box Testing

Week 10

Nov 02

 

Coverage: benefits and limitations

Eclipse Plug-in (EclEmma)

Why do developers hate code coverage? And why they should not hate it!

Nov 04

 

Design in the Small

Open-Closed Principle

Code Smells, Refactoring for Readability, Maintainability, and Extensibility

Readings and Resources:

Liskov Substitution Principle

Readings:

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

Head First Design Patterns

Dependency Inversion Principle

Nov 06

Exam 2

Week 11

Nov 09

 

Analysis and Design (Analysis and Design)

GUIs

Handling events

Swing References:

Nov 11

 

Nov 13

 

Week 12

Nov 16

 

Singleton design pattern

Prototypes, Review

Decorator Design pattern

Project Design, Management

Nov 18

 

Nov 20

 

Week  

Nov 23

Thanksgiving Break

Nov 25

Nov 27

Week 13

Nov 30

 

Designing APIs, Design Principles

Project Design, Management

Dec 02

 

Dec 04

 

Week  

Dec 07

Final Exam Period

Dec 09

Dec 11