These notes are placed here primarily to assist students enrolled in the course; they are not intended as polished documents. All notes are copyright © Russell C. Bjork. Students enrolled in CPS122 may reproduce these notes for personal study and anyone is free to use them for personal reference; all other rights are reserved.

  1. Course Introduction
  2. From Python to Java
  3. Introduction to Software Development
  4. Requirements Engineering
  5. Use Cases and Initial Functional Tests
  6. Identifying Objects and Classes
  7. Defining a Class
  8. Encapsulation, Inheritance, and Polymorphism
  9. Class Diagrams
  10. Representing Associations in Java; Collections; Arrays
  11. Identifying Responsibilities; CRC Cards
  12. Modeling the Dynamic Behavior of Systems; Interaction Diagrams in UML
  13. State and Activity Diagrams in UML
  14. Detailed Design and Implementation
  15. GUIs and Event Driven Programming
  16. Architectural Design
  17. Design Patterns
  18. The User Interface
  19. Quality Assurance Lectures
  20. Cohesion and Coupling