Weekly Calendar

January 6

Title: Bugs are everywhere
Reading material: page 1-2, 4-6 of the textbook
Slides: lecture1.pdf

January 9

Title: Testing on steriods
Reading material: JUnit website
Slides: lab1.pdf
Lab: Lab 1

January 11

Title: Testing on steriods
Reading material: JUnit website
Slides: lecture2.pdf
Code: Byte.java, ByteTest.java

January 13

Title: State exploration
Reading material: page 3, 7-8, 11-16 of the textbook
Slides: lecture3.pdf
Code: Quick.java, RandomFraction.java

January 16

Lab: Lab 2
Quiz: Quiz 1

January 18

Title: Mini Models
Reading material: Java PathFinder: a translator from Java to Promela
Slides: lecture4.pdf
Code: PrintRandom.java, RunTest.java

January 20

Title: Mini Models
Slides: lecture5.pdf
Code: OneChoice.java, TwoChoices.java

January 23

Reading material: Chapter 1 of notes.pdf
Project: Part 1 of project (5%)

January 25

Title: Mini Models
Slides: lecture6.pdf
Code: ManyChoices.java

January 27

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

January 30

Lab: Lab 4

February 1

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)

February 3

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

February 6

Lab: Lab 5

February 8

Title: Search!
Reading material: Chapter 8 of Notes
Slides: lecture10.pdf
Code: DFSearch.java

February 10

Title: Search!
Reading material: Chapter 8 of Notes
Slides: lecture11.pdf
Code: BFSearch.java

February 13

Quiz: Quiz 3

February 15

Title: Search!
Reading material: RandomSearch.java, SearchSample.java
Slides: lecture12.pdf
Code: RandomPathsSearch.java

February 17

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

February 27

Lab: Lab 7

March 1

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

March 3

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)

March 6

Lab: Lab 8

March 8

Title: Concurrency
Reading material: The Java Tutorials: Concurrency
Slides: lecture16.pdf
Code: Counter.java, Resource.java

March 10

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

March 13

Quiz: Quiz 4

March 15

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

March 17

Title: Linear Temporal Logic
Reading material: pages 229-236 of the textbook
Slides: lecture19.pdf

March 20

Lab: Lab 10

March 22

Title: Linear temporal logic
Reading material: pages 252, 255-256, 313-327, 334-340 of the textbook
Slides: lecture20.pdf

March 24

Title: Computation Tree Logic
Reading material: pages 341-351 of the textbook
Slides: lecture21.pdf
Course evaluation: course evaluation at 10:05-10:15

March 27

Quiz: Quiz 5

March 29

Title: Software for Dependable Systems
Reading material: Software for Dependable Systems: Sufficient Evidence?
Slides: lecture22.pdf

March 31

Title: Computation Tree Logic
Reading material:
Slides: lecture23.pdf

April 3

Work on project

April 5

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

April 13

Final exam in Accolade East, room 006, 9:00-11:00

April 16

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