course_outline
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
course_outline [2016/04/19 22:21] – jonathan | course_outline [2018/01/03 02:01] – jonathan | ||
---|---|---|---|
Line 2: | Line 2: | ||
The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed: | The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed: | ||
+ | |||
+ | ===== Introduction ===== | ||
+ | |||
+ | Use this small project to get started with Event-B and the Rodin tool | ||
+ | |||
+ | * {{: | ||
+ | * [[https:// | ||
+ | |||
+ | < | ||
+ | <iframe width=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div id=" | ||
+ | |||
+ | < | ||
+ | // 2. This code loads the IFrame Player API code asynchronously. | ||
+ | var tag = document.createElement(' | ||
+ | |||
+ | tag.src = " | ||
+ | var firstScriptTag = document.getElementsByTagName(' | ||
+ | firstScriptTag.parentNode.insertBefore(tag, | ||
+ | |||
+ | // 3. This function creates an < | ||
+ | // after the API code downloads. | ||
+ | var player; | ||
+ | function onYouTubeIframeAPIReady() { | ||
+ | player = new YT.Player(' | ||
+ | height: ' | ||
+ | width: ' | ||
+ | videoId: ' | ||
+ | events: { | ||
+ | ' | ||
+ | ' | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | // 4. The API will call this function when the video player is ready. | ||
+ | function onPlayerReady(event) { | ||
+ | event.target.playVideo(); | ||
+ | } | ||
+ | // 5. The API calls this function when the player' | ||
+ | // The function indicates that when playing a video (state=1), | ||
+ | // the player should play for six seconds and then stop. | ||
+ | var done = false; | ||
+ | function onPlayerStateChange(event) { | ||
+ | if (event.data == YT.PlayerState.PLAYING && !done) { | ||
+ | setTimeout(stopVideo, | ||
+ | done = true; | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | function stopVideo() { | ||
+ | player.stopVideo(); | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
===== Reactive systems: Bridge ===== | ===== Reactive systems: Bridge ===== | ||
Line 56: | Line 115: | ||
===== TLA+ Thinking for Programmers ===== | ===== TLA+ Thinking for Programmers ===== | ||
+ | |||
+ | [[http:// | ||
See slides 11: Thinking for Programmers. Leslie Lamport' | See slides 11: Thinking for Programmers. Leslie Lamport' | ||
Line 67: | Line 128: | ||
See slides 12. Method for systematic development correct-by-construction reactive systems. | See slides 12. Method for systematic development correct-by-construction reactive systems. | ||
+ | ===== Exam Preparation ===== | ||
+ | |||
+ | The following examples are unlikely to be on the exam. | ||
+ | |||
+ | Develop a phone book example by developing a mathematical model from informal E/ | ||
- | ===== Grades ===== | + | Develop an Event-B project for an EHealth medication system. |
- | | + | For the EHealth system the requirements were: |
- | * [15%] LabTest after reading week. | + | |
- | * [15%] Project (working in a team of no more than two students) | + | *E2: there exists pairs of drugs that when taken together have undesirable interactions |
- | * [40%] Final exam | + | *E3: Drug interaction |
+ | *R1: A doctor shall be capable of adding drugs to a patients’ prescription. | ||
+ | *R2: A doctor shall not prescribe | ||
+ | *Goal: minimize the number of undesirable interactions | ||
- | It is required that you attend and complete the work allocated in the weekly Lab session in preparation for the Quizzes, Labtest, Project and Exam. <hi> Labs must be completed by their due date in order for you to receive credit for the Quizzes</ |
course_outline.txt · Last modified: 2018/01/03 02:03 by jonathan