Weekly Calendar
January 4
Title: Bugs are everywhere
Reading material: page 1-2, 4-6 of the textbook
Slides: lecture1.pdf
January 5
Title: Testing on steroids
Reading material: JUnit website
Slides: lab1.pdf
Lab: Lab 1
January 9
Title: Testing on steriods
Reading material: JUnit website
Slides: lecture2.pdf
Code: Boolean.java, BooleanTest.java
January 11
Title: Space exploration
Reading material: page 3, 7-8, 11-16 of the textbook
Slides: lecture3.pdf
Code: OneChoice.java, TwoChoices.java, ManyChoices.java, ManyChoices.java
January 12
Quiz: Quiz 1
January 16
Title: Check Models
Reading material: Java PathFinder: a translator from Java to Promela
Slides: lecture4.pdf
Code: RunTest.java
January 18
Title: Mini Models
Slides: lecture5.pdf
Code: NoSoManyChoices.java, Choice.java
January 19
Lab: Lab 2
January 23
Title: Mini Models
Slides: lecture6.pdf
Code: Traversal.java
January 25
Title: Listen
Reading material: The Java Tutorials: Wring Event Listeners
Slides: lecture7.pdf
Code: Generator.java, Main.java, Listener.java, ListenerAdapter.java, PlusPrinter, StarPrinter.java, ValuePrinter.java, SumPrinter.java
January 26
Reading material: Chapter 1 of notes.pdf
Project: Part 1 of project (5%)
Lab: Lab 3
January 30
Title: Listen
Reading material: Pages 39-43 of notes.pdf, JPF API
Slides: lecture8.pdf
Code: Garbage.java (first version), Garbage.java (second version), Example.java, Garbage.jpf
February 1
Title: Listen
Reading material: Pages 39-43 of notes.pdf, JPF API
Slides: lecture9.pdf
Code: StateSpace.java (txt version),StateSpace.java (dot version), StateSpace.java (dot version with colours), Mnemonics.java, Profiler.java
February 2
Lab: Lab 4
February 6
Title: Search
Reading material: Pages 47-52 of notes.pdf, JPF API
Slides: lecture10.pdf
Code: DFSearch.java
February 8
Title: Search
Reading material: Pages 45 of notes.pdf
Slides: lecture11.pdf
Code: BFSearch.java
February 9
February 13
Title: Search
Reading material: Pages 45 of notes.pdf
Slides: lecture12.pdf
Code: SearchNotificationRecorder.java, Generate.java, CompareSearchRecordings, test.sh
February 15
Title: Peers and Native Peers
Reading material: Pages 61-62 of notes.pdf
Slides: lecture13.pdf
Code: Sine.java, StrictMath.java, JPF_java_lang-StrictMath.java
February 16
Lab: Lab 5
February 20
Project: Part 2 of project (2%)
February 27
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture14.pdf
Code: Printer.java (using Thread), TwoPrinters.java (using Thread). Printer.java (using Runnable). TwoPrinters.java (using Runnable)
Project: Part 3 of project (3%)
March 1
March 2
Lab: Lab 6
March 6
According to
Senate Policy on the Academic Implications of Disruptions or Cessations of University Business Due to Labour Disputes or Other Causes
Students who do not participate in academic activities because:
- they are unable to do so owing to a Disruption, or
- they choose not to participate in academic activities owing to a strike or lock-out on campus
are entitled to immunity from penalty, to reasonable alternative access to materials covered in their absence, to reasonable extensions of deadlines and to such other remedy as Senate deems necessary and consistent with the principle of academic integrity.
Lectures and labs will continue for those students who choose to participate.
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture15.pdf,
Handout: handout15.pdf
Code: Counter.java, Resource.java, StateSpaceWithThreadInfo.java
March 8
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture16.pdf
Code: Reader.java, Writer.java, ReadersAndWriters.java, Database.java (first attempt)
March 9
The quiz will be held for those students who choose to participate. For those who choose not to participate, a make up quiz covering the same material will be given. Details will be provided at a later date.
Last date to drop the course without receiving grade has been postponed (once the new drop deadline date has been set, it will be posted).
March 13
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture17.pdf
Recording: here (login with EECS credential to access this material)
Code: Database.java (second attempt), Philosopher.java,
Table.javaLeftHandedPhilosopher.java, RightHandedPhilosopher.java, DiningPhilosophers.java, Room.java, Philosopher.java, Philosopher.java
March 15
Title: Linear Temporal Logic
Reading material: pages 229-236 of the textbook
Slides: lecture18.pdf
Recording: here (login with EECS credential to access this material)
March 16
March 20
Information about completion of courses and finalization of grades can be found here. Additional information can be found here.
Title: Logics
Reading material: pages 252, 255-256, 313-327, 334-340 of the textbook
Slides: lecture19.pdf
Recording: here (login with EECS credential to access this material)
March 22
Title: Concurrency
Reading material: The Java Tutorials: Concurrency, JPF Visual
Slides: lecture20.pdf
Handout: handout20.pdf
Code: Pot.java, Cook.java, Savage.java, DiningSavages.java
Recording: here (login with EECS credential to access this material)
March 23
The quiz will be held for those students who choose to participate. For those who choose not to participate, a make up quiz covering the same material will be given. Details will be provided at a later date.
Course evaluation is available until April 6.
March 27
Title: CTL model checking
Reading material: pages 341-351 of the textbook
Slides: lecture21.pdf
Recording: here (login with EECS credential to access this material)
March 29
Title: Concurrency
Reading: The Java Tutorials: Concurrency
Slides: lecture22.pdf
Handout: handout22.pdf
Code: Account.java, Customer.java, Customers.java, Account.java
Recording: here (login with EECS credential to access this material)
April 3
Title: Software for Dependable Systems
Reading material: Software for Dependable Systems: Sufficient Evidence?
Slides: lecture23.pdf
Recording: here (login with EECS credential to access this material)
April 6
Opportunity to work on your project in the lab.
Last day to complete the course evaluation.
Last day to drop the course without receiving a grade for those students who have chosen to participate in the course.
April 18
The final exam will be held in DB 0004 at 9:00-11:00 for those students who choose to participate. For those who choose not to participate, a make up final exam covering the same material will be given. Details will be provided at a later date.
April 22
For those students who choose to participate, this is the last date to submit the project. For those who choose not to participate, the deadline will be determined at a later date.
May 15
For those students who choose to participate, there are the following make up quizzes in LAS 1006:
July 23 - August 20
Instructor is available almost every day to meet and discuss course material and the project. Please make an appointment by email.
January 10, 2019
Last day to drop the course and submit outstanding work.
<!--
===== March 15 =====
//Title:// Deadlocks and Data Races\\
//Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\
//Slides:// {{:public:lecture18.pdf|lecture18.pdf}}\\
//Code:// {{:public:AbstractPhilosopher.txt|Philosopher.java}}, {{:public:LeftHandedPhilosopher.txt|LeftHandedPhilosopher.java}}, {{:public:RightHandedPhilosopher.txt|RightHandedPhilosopher.java}}, {{:public:LeftRightDiningPhilosophers.txt|DiningPhilosophers.java}}, {{:public:Room.txt|Room.java}}, {{:public:RoomPhilosopher.txt|Philosopher.java}}, {{:public:PhilosopherWithState.txt|Philosopher.java}}, {{:public:RaceAndCondition.txt|Account.java}}, {{:public:ConditionAndNoRace.txt|Account.java}}
, {{:public:RaceAndNoCondition.txt|Search.java}}
===== April 16 =====
Deadline to hand in project
-->