Title: Bugs are everywhere
Reading material: page 1-2, 4-6 of the textbook
Slides: lecture1.pdf
Title: Testing on steriods
Reading material: JUnit website
Slides: lab1.pdf
Lab: Lab 1
Title: Testing on steriods
Reading material: JUnit website
Slides: lecture2.pdf
Code: Byte.java, ByteTest.java
Title: State exploration
Reading material: page 3, 7-8, 11-16 of the textbook
Slides: lecture3.pdf
Code: Quick.java, RandomFraction.java
Title: Mini Models
Reading material: Java PathFinder: a translator from Java to Promela
Slides: lecture4.pdf
Code: PrintRandom.java, RunTest.java
Title: Mini Models
Slides: lecture5.pdf
Code: OneChoice.java, TwoChoices.java
Reading material: Chapter 1 of notes.pdf
Project: Part 1 of project (5%)
Title: Mini Models
Slides: lecture6.pdf
Code: ManyChoices.java
Title: Listen!
Reading material: The Java Tutorials: Writing Event Listeners
Slides: lecture7.pdf
Code: Generator.java, Listener.java, ListenerAdapter.java, Main.java, PlusPrinter.java, StarPrinter.java, SumPrinter.java, ValuePrinter.java
Lab: Lab 4
Title: Listen!
Reading material: Pages 27-29 of Notes, JPF API
Slides: lecture8.pdf
Code: Garbage.java (prints *), Garbage.java (timer), StateSpace.java (txt version),StateSpace.java (dot version)
Title: Listen!
Reading material: Pages 30-32 of Notes
Slides: lecture9.pdf
Code: StateSpace.java (dot version with colours), Mnemonics.java, Profiler.java
Quiz: Quiz 2
Lab: Lab 5
Title: Search!
Reading material: Chapter 8 of Notes
Slides: lecture10.pdf
Code: DFSearch.java
Title: Search!
Reading material: Chapter 8 of Notes
Slides: lecture11.pdf
Code: BFSearch.java
Quiz: Quiz 3
Title: Search!
Reading material: RandomSearch.java, SearchSample.java
Slides: lecture12.pdf
Code: RandomPathsSearch.java
Title: The State Space in XML Format
Reading material: Section 8.6-8.8 and 11.1 of Notes
Slides: lecture13.pdf
Code: StateSpaceXML.java, Sine.java, Sine.jpf, StrictMath.java
Lab: Lab 7
Title: Handling Native Methods (Native Peers)
Reading material: Section 11.2 of Notes
Slides: lecture14.pdf
Code: Sine.java, Sine.jpf, JPF_java_lang_StrictMath.java
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture15.pdf
Code: Printer.java (using Thread), TwoPrinters.java (using Thread). Printer.java (using Runnable). TwoPrinters.java (using Runnable)
Lab: Lab 8
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture16.pdf
Code: Counter.java, Resource.java
Last date to drop course without receiving grade
Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture17.pdf
Code: Database.java, Reader.java, Writer.java, ReadersAndWriters.java, Table.java. Philosopher.java. DiningPhilosophers.java
Quiz: Quiz 4
Title: Deadlocks and Data Races
Reading material: The Java Tutorials: Concurrency
Slides: lecture18.pdf
Code: Philosopher.java, LeftHandedPhilosopher.java, RightHandedPhilosopher.java, DiningPhilosophers.java, Room.java, Philosopher.java, Philosopher.java, Account.java, Account.java
, Search.java
Title: Linear Temporal Logic
Reading material: pages 229-236 of the textbook
Slides: lecture19.pdf
Lab: Lab 10
Title: Linear temporal logic
Reading material: pages 252, 255-256, 313-327, 334-340 of the textbook
Slides: lecture20.pdf
Title: Computation Tree Logic
Reading material: pages 341-351 of the textbook
Slides: lecture21.pdf
Course evaluation: course evaluation at 10:05-10:15
Quiz: Quiz 5
Title: Software for Dependable Systems
Reading material: Software for Dependable Systems: Sufficient Evidence?
Slides: lecture22.pdf
Title: Computation Tree Logic
Reading material:
Slides: lecture23.pdf
Work on project
Title: Model Checking versus Theorem Proving
Slides: lecture24.pdf
Quiz: Quiz 6
Last day to withdraw from the course and receive a W (non-petitionable).
Final exam in Accolade East, room 006, 9:00-11:00
Deadline to hand in project
<!--
===== March 14 =====
//Title:// Computation Tree Logic\\
//Reading material:// pages 341-351 of the textbook and {{:public:partialorder.pdf|note on partial ordered sets and fixed points}}\\
//Slides:// {{:public:lecture19.pdf|lecture19.pdf}}
===== March 15 =====
//Title:// Witnesses and Counterexamples\\
//Reading material:// pages 373-379 of the textbook\\
//Slides:// {{:public:lecture20.pdf|lecture20.pdf}}\\
//Code:// {{:public:MaggieDogPoissonProblem.txt|MaggieDogPoisonProblem.java}}
===== March 22 =====
//Title:// Structured Proofs\\
//Reading material:// [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1007/s11784-012-0071-6|How to write a 21st century proof]]\\
//Slides:// {{:public:lecture22.pdf|lecture22.pdf}}
===== March 28 =====
Quiz
//Title:// Binary Decision Diagrams\\
//Reading material:// pages 382-386, 392-405 of the textbook\\
//Slides:// {{:public:lecture23.pdf|lecture23.pdf}}
===== March 29 =====
//Title:// Binary Decision Diagrams\\
//Reading material:// pages 387-391 of the textbook\\
//Slides:// {{:public:lecture24.pdf|lecture24.pdf}}
-->