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

Quiz 2

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

Midterm
A solution

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:

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, state space diagram
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.

Quiz 3

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

Lab 7

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.

Quiz 4

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.

Final exam
A solution

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.

Project

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   -->