Lecture Notes for CPS 221: Software Systems

These notes are from the 2014 offering of the course. They 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 CPS221 may reproduce these notes for personal study; all other rights are reserved.

  1. Course Introduction
  2. Operating System Functions and History
  3. Threads
  4. Scheduling
  5. The Critical Section Problem
  6. Deadlock
  7. Processes and Virtual Memory
  8. Operating System Protection
  9. Operating System Structure; Virtual Machines
  10. Introduction to Net-Centric Computing
  11. Layered Network Architecture
  12. The Physical and Data Link Layers
  13. The Network Layer
  14. The Transport Layer
  15. The Application Layer and the Client-Server Model
  16. Cloud Computing
  17. Introduction to Database Management Systems
  18. The Relational Data Model
  19. Relational Database Querying and Updating
  20. JDBC
  21. Relational Database Design and Creation
  22. ACID Transations
  23. Encryption
  24. Security
  25. Secure Programming