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. Associations
  10. Representing Associations in Java; Collections; Arrays
  11. Class Diagrams
  12. Unit Testing with JUnit
  13. Identifying Responsibilities; CRC Cards
  14. Modeling the Dynamic Behavior of Systems; Interaction Diagrams in UML
  15. State and Activity Diagrams in UML
  16. Detailed Design and Implementation
  17. GUIs and Event Driven Programming
  18. Architectural Design
  19. Design Patterns
  20. The User Interface
  21. Quality Assurance Lectures
  22. Cohesion and Coupling
  23. Reuse, Components, Frameworks and API's
  24. Exceptions
  25. Input Output