~~NOTOC~~ ====== Weekly Calendar ====== ===== January 4 ===== //Title:// Bugs are everywhere\\ //Reading material:// page 1-2, 4-6 of the textbook\\ //Slides:// {{:lecture1.pdf|lecture1.pdf}} ===== January 5 ===== //Title:// Testing on steroids\\ //Reading material:// [[http://junit.org/junit4/|JUnit website]]\\ //Slides:// {{:lab1.pdf|lab1.pdf}}\\ //Lab:// [[lab1|Lab 1]] ===== January 9 ===== //Title:// Testing on steriods\\ //Reading material:// [[http://junit.org/junit4/|JUnit website]]\\ //Slides:// {{:lecture2.pdf|lecture2.pdf}}\\ //Code:// {{:boolean.txt|Boolean.java}}, {{:booleantest.txt|BooleanTest.java}} ===== January 11 ===== //Title:// Space exploration\\ //Reading material:// page 3, 7-8, 11-16 of the textbook\\ //Slides:// {{:lecture3.pdf|lecture3.pdf}}\\ //Code:// {{:onechoice.txt|OneChoice.java}}, {{:twochoices.txt|TwoChoices.java}}, {{:manychoicesa.txt|ManyChoices.java}}, {{:manychoicesb.txt|ManyChoices.java}} ===== January 12 ===== //Quiz:// [[quiz1|Quiz 1]] ===== January 16 ===== //Title:// Check Models\\ //Reading material:// [[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}}\\ //Code:// {{:runtest.txt|RunTest.java}} ===== January 18 ===== //Title:// Mini Models\\ //Slides:// {{:lecture5.pdf|lecture5.pdf}}\\ //Code:// {{:nosomanychoices.txt|NoSoManyChoices.java}}, {{:choice.txt|Choice.java}} ===== January 19 ===== //Lab:// [[lab2|Lab 2]] ===== January 23 ===== //Title:// Mini Models\\ //Slides:// {{:lecture6.pdf|lecture6.pdf}}\\ //Code:// {{:traversal.txt|Traversal.java}} ===== January 25 ===== //Title:// Listen\\ //Reading material:// {{https://docs.oracle.com/javase/tutorial/uiswing/events/|The Java Tutorials: Wring Event Listeners}}\\ //Slides:// {{:lecture7.pdf|lecture7.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 26 ===== //Reading material:// Chapter 1 of {{:notes.pdf|notes.pdf}}\\ //Project:// [[project1|Part 1 of project (5%)]]\\ //Lab:// [[lab4|Lab 3]] ===== January 30 ===== //Title:// Listen\\ //Reading material:// Pages 39-43 of {{:notes.pdf|notes.pdf}}, [[http://wuyongzheng.github.io/jpfdoc/gov/nasa/jpf/listener/package-summary.html|JPF API]]\\ //Slides:// {{:lecture8.pdf|lecture8.pdf}}\\ //Code:// {{:garbage1.txt|Garbage.java (first version)}}, {{:garbage2.txt|Garbage.java (second version)}}, {{:example.txt|Example.java}}, {{:garbage3.txt|Garbage.jpf}} ===== February 1 ===== //Title:// Listen\\ //Reading material:// Pages 39-43 of {{:notes.pdf|notes.pdf}}, [[http://wuyongzheng.github.io/jpfdoc/gov/nasa/jpf/listener/package-summary.html|JPF API]]\\ //Slides:// {{:lecture9.pdf|lecture9.pdf}}\\ //Code:// {{:statespace1.txt|StateSpace.java (txt version)}},{{:statespace2.txt|StateSpace.java (dot version)}}, {{:statespace3.txt|StateSpace.java (dot version with colours)}}, {{:mnemonics.txt|Mnemonics.java}}, {{:profiler.txt|Profiler.java}} ===== February 2 ===== //Lab:// [[lab4a|Lab 4]] ===== February 6 ===== //Title:// Search\\ //Reading material:// Pages 47-52 of {{:notes.pdf|notes.pdf}}, [[http://wuyongzheng.github.io/jpfdoc/gov/nasa/jpf/listener/package-summary.html|JPF API]]\\ //Slides:// {{:lecture10.pdf|lecture10.pdf}}\\ //Code:// {{:dfsearch.txt|DFSearch.java}} ===== February 8 ===== //Title:// Search\\ //Reading material:// Pages 45 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture11.pdf|lecture11.pdf}}\\ //Code:// {{:bfs.txt|BFSearch.java}} ===== February 9 ===== [[quiz2|Quiz 2]] ===== February 13 ===== //Title:// Search\\ //Reading material:// Pages 45 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture12.pdf|lecture12.pdf}}\\ //Code:// {{:searchnotificationrecorder.txt|SearchNotificationRecorder.java}}, {{:generate.txt|Generate.java}}, {{:comparesearchrecordings.txt|CompareSearchRecordings}}, {{:test.txt|test.sh}} ===== February 15 ===== //Title:// Peers and Native Peers\\ //Reading material:// Pages 61-62 of {{:notes.pdf|notes.pdf}}\\ //Slides:// {{:lecture13.pdf|lecture13.pdf}}\\ //Code:// {{:sine.txt|Sine.java}}, {{:strictmath.txt|StrictMath.java}}, {{:jpfjavalangstrictmath.txt|JPF_java_lang-StrictMath.java}} ===== February 16 ===== //Lab:// [[lab7|Lab 5]] ===== February 20 ===== //Project:// [[project2|Part 2 of project (2%)]] ===== February 27 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{lecture14.pdf|lecture14.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)}} //Project:// [[project3|Part 3 of project (3%)]] ===== March 1 ===== [[midterm|Midterm]]\\ {{:answer.pdf|A solution}} ===== March 2 ===== //Lab:// [[lab8|Lab 6]] ===== March 6 ===== According to [[http://secretariat-policies.info.yorku.ca/policies/academic-implications-of-disruptions-or-cessations-of-university-business-due-to-labour-disputes-or-other-causes-senate-policy-on-the/|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: * they are unable to do so owing to a Disruption, or * they choose not to participate in academic activities owing to a strike or lock-out on campus 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:// [[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 8 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture16.pdf|lecture16.pdf}}\\ //Code:// {{:reader.txt|Reader.java}}, {{:writer.txt|Writer.java}}, {{:readersandwriters.txt|ReadersAndWriters.java}}, {{:database.txt|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. [[quiz3|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:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture17.pdf|lecture17.pdf}}\\ //Recording:// [[recording|here (login with EECS credential to access this material)]]\\ //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 15 ===== //Title:// Linear Temporal Logic\\ //Reading material:// pages 229-236 of the textbook\\ //Slides:// {{:lecture18.pdf|lecture18.pdf}}\\ //Recording:// [[recording|here (login with EECS credential to access this material)]] ===== March 16 ===== [[lab7|Lab 7]] ===== March 20 ===== Information about completion of courses and finalization of grades can be found [[http://secretariat.info.yorku.ca/senate/labour-disruption-2018-communications/|here]]. Additional information can be found [[http://labour.yorku.ca/faqs-for-students/|here]]. //Title:// Logics\\ //Reading material:// pages 252, 255-256, 313-327, 334-340 of the textbook\\ //Slides:// {{:lecture19.pdf|lecture19.pdf}}\\ //Recording:// [[recording|here (login with EECS credential to access this material)]] ===== March 22 ===== //Title:// Concurrency\\ //Reading material:// [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]], [[http://www.cse.yorku.ca/~qiyitang/assets/jpf-visual.pdf|JPF Visual]]\\ //Slides:// {{:lecture20.pdf|lecture20.pdf}}\\ //Handout:// {{:handout20.pdf|handout20.pdf}}\\ //Code:// {{:Pot.txt|Pot.java}}, {{:Cook.txt|Cook.java}}, {{:Savage.txt|Savage.java}}, {{:DiningSavages.txt|DiningSavages.java}}\\ //Recording:// [[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. [[quiz4|Quiz 4]] [[http://courseevaluations.yorku.ca|Course evaluation]] is available until April 6. ===== March 27 ===== //Title:// CTL model checking\\ //Reading material:// pages 341-351 of the textbook\\ //Slides:// {{:lecture21.pdf|lecture21.pdf}}\\ //Recording:// [[recording|here (login with EECS credential to access this material)]] ===== March 29 ===== //Title:// Concurrency\\ //Reading//: [[https://docs.oracle.com/javase/tutorial/essential/concurrency/|The Java Tutorials: Concurrency]]\\ //Slides:// {{:lecture22.pdf|lecture22.pdf}}\\ //Handout:// {{:handout22.pdf|handout22.pdf}}\\ //Code:// {{:account.txt|Account.java}}, {{:customer.txt|Customer.java}}, {{:customers.txt|Customers.java}}, {{:account1.txt|Account.java}}\\ //Recording:// [[recording|here (login with EECS credential to access this material)]]\\ ===== April 3 ===== //Title:// Software for Dependable Systems\\ //Reading material:// [[http://www.nap.edu/catalog/11923/software-for-dependable-systems-sufficient-evidence|Software for Dependable Systems: Sufficient Evidence?]]\\ //Slides:// {{:lecture23.pdf|lecture23.pdf}}\\ //Recording:// [[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 [[http://courseevaluations.yorku.ca|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|Final exam]]\\ {{final-solution.pdf|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|Project]] ===== May 15 ===== For those students who choose to participate, there are the following make up quizzes in LAS 1006: * [[quiz3|Quiz 3]]: 9:45-10:30 * [[quiz4|Quiz 4]]: 11:00-11:45 ===== 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.