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