~~NOTOC~~ ====== Weekly Calendar ====== ===== January 4 ===== //Title:// Testing on steroids\\ //Reading material:// [[http://junit.org/junit5/|JUnit website]]\\ //Slides:// {{:lab1.pdf|lab1.pdf}}\\ //Lab:// [[lab1|Lab 1]] ===== January 7 ===== //Title:// Bugs are everywhere\\ //Reading material:// page 1-2, 4-6 of the textbook\\ //Slides:// {{:lecture1.pdf|lecture1.pdf}}\\ //Handout:// {{:handout1.pdf|handout1.pdf}} ===== January 9 ===== //Title:// Testing on steriods\\ //Reading material:// [[http://junit.org/junit5/|JUnit website]]\\ //Slides:// {{:lecture2.pdf|lecture2.pdf}}\\ //Handout:// {{:handout2.pdf|handout2.pdf}}\\ //Code:// {{:color.txt|Color.java}}, {{:colortest.txt|ColorTest.java}}, {{:booleantest.txt|BooleanTest.java}} ===== January 11 ===== //Quiz:// [[quiz1|Quiz 1]] ===== January 14 ===== //Title:// Space exploration\\ //Reading material:// page 3, 7-8, 11-16 of the textbook\\ //Slides:// {{:lecture3.pdf|lecture3.pdf}}\\ //Handout:// {{:handout3.pdf|handout3.pdf}}\\ //Code:// {{:onechoice.txt|OneChoice.java}}, {{:twochoices.txt|TwoChoices.java}}, {{:manychoicesa.txt|ManyChoices.java}}, {{:manychoicesb.txt|ManyChoices.java}} ===== January 16 ===== //Title:// Check models\\ //Reading material:// Section 1 and Section 5.1-5.3 of [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1007/978-3-540-69850-0|The Birth of Model Checking]], [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1007/3-540-48234-2_11|Java PathFinder: a translator from Java to Promela]]\\ //Slides:// {{:lecture4.pdf|lecture4.pdf}}\\ //Handout:// {{:handout4.pdf|handout4.pdf}}\\ //Code:// {{:printrandom.txt|PrintRandom.java}}, {{:printrandom.jpf.txt|PrintRandom.jpf}}, {{:runtest.txt|RunTest.java}}, {{:runtest.jpf.txt|RunTest.jpf}} ===== January 18 ===== //Lab:// [[lab2|Lab 2]] ===== January 21 ===== //Quiz:// [[quiz2|Quiz 2]], {{:quiz2.pdf|a solution}} ===== January 23 ===== //Title:// Mini models\\ //Slides:// {{:lecture5.pdf|lecture5.pdf}}\\ //Handout:// {{:handout5.pdf|handout5.pdf}}\\ //Code:// {{:nosomanychoices.txt|NoSoManyChoices.java}}, {{:choice.txt|Choice.java}} ===== January 25 ===== //Reading material:// Chapter 1 and 2 of {{:notes.pdf|notes.pdf}}\\ //Project:// [[project1|Part 1 of project]]\\ \\ //Reading material:// Chapter 4 of {{:notes.pdf|notes.pdf}}\\ //Lab:// [[lab4|Lab 3]] ===== January 28 ===== //Title:// Mini models\\ //Reading material:// Chapter 3 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture6.pdf|lecture6.pdf}}\\ //Handout:// {{:handout6.pdf|handout6.pdf}}\\ //Code:// {{:runjpf.txt|RunJPF.java}}, {{:traversal.txt|Traversal.java}} ===== January 30 ===== //Title:// Listen\\ //Reading material:// {{https://docs.oracle.com/javase/tutorial/uiswing/events/|The Java Tutorials: Writing Event Listeners}}\\ //Slides:// {{:lecture7.pdf|lecture7.pdf}}\\ //Handout:// {{:handout7.pdf|handout7.pdf}}\\ //Code:// {{:generator.txt|Generator.java}}, {{:main.txt|Main.java}}, {{:listener.txt|Listener.java}}, {{:listeneradapter.txt|ListenerAdapter.java}}, {{:plusprinter.txt|PlusPrinter}}, {{:starprinter.txt|StarPrinter.java}}, {{:valueprinter.txt|ValuePrinter.java}}, {{:sumprinter.txt|SumPrinter.java}} ===== February 1 ===== //Reading material:// Chapter 7 of {{:notes.pdf|notes.pdf}}, [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/api/jpf.api/|JPF API]]\\ //Lab:// [[lab4b|Lab 4]] ===== February 4 ===== //Title:// Listen\\ //Reading material:// Chapter 7 up to Section 7.4 of {{:notes.pdf|notes.pdf}}, {{:searchlistener.pdf|new section for Chapter 7}}, [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/api/jpf.api/|JPF API]]\\ //Slides:// {{:lecture8.pdf|lecture8.pdf}}\\ //Handout:// {{:handout8.pdf|handout8.pdf}}\\ //Code:// {{:searchevents.txt|SearchEvents.java}}, {{:statespace1.txt|StateSpace.java (txt version)}},{{:statespace2.txt|StateSpace.java (dot version)}}, {{:statespace3.txt|StateSpace.java (dot version with colours)}} ===== February 6 ===== //Title:// Listen\\ //Reading material:// The remainder of Chapter 7 of {{:notes.pdf|notes.pdf}}, [[http://www.eecs.yorku.ca/course_archive/2018-19/W/4315/api/jpf.api/|JPF API]]\\ //Slides:// {{:lecture9.pdf|lecture9.pdf}}\\ //Code:// {{:garbage1.txt|Garbage.java (first version)}}, {{:garbage2.txt|Garbage.java (second version)}}, {{:example.txt|Example.java}}, {{:garbage3.txt|Example.jpf}}, {{:mnemonics.txt|Mnemonics.java}}, {{:profiler.txt|Profiler.java}} ===== February 8 ===== //Lab:// [[lab4a|Lab 5]] ===== February 11 ===== //Title:// Search\\ //Reading material:// Chapter 9, up to and including Section 9.6, of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture10.pdf|lecture10.pdf}}\\ //Handout:// {{:handout10.pdf|handout10.pdf}}\\ //Code:// {{:dfsearch.txt|DFSearch.java}} ===== February 13 ===== //Title:// Search\\ //Reading material:// Section 9.7 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture11.pdf|lecture11.pdf}}\\ //Handout:// {{:handout11.pdf|handout11.pdf}}\\ //Code:// {{:bfsearch.txt|BFSearch.java}} ===== February 15 ===== //Project:// [[project2|Part 2 of project]]\\ //Quiz:// [[quiz3|Quiz 3]] ===== February 25 ===== //Title:// Peers and Native Peers\\ //Reading material:// Chapter 10 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture12.pdf|lecture12.pdf}}\\ //Code:// {{:teletypewriter.txt|TeleTYpewriter.java}}, {{:main1.txt|Main.java}}, {{:my_util_teletypewriter.h.txt|my_util_TeleTypewriter.h}}, {{:my_util_teletypewriter.c.txt|my_util-TeleTYpewriter.c}}, {{:teletypewriter-peer.txt|TeleTYpewriter.java (peer class)}}, {{:main-peer.jpf.txt|Main.jpf (using peer class)}}, {{:jpf_my_util_teletypewriter.txt|JPF_my_util_TeleTYpewriter.java (native peer class)}}, {{:main-native-peer.jpf.txt|Main.jpf (using native peer class)}}, {{:main-nhandler.jpf.txt|Main.jpf (using jpf-nhandler}} //Project:// [[project3|Part 3 of project]] ===== February 27 ===== [[midterm|Midterm]], {{:midterm.pdf|a solution}} ===== March 1 ===== //Lab:// [[lab8|Lab 6]] ===== March 4 ===== //Title:// Testing JPF\\ //Reading material:// [[https://www.eecs.yorku.ca/course_archive/2018-19/W/4315/api/jpf.api/gov/nasa/jpf/util/test/TestJPF.html|TestJPF]]\\ //Slides:// {{:lecture13.pdf|lecture13.pdf}}\\ //Handout:// {{:handout13.pdf|handout13.pdf}}\\ //Code:// {{:basictest.txt|BasicTest.java}}, {{:callmonitortest.txt|CallMonitorTest.java}} ===== March 6 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{lecture14.pdf|lecture14.pdf}}\\ //Handout:// {{:handout14.pdf|handout14.pdf}}\\ //Code:// {{:printer-thread.txt|Printer.java (using Thread)}}, {{:twoprinters-thread.txt|TwoPrinters.java (using Thread)}}. {{:printer-runnable.txt|Printer.java (using Runnable)}}. {{:twoprinters-runnable.txt|TwoPrinters.java (using Runnable)}}, {{:incrementer.txt|Incrementer.java}}, {{:twoincrementers.txt|TwoIncrementers.java}}, {{:twoincrementers.jpf.txt|TwoIncrementers.jpf}} ===== March 8 ===== **//Drop deadline:// last date to drop the course without receiving a grade for it.** //Lab:// work on your project ===== March 11 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture15.pdf|lecture15.pdf}}, {{:statespacewithouthtreadinfo.png?200x50|state space diagram}}\\ //Handout:// {{:handout15.pdf|handout15.pdf}}\\ //Code:// {{:counter.txt|Counter.java}}, {{:resource.txt|Resource.java}}, {{:statespacewiththreadinfo.txt|StateSpaceWithThreadInfo.java}} ===== March 13 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture16.pdf|lecture16.pdf}}\\ //Handout:// {{:handout16.pdf|handout16.pdf}}\\ //Code:// {{:reader.txt|Reader.java}}, {{:writer.txt|Writer.java}}, {{:readersandwriters.txt|ReadersAndWriters.java}}, {{:database.txt|Database.java (first attempt)}} ===== March 15 ===== //Lab:// [[lab7|Lab 7]] //Project:// [[project4|Part 4 of project]] ===== March 18 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture17.pdf|lecture17.pdf}}\\ //Handout:// {{:handout17.pdf|handout17.pdf}}\\ //Code:// {{:database2.txt|Database.java (second attempt)}}, {{:public:AbstractPhilosopher.txt|Philosopher.java}}, {{:public:table.txt|Table.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}} ===== March 20 ===== //Title:// Concurrency\\ //Reading//: [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture18.pdf|lecture18.pdf}}\\ //Handout:// {{:handout18.pdf|handout18.pdf}}\\ //Code:// {{:public:RaceAndCondition.txt|Account.java}}, {{:public:ConditionAndNoRace.txt|Account.java}} , {{:public:RaceAndNoCondition.txt|Search.java}} ===== March 22 ===== //Lab:// work on your project ===== March 25 ===== //Title:// Linear Temporal Logic\\ //Reading material:// pages 229-236 and 248-249 of the textbook\\ //Slides:// {{:lecture19.pdf|lecture19.pdf}}\\ //Handout:// {{:handout19.pdf|handout19.pdf}} ===== March 27 ===== //Title:// Temporal Logics\\ //Reading material:// pages 313-327 and 334-340 of the textbook\\ //Slides:// {{:lecture20.pdf|lecture20.pdf}}\\ //Handout:// {{:handout20.pdf|handout20.pdf}} ===== March 29 ===== //Lab:// work on your project\\ //Slides:// {{:lab12.pdf|lab12.pdf}} //Project:// [[project5|Part 5 of project]] ===== April 1 ===== //Title:// CTL model checking\\ //Reading material:// pages 341-351 of the textbook\\ //Slides:// {{:lecture21.pdf|lecture21.pdf}} ===== April 3 ===== //Title:// Symbolic model checking\\ //Reading material:// [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/1390630.1390635|Combining unit-level symbolic execution and system-level concrete execution for testing NASA software]]\\ //Slides:// {{:lecture22.pdf|lecture22.pdf}} ===== April 8 ===== //Office hours:// 14:00-16:00 ===== April 9 ===== //Office hours:// 10:00-12:00 ===== April 10 ===== [[final|Final exam]], {{:final.pdf|a solution}}: 14:00-17:00 in LAS 1004. ===== April 22 ===== [[project6|Project]]