CS452 - Real-Time Programming - Spring 2016

Lecture Notes

Here you will find the lecture notes that I use when teaching. They are telegraphic, so they are not a substitute for the lectures. But, if you attend the lecture they will most likely be a good memory prosthetic. As I write this -- 1 May, 2016 (If there were no such thing as the `last minute', nothing would ever get done.) -- there is almost nothing here. I will populate this page as the course proceeds, so that all the lecture notes will be here at the end of the term.

  1. 2 May, 2016. Introduction. UARTs and serial I/O
  2. 4 May, 2016. Polling loops, performance
  3. 6 May, 2016. More about I/O, pitfalls
  4. 9 May, 2016. Tasks, Kernels
    Assignment 0 due.
  5. 11 May, 2016. The ARM Architecture
  6. 13 May, 2016. Context Switches on the ARM
  7. 16 May, 2016. Create( ), scheduling
  8. 18 May, 2016. Catch-up.
  9. 20 May, 2016. Initializing the kernel.
    Monday, 23 May, 2016. Victoria Day. No class.
  10. 25 May, 2016. Send/Receive/Reply.
  11. 27 May, 2016. Name Server.
    Kernel 1 due.
  12. 30 May, 2016. Hardware Interrupts.
    Kernel 2 due.
  13. 1 June, 2016. ARM Interrupt.
  14. 3 June, 2016. Actually taught: SRR performance, models.
  15. 6 June, 2016. UART interrupts.
    Kernel 3 due.
  16. 8 June, 2016. Serial I/O.
  17. 10 June, 2016. Serial I/O, debugging.
  18. 13 June, 2016. Trains, Calibration I.
  19. 15 June, 2016. Projects, Calibration II. (See Stopping (pdf).
  20. 17 June, 2016. Calibration III.
    Kernel 4 due.
  21. 20 June, 2016. Acceleration/deceleration. (See Acceleration and Deceleration (pdf).
  22. 22 June, 2016. Anthropomorphic Programming: Warehouse, Secretary
  23. 24 June, 2016. Administrator, Detective
  24. 27 June, 2016. Destroy.
    Tuesday, 28 June, 2016. First train control milestone.
  25. 29 June, 2016. Sensor Attribution, How to Give a Demo.
    Friday, 1 July, 2016. Canada Day. No class.
  26. 4 July, 2016. Route Finding and Following, Magellan.
    Tuesday, 5 July, 2016. Second train control milestone.
  27. 6 july, 2016. Collision Avoidance.
    Project Proposal due.
  28. 8 july, 2016. Reservations, Pathologies.
  29. 11 july, 2016. More pathologies.
  30. 13 july, 2016. Even More Pathogies.
    Thursday, 14 July, 2016. Third train control milestone.
  31. 15 july, 2016. Magellan spacecraft.
  32. 18 july, 2016. Class cancelled.
  33. 20 july, 2016. Power on I.
  34. 22 july, 2016. Power on II.
  35. 25 july, 2016. We'll see.
  36. 26 july, 2016. We'll see.
    27,28 July, 2016. Final demo.

The schedule of lectures above is necessarily approximate. I have noticed that topics vary from term to term in the amount of lecture time required, and I vary the schedule accordingly. That's why the lecture notes vary from term to term, finalized only when I know how much was covered in the previous lecture. Links in the schedule become live when my notes are finalized, which is -- almost -- always before the class starts. (I assume that students with laptops open in class are following the web version of the notes!)

Lectures scheduled up to and including Lecture 29, currently scheduled for 22 july, present material you will most likely use in your kernel or your train project. Beyond that point there is a collection of real-time topics on which I am prepared to lecture and student choose which, if any, are presented. These lectures are for your interest: they generally have little effect on projects, but may provide examples that are useful on the exam. Some lectures during the last two weeks are cancelled, potentially to relieve crowded schedules a bit.


Return to: