Lectures

This page contains lecture slides and code developed during lecture, as well as other relevant online readings. Weekly materials will be updated throughout the week.

Week Lab Lecture Notes
1 Lab 1 Sep 2,5,8
Readings Arnold's Lecture Files

References

2 Lab 2 Sep 9,12,15
Readings Arnold's Lecture Files Marc's Lecture Files Reference
3 Lab 3 Sep 16,19,22
Readings Arnold's Lecture Files
    Notes and w03.zip as an IntelliJ Project. You should OPEN this project, not import etc. in IntelliJ.
Marc's Lecture Files
    w03_101.zip Unzip, and you should OPEN w03 subfolder as IntelliJ project, NOT import.
References
4 Lab 4 Sep 23,26,29 Readings Arnold's Lecture Files
  • w04.zip as an IntelliJ project
  • w04new.zip as an IntelliJ project. Inheritance, Abstract, and Interfaces re-done with shapes.
Marc's Lecture Files
  • w04_101.zip Upzip, and then w04 sub-folder can be opened in IntellilJ
Reference
5 Lab 5 Sep 30, Oct 3, Oct 6
Readings
Arnold's Lecture Files
Generics: w04.zip as an IntelliJ project (see generics package)
GUI Programming: gui.zip as an IntelliJ project
  • The JavaFX Tutorial
  • javafx: Application, Stage, Scene

    (from the JavaFX tutorial)
  • logical layout VBox, HBox, Grid, Border
  • a walk through of JAVAFX and Buttons, the hierarchy that Buttons are a part of and
  • how to create an event handler by implementing the required interface. In HiBye We handled ButtonClicks by defining HiByeEventHandler and then registering it with the Button.
  • The lifecycle of an event, so...
    • Button is clicked
    • Button creates an ActionEvent instance event
    • Button calls all event handlers registered, calling handle(event)
    • Event handler does its job
  • Examples from gui.zip
    • GUI Programming, layouts: LayoutVH, LayoutGrid, LayoutComplex
    • Event Driven programming, HiBye and HiByeEventHandler, HiByeMouseHandler
Marc's Lecture Files
  • w05_101.zip Upzip, and then w05 sub-folder can be opened in IntellilJ
Reference
References
6 Lab 6 Oct 6, Oct 7, Oct 10
Readings
Arnold's Lecture Files Summary: 1) Scrum 2) design patterns: observer/observable 3) MVC Marc's Lecture Files
  • w05_101.zip W6 material was posted in W5 package
  • Note that due to Labour Day, we compressed 6 weeks of material in 5 weeks of lectures.
Reference
Design patterns
  • Effective use of the OO Paradigm. Using the patterns results in flexible, malleable, maintainable code. It usually allows plug and play additions to existing code. It is like a good algorithms book is to procedural programming languages.
  • It gives developers a vocabulary to talk about recurring class organizations. Now when you look at a class diagram, and parts are labelled with certain patterns, you can better understand the relationships between the classes.
Observer/Observable

MVC
We covered the roles of Model, View and Controller and how they interact. That The goal is
  • Separation of concerns
  • Making code more flexable, so to add features, add views and controllers
  • Ability for teams to collaborate on code
  • Code reuse, so for example, the Model can be re-used in different applications
  • MVC
    From Sun Microsystems
  • Examples from w05.zip
    • Balloon (Model), TextView (View), KeyboardController (Application and Controller)
    • GUIApp1 (Application), Balloon (Model), TextView (View), ButtonInflateEventHandler (Controller)
    • GUIApp2 (Application), Balloon (Model), GUIView (View), ButtonInflateEventHandler (Controller)
    • GUIApp3 (Application), Balloon (Model), GUIView2 (View), ButtonInflateEventHandler (Controller)
Scrum
References
7 Lab 7 Oct 14,17,20
Readings Arnold's Lecture Files
  • Scrum
  • Code examples in designpatterns.zip This week we covered Singleton, Iterator, Simple Factory (not Factory Method, Abstract Factory).
  • Git merge conflicts gitMergeNotes.txt and gitBranchNotes.txt resolving merge conflicts (no branching) I did this by a) cloning a mote repo in two different windows for userA and userB c) creating a few files in the repo and having different types of conflicts. - two commits conflict, but on different files - two commits conflict on the same file
Marc's Lecture Files
  • w06_101.zip
  • Note that week 7 for Marc's lecture is actually LEC101's 6th week of classes.
8 Lab 8 Oct 20,23,24
Readings Arnold's Lecture Files
  • Code examples in designpatterns.zip This week we covered Strategy, Command and possibly Composite.
Marc's Lecture Files
  • Code examples in w07_101.zip
  • (Note that due to Thanksgiving, LEC101 is 1 week behind in lectures, hence this being labeled as Week 7 material in Week 8) This week we covered Iteration, Singleton, Strategy, and Command.
9 Nov 4,...
Readings Arnold's Lecture Files Marc's Lecture Files
  • Code examples and slides in w08_101.zip
  • (Note that due to Thanksgiving, LEC101 is 1 week behind in lectures, hence this being labeled as Week 8 material in Week 9) This week we covered Composite, Builder, and Visitor deisign patterns, and SOLID principles.
Reference
10 Lab 10 Nov 10,...
Readings Arnold's Lecture Files Reference Marc's Lecture Files
  • Code examples and slides in w09_101.zip
  • (Note that due to Thanksgiving, LEC101 is 1 week behind in lectures, hence this being labeled as Week 9 material in Week 10) This week we covered Composite, I/O (both from the console and Files, and RegEx. A brief intro to FSMs will be done next week).
11 Lab 11 (Design Patterns in Paint) Nov 17... Readings Arnold's Lecture Files Marc's Lecture Files
  • Slides and notes: w10_101.zip
  • (Note that due to Thanksgiving, LEC101 is 1 week behind in lectures, hence this being labeled as Week 10 material in Week 11) This week we covered FSM, and Floating Point Error.
Reference
12 Lab 12 (Final Exam Review) Nov 26, ...
Readings
Arnold's Lecture Files
  • Course Review
Marc's Lecture Files
  • Slides and notes: w11_101.zip
  • (Note that due to Thanksgiving, LEC101 is 1 week behind in lectures, hence this being labeled as Week 11 material in Week 12)
Reference