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
- Wed
- Wed, Sept 4th lecture recording (from Zoom)Passcode:
awesome
- You must read Ch1 in course text by 3rd lecture.
- 00-Administrative notes; or in colour
- Wed, Sept 4th lecture recording (from Zoom)Passcode:
- Fri
- Fri, Sept 6th lecture recording (from Zoom) Passcode:
awesome
- 01-Introduction To Java notes; or in color
- Fri, Sept 6th lecture recording (from Zoom) Passcode:
- In class examples
- Intro Java programming demos
Basics: main(), functions, if, for loop
Data class (fields, constructor, toString()...)
ArrayList and For-Each loop
Model/View Separation
- Wed
- Assignment: Assignment 1 posted!
- Readings: Ch 1 (required)
Anon Classes
- 02-Anon Classes notes; in color
- In class examples
- Readings: Ch 4.3-4.5 (optional)
OOD
- Academic Honesty presentation
- 03-Design Process notes; in color
- 04-Design Techniques notes; in color
- Readings: Ch 2
Lambdas & Streams
- 05-Lambda and Streams notes; in color
- In class examples
- [Recommended] Practice exercise on streams.
- Download the provide
.java
files, 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.
- 06-Generics notes; in color
Class Design
- 07-Class Design notes; in color
- In class examples
- Readings: Ch 3.1-3.4; 3.5-3.7
Interface Quality
- 08-Interface Quality notes; in color
- 09-Contract Vs Defensive programming notes; in color
- In class examples
- Readings: Ch 3.5-3.7
Polymorphism and Inheritance
- 10-Interface Polymorphism notes; in color
- In class examples
- Readings: Ch 6
- 11-Inheritance notes; in color
- In class examples
- Midterm info page
Web App
- 12-HTTP and REST APIs notes; in color
- 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 color
- In class examples
Inheritance Design
- 14-Inheritance Design notes; in color
- 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 color
- In class examples
Exceptions
- 16-Exceptions notes; in color
Code Smells
- 17-Code Smells notes; in color
- Code smells examples from lecture
Final Exam
Suggestions
- Posted notes are incomplete; attend lectures to fill in the blanks. Come to office hours to fill in missed content. Completed notes will not be published.