Title: Bugs are everywhere
Reading material: page 1-2, 4-6 of the textbook
Slides: lecture1.pdf
Title: Testing on steroids
Reading material: JUnit website
Slides: lab1.pdf
Lab: Lab 1
Title: Testing on steriods
Reading material: JUnit website
Slides: lecture2.pdf
Code: Boolean.java, BooleanTest.java
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
Quiz: Quiz 1
Title: Check Models
Reading material: Java PathFinder: a translator from Java to Promela
Slides: lecture4.pdf
Code: RunTest.java
Title: Mini Models
Slides: lecture5.pdf
Code: NoSoManyChoices.java, Choice.java
Lab: Lab 2
Title: Mini Models
Slides: lecture6.pdf
Code: Traversal.java
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
Reading material: Chapter 1 of notes.pdf
Project: Part 1 of project (5%)
Lab: Lab 3
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
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
Lab: Lab 4
Title: Search
Reading material: Pages 47-52 of notes.pdf, JPF API
Slides: lecture10.pdf
Code: DFSearch.java
Title: Search
Reading material: Pages 45 of notes.pdf
Slides: lecture11.pdf
Code: BFSearch.java
Title: Search
Reading material: Pages 45 of notes.pdf
Slides: lecture12.pdf
Code: SearchNotificationRecorder.java, Generate.java, CompareSearchRecordings, test.sh
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
Lab: Lab 5
Project: Part 2 of project (2%)
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%)
Lab: Lab 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:
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
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture16.pdf
Code: Reader.java, Writer.java, ReadersAndWriters.java, Database.java (first attempt)
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).
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
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)
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)
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)
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.
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)
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)
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)
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.
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.
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.
For those students who choose to participate, there are the following make up quizzes in LAS 1006:
Instructor is available almost every day to meet and discuss course material and the project. Please make an appointment by email.
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
-->