Schedule

Notes

    VIP: Zoom is set up so that you can only join when authenticated from a colorado.edu account.

    To join the lectures synchronously, use this Zoom Meeting https://cuboulder.zoom.us/j/96158358156

  • Unless otherwise noted, all assignments are due on the posted dates at 2:59 PM
  • Please note this schedule can and likely will change. As the instructor for this course, I reserve the right to adjust this schedule or related assignments in any way that serves the educational needs of the students enrolled in this course.
  • Our College is implementing a collective spring pause during the week of March 22-26. There are no assignments due that week, we will hold instead project clinics, where you can bring your project to the class staff and we will give you feedback. Prof Dig will also hold an Inspirations for PhD so that students become aware of other options for their career. The university administration is asking us to refrain from traveling and instead engage in socially-responsive behaviors so that we do not create a covid outbreak after everyone is back on campus.
Date Topic Readings due
Readings in italics are optional
Deliverables
Fri, Jan 15 Introductions: Staff, Students, Expectations Signup on Piazza, and for those attending live Register a free iClicker Account
Mon, Jan 18 Martin Luther King Day (no class) Be grateful for leaders like MLK who put serving others ahead of their personal interests. Listen to his famous "I have a dream" speech.
Wed, Jan 20 Intro to OOAD course Quiz #1 (see Canvas)
Fri, Jan 22 Syllabus and Projects Homework 1 (see Canvas)
Mon, Jan 25 OO Paradigm Wikipedia article on OOP
Wed, Jan 27 Version Control, Git Demo read chapters 2, 4, and 8 from this book
Fri, Jan 29 Design Fest: CRC CRC Paper
Mon, Feb 1 OO Fundamentals Composition over Inheritance, then Has-a, then Is-a
Wed, Feb 3 Intro to Java From Imperative To Functional Programming through Refactoring Quiz 2 (in Canvas)
Fri, Feb 5 Grad students pitch project ideas Battleship Milestone 1 (see Canvas, due at 2:59pm), Tracks 2 & 3 Project proposal (due at 12pm)
Mon, Feb 8 Project Clarifications and Class Candid Conversations
Wed, Feb 10 UML Wikipedia article on UML, then UML Class Diagram, then UML Sequence Diagram, then Use Case Diagram
Fri, Feb 12 TDD JUnit Test Infected: Programmers Love Writing Tests Deadline for Grad Students to form Teams for the Grad Project. AND Quiz 3 (in Canvas).
Mon, Feb 15 UML - part 2
Wed, Feb 17 No Class - Wellness Day
Fri, Feb 19 Working Together: Principles and Practices (by Alan Mulally - former CEO at Boeing and Ford) Battleship Game: Milestone 2 (was pushed to Sun, Feb 21).
Mon, Feb 22 eXtreme Programming (XP) eXtreme Programming AND XP Practices
Wed, Feb 24 Intro to Design Patterns Chapter 1: Intro to Design Patterns from the Texbook Quiz #5
Fri, Feb 26 Grad students present their Project Topics Homework 2 - UML Diagrams. Grad Project Milestone 1.
Mon, Mar 1 Observer design pattern Chapter 2 (Observer) from the Texbook
Wed, Mar 3 Decorator design pattern Chapter 3 (Decorator) from the Texbook Quiz #6
Fri, Mar 5 (no class, read lecture slides) Factory design pattern Chapter 4 (Factory) from the Textbook Battleship Game: Milestone 3.
Mon, Mar 8 Singleton design pattern Chapter 5 (Singleton) from the Texbook
Wed, Mar 10 Midterm (available for 24 hours starting on Wed at 3pm).
Fri, Mar 12 Interview with Rebecca Wirfs-Brock
Mon, Mar 15 Class Canceled - Campus is Closed Everyone stay safe through the blizzard
Wed, Mar 17 Interview with Design Patterns legend, Ralph Johnson
Fri, Mar 19 Command Design Pattern Chapter 6 (Command) from the Texbook Notice that Battleship Game: Milestone 4 - pushed to Sunday, March 21
Mon, Mar 22 Project Clinics Bring your project to get feedback from the staff
Wed, Mar 24 Project Clinics
Fri, Mar 26 Inspirations for Career Paths
Mon, Mar 29 OO Design Pattern Principles Read on each of the S.O.L.I.D. principles
Wed, Mar 31 Refactoring Chapter 24 from Steve McConnell's Code Complete, 2nd Edition (access the ebook for free from CU Libraries)
Fri, Apr 2 Grad student Milestone 2 Presentations Grad Project Milestone 2
Mon, Apr 5 Overview of Refactoring Research Code Smells Blog Undergrad Milestone 5
Wed, Apr 7 Eliminating Code Clones with Refactoring Clone Refactoring with Lambda Expressions (ICSE'17)
Fri, Apr 9 Part 2: Demo on Eliminating Duplication through Refactoring
Mon, Apr 12 Composite and Visitor Design Patterns Composite AND Visitor
Wed, Apr 14 Template Method, Facade, Adapter Design Patterns Template Method AND Facade AND Adapter
Fri, Apr 16 Project clinic for Grad student Milestone 3 results. Undergrad Milestone 6 was merged with Final Project Submission and is due on Sun, April 25th.
Mon, Apr 19 Architectural Patterns Software Architecture, Architectural Patterns, 3-Tier Architecture, MVC Quiz 9 (in Canvas)
Wed, Apr 21 Course Review, about Final Exam
Fri, Apr 23 No class - prepare the project hand-in Teams use the class time to work on final project hand-in
Sun, April 25 Undergrad Final Project Submission and Documentation (in Canvas)
Mon, April 26 Grad student Final Project Presentations #1
Wed, April 28 Grad student Final Project Presentations #2
Wed, May 5 at 1:30pm Final Exam