~~NOTOC~~ ====== Weekly Calendar ====== ===== January 6 ===== //Title:// Bugs are everywhere\\ //Reading material:// page 1-2, 4-6 of the textbook\\ //Slides:// {{:lecture1.pdf|lecture1.pdf}} ===== January 8 ===== //Title:// Testing on steriods\\ //Reading material:// [[http://junit.org/junit5/|JUnit website]]\\ //Slides:// {{:lecture2.pdf|lecture2.pdf}}\\ //Handout:// {{:handout1.pdf|handout1.pdf}}, {{:handout2.pdf|handout2.pdf}}\\ //Code:// {{:colortest.txt|ColorTest.java}} ===== January 10 ===== //Title:// More testing on steroids\\ //Reading material:// [[http://junit.org/junit5/|JUnit website]]\\ //Slides:// {{:lab1.pdf|lab1.pdf}}\\ //Lab:// [[lab1|Lab 1]] ===== January 13 ===== //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 15 ===== //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}} ===== January 17 ===== //Quiz:// [[quiz1|Quiz 1]] ===== January 20 ===== //Title:// State space traversals\\ //Reading material:// Chapter 5 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture5.pdf|lecture5.pdf}}\\ //Handout:// {{:handout5.pdf|handout5.pdf}}\\ //Code:// {{:runtest.txt|RunTest.java}}, {{:runtest.jpf.txt|RunTest.jpf}}, {{:runjpf.txt|RunJPF.java}}, {{:traversal.txt|Traversal.java}} ===== January 22 ===== //Title:// Listen\\ //Reading material:// {{https://docs.oracle.com/javase/tutorial/uiswing/events/|The Java Tutorials: Writing Event Listeners}}\\ //Slides:// {{:lecture6.pdf|lecture6.pdf}}\\ //Handout:// {{:handout6.pdf|handout6.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}} ===== January 24 ===== //Reading material:// Chapter 1 and 2 of {{:notes.pdf|notes.pdf}}\\ //Project:// [[project1|Part 1 of project]]\\ \\ //Reading material:// Chapter 5 of {{:notes.pdf|notes.pdf}}\\ //Lab:// [[lab5|Lab 2]] ===== January 27 ===== //Title:// Listen\\ //Reading material:// Chapter 7 up to Section 7.5 of {{:notes.pdf|notes.pdf}}, [[http://www.eecs.yorku.ca/course_archive/2019-20/W/4315/api/jpf/|JPF API]]\\ //Slides:// {{:lecture7.pdf|lecture7.pdf}}\\ //Handout:// {{:handout7.pdf|handout7.pdf}}\\ //Code:// {{:searchevents.txt|SearchEvents.java}}, {{:traversal.txt|Traversal.java}}, {{:traversal.jpf.txt|Traversal.jpf}}, {{:statespacetext.txt|StateSpaceText.java}}, {{:traversal.jpf1.txt|Traversal.jpf}}, {{:statespacedot.txt|StateSpaceDot.java}}, {{:statespacedot2.txt|StateSpaceDot.java (version with colours)}} ===== January 29 ===== //Title:// Listen\\ //Reading material:// The remainder of Chapter 7 of {{:notes.pdf|notes.pdf}}, [[http://www.eecs.yorku.ca/course_archive/2019-20/W/4315/api/jpf/|JPF API]]\\ //Slides:// {{:lecture8.pdf|lecture8.pdf}}\\ //Code:// {{:garbage1.txt|Garbage.java (first version)}}, {{:garbage2.txt|Garbage.java (second version)}}, {{:garbagetest.txt|GarbageTest.java}}, {{:garbagetest.jpf.txt|GarbageTest.jpf}}, {{:mnemonics.txt|Mnemonics.java}}, {{:profiler.txt|Profiler.java}} ===== January 31 ===== //Quiz:// [[quiz3|Quiz 2]] ===== February 3 ===== //Title:// Search\\ //Reading material:// Chapter 9, up to and including Section 9.6, of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture9.pdf|lecture9.pdf}}\\ //Handout:// {{:handout9.pdf|handout9.pdf}}\\ //Code:// {{:dfsearch.txt|DFSearch.java}} ===== February 5 ===== //Title:// Search\\ //Reading material:// the remainder of Chapter 9 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture10.pdf|lecture10.pdf}}\\ //Handout:// {{:handout10.pdf|handout10.pdf}}\\ //Code:// {{:bfsearch.txt|BFSearch.java}}, {{:generate.txt|Generate.java}}, {{:sample.txt|Sample.java}} (generated app), {{:searchnotificationrecorder.txt|SearchNotificationRecorder}}, {{:comparesearchrecordings.txt|CompareSearchRecordings}}, {{:test.txt|test.sh}} ===== February 7 ===== //Reading material:// Chapter 9 of {{:notes.pdf|notes.pdf}}\\ //Lab:// [[lab6|Lab 3]] ===== February 10 ===== //Title:// Linear Temporal Logic\\ //Reading material:// pages 229-236 of the textbook\\ //Slides:// {{:lecture11.pdf|lecture11.pdf}}\\ //Handout:// {{:handout11.pdf|handout11.pdf}} ===== February 12 ===== //Title:// Temporal Logics\\ //Reading material:// pages 174-175, 248-249, 271-272, 313-327 and 334-340 of the textbook\\ //Slides:// {{:lecture12.pdf|lecture12.pdf}}\\ //Handout:// {{:handout12.pdf|handout12.pdf}} ===== February 14 ===== //Quiz:// [[quiz3|Quiz 3]]\\ //Project:// [[project2|Part 2 of project]] ===== February 24 ===== //Project:// [[project3|Part 3 of project]] //Title:// Computational Tree Logic\\ //Reading material:// pages 341-351 of the textbook\\ //Slides:// {{:lecture13.pdf|lecture13.pdf}}\\ //Handout:// {{:handout13.pdf|handout13df}} ===== February 26 ===== //Title:// Testing JPF\\ //Reading material:// {{:testing.pdf|notes on testing JPF components}},[[https://www.eecs.yorku.ca/course_archive/2018-19/W/4315/api/jpf.api/gov/nasa/jpf/util/test/TestJPF.html|TestJPF]]\\ //Slides:// {{:lecture14.pdf|lecture14.pdf}}\\ //Handout:// {{:handout14.pdf|handout14.pdf}}\\ //Code:// {{:basictest.txt|BasicTest.java}}, [[https://www.eecs.yorku.ca/course_archive/2018-19/W/4315/project/CallMonitorTest.txt|CallMonitorTest.java]] ===== February 28 ===== //Lab:// [[lab7|Lab 4]] ===== March 2 ===== [[midterm|Midterm]] {{:midterm.pdf|a solution}} ===== March 4 ===== //Title:// Peers and Native Peers\\ //Reading material:// Chapter 10 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture15.pdf|lecture15.pdf}}\\ //Handout:// {{:handout15.pdf|handout15.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}} ===== March 6 ===== //Lab:// [[lab8|Lab 5]] ===== March 9 ===== //Project:// [[project4|Part 4 of project]] //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:// {{: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)}}, {{:twoprinters-anonymous.txt|TwoPrinters.java (using anonymous class)}}{{:incrementer.txt|Incrementer.java}}, {{:twoincrementers.txt|TwoIncrementers.java}}, {{:twoincrementers.jpf.txt|TwoIncrementers.jpf}} ===== March 11 ===== //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:// {{:counter.txt|Counter.java}}, {{:resource.txt|Resource.java}}, {{:user.txt|User.java}}, {{:multipleusers.txt|MultipleUsers.java}} ===== March 13 ===== //Lab:// [[lab9|Lab 6]] ===== March 16 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]], Section 3.1 of the textbook\\ //Slides:// {{:lecture18.pdf|lecture18.pdf}}\\ //Handout:// {{:handout18.pdf|handout18.pdf}}\\ //Code:// {{:reader.txt|Reader.java}}, {{:writer.txt|Writer.java}}, {{:readersandwriters.txt|ReadersAndWriters.java}}, {{:database.txt|Database.java}}, {{:philosopher.txt|Philosopher.java}}, {{::table.txt|Table.java}}, {{:diningPhilosophers.txt|DiningPhilosophers.java}}\\ //Recording:// [[https://yorku.zoom.us/rec/share/4Y9WMZWosXhOTKPQzG7DULEOB6_nX6a80SkXq6EPy09UCx-B4wjz8HfE25C3NWF7|recording]] ===== March 18 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture19.pdf|lecture19.pdf}}\\ //Code:// {{:scheduling.txt|Scheduling.java}}, {{:AbstractPhilosopher.txt|Philosopher.java}}, {{:table.txt|Table.java}}{{:LeftHandedPhilosopher.txt|LeftHandedPhilosopher.java}}, {{:RightHandedPhilosopher.txt|RightHandedPhilosopher.java}}, {{:LeftAndRightHandedPhilosophers.txt|DiningPhilosophers.java}} (left and right handed), {{:sittingphilosopher.txt|Philosopher.java}}, {{:sittingtable.txt|Table.java}}, {{:diningphilosophers.txt|DiningPhilosophers.java}} (philosophers sits down before picking of the forks), {{:statephilosopher.txt|Philosopher.java}}, {{:statediningphilosophers.txt|DiningPhilosophers.java}} (states) \\ //Recording:// [[https://yorku.zoom.us/rec/share/y494Hq7h2UVLYdbrs0D-QaQHEcPAX6a8hyUb8qZcyx325r9BdpF_OuvsRRYEY9_2 |recording]] ===== March 20 ===== //Lab:// [[lab10|Lab 7]] ===== March 23 ===== //Project:// [[project5|Part 5 of project]] //Title:// Undecidability\\ //Slides:// {{:lecture20.pdf|lecture20.pdf}}\\ //Recording:// [[https://echo360.ca/media/300b9724-7113-4b91-8328-4a1c9589836f/public|recording]] ===== March 25 ===== //Title:// Data races\\ //Slides:// {{:lecture21.pdf|lecture21.pdf}}\\ //Handout:// {{:handout21.pdf|handout21.pdf}}\\ //Code:// //Code:// {{:RaceAndCondition.txt|Account.java}}, {{:ConditionAndNoRace.txt|Account.java}}, {{:RaceAndNoCondition.txt|Search.java}}\\ //Recording:// [[https://echo360.ca/media/b47b8622-2268-48ec-bd9e-bfe1d829a6fd/public|recording]] ===== March 27 ===== //Lab:// [[lab11|Lab 8]] ===== March 30 ===== {{:presentation.pdf|Slides of sample presentation}} [[https://echo360.ca/media/db0899e5-05c5-438e-a380-8ea066724619/public|Recording of sample presentation]] //Presentation schedule:// - Rajvi Chavada and Connor Dear - Syed Usman - Connor Ahearn and Jeremy Winkler - Damanveer Bharaj - Sara Attalla and Sean Doyle //Recording:// [[https://echo360.ca/media/692ad12f-94fb-4be5-bdc1-c0882d4ec4dc/public|recording]] ===== April 1 ===== Presentations - Gagen Benipal and Zaeem Israr - Kevin Banh and Andrew Maywapersaud - Anji Tong - Aya Abu Allan and Mark Savin - Dong Jae Lee - Bradley Booth and Akbar Khan //Recording:// [[https://echo360.ca/media/1dbeb010-2b93-4c0b-acdb-be8b58e50b5b/public|recording]] ===== April 3 ===== //Lab:// [[lab12|Lab 9]] ===== April 8 ===== [[final|Final exam]] at 7pm ===== April 20 ===== //Project:// [[project|final report and code]] ===== May 9 ===== **//Drop deadline:// last date to drop the course without receiving a grade for it.** [[https://secretariat.info.yorku.ca/covid-19-information-and-decisions-pertaining-to-academic-activities/|Updates from York University Senate]]