Notes
Lectures are being recorded; see sidebar for link.
Readings are taken from Object-Oriented Design & Patterns, 3nd ed. (Free PDF to SFU students)
Course Intro & Java
- Lecture
- 00-Administrative notes; or in colour
- 01-Introduction To Java notes; or in colour
- In class examples
- Intro Java programming demo videos:
Basics: main(), functions, if, for loop
Data class (fields, constructor, toString()...)
ArrayList and For-Each loop
Model/View Separation - Readings: Ch 1 (required)
- You must read Ch1 in course text by 3rd lecture.
Anon Classes
- 02-Anon Classes notes; in colour
- In class examples
- Readings: Ch 4.3-4.5 (optional)
OOD
- Academic Honesty presentation notes; in colour
- 03-Design Process notes; in colour
- 04-Design Techniques notes; in colour
- Readings: Ch 2
Lambdas & Streams
- 05-Lambda and Streams notes; in colour
- In class examples
- [Recommended] Practice exercise on streams.
- Download the provide
.javafiles, then complete the code inStreamExercise.java - Some of the tasks give hints on how you might want to do it; you'll likely need to lookup information online for some of these.
- Download the provide
- This is a good tutorial to help you work with streams.
Generics & Avoiding Null
- 06-Generics notes; in colour
- 06.1-AvoidingNull notes; in colour
- In class examples
Class Design
- 07-Class Design notes; in colour
- In class examples
- Readings: Ch 3.1-3.4; 3.5-3.7
Interface Quality
-
08-Interface Quality notes; in colour
-
09-Contract Vs Defensive programming notes; in colour
- In class examples
-
Readings: Ch 3.5-3.7
Polymorphism and Inheritance
- 10-Interface Polymorphism notes; in colour
- In class examples
- 11-Inheritance notes; in colour
- In class examples
- Readings: Ch 6
Web App
- 12-HTTP and REST APIs notes; in colour
- Video Tutorials:
- Getting started with Spring Boot in IntelliJ; skip installing custom Gradle.
- Creating a REST API with Spring Boot in IntelliJ.
- Postman
- Postman with Variables in Queries
- 13-Spring Boot notes; in colour
- In class examples
Inheritance Design
- 14-Inheritance Design notes; in colour
- In class examples
- Alternative coverage of Inheritance Design (videos posted for a previous semester).
Video Part 1: Slides 1-13 (24m)
Video Part 2: Slides 14-28 (25m)
Patterns
- 15-Patterns notes; in colour
- In class examples