This repository contains important information about this course. Do not forget to watch it as it will allow us to send notifications for events, such as new exercises, homework, slides or fixes.
Important Information and Links
- Page on GitHub:
- Courses are Thursday 14:00 - 16:00
- Exercises are Thursday 16:00 - 18:00
- Team: Prof. Didier Buchs, Stefan Klikovits, Damien Morard
- Use Github issues to communicate with us (public)
- For private matters send an email or come see us in our offices:
This course requires the following mandatory environment. We have taken great care to make it as simple as possible.
- GitHub: a source code hosting platform that we will for the exercises and homework. Create an account, and do not forget to fill your profile with your full name and your University email address. Ask GitHub for a Student Pack to obtain free private repositories.
- MacOS High Sierra or Ubuntu 18.04 LTS 64bits, if needed in a virtual machine, for instance using VirtualBox, or directly with a dual boot.
- Atom: a text editor, that we will use to type the sources.
You also have to:
Create a private repository named
modelisation-verification(exactly). It has to be empty (no README, no license).
git clone https://github.com/YOURUSERNAME/modelisation-verification.git
Add the course repository as a remote (to receive updates, TP material, etc).
git remote add course https://github.com/cui-unige/modelisation-verification.git
Comment on Issue #1 with your full name, link to Github profile, link to private repository, email address Your response will look like something like this (except you'll replace mine with your data):
Stefan Klikovits, @stklik, Stefan's Repository, email@example.com
- Linux: follow instructions in the document
- MacOS: Install XCode, launch it and accept the user agreement
Become familiar with Swift (see tutorial linked below)
- Official: https://swift.org/getting-started/
- Tutorial on Swift by Dimitri Racordon (@kyouko-taiga): https://kyouko-taiga.github.io/swift-thoughts/tutorial/
The supported OS versions are macOS 10.13 (High Sierra) and Ubuntu 18.04. You are highly encouraged to use either of those versions.
The environment you installed contains:
- Git: the tool for source code management;
the editor we will use.
You will want to add the
language-swiftpackage. (Perhaps also
Make sure that your repository is up-to-date by running frequently:
git pull course master
- You must do your homework in your private fork of the course repository.
- You must fill your full name in your GitHub profile.
- If for any reason you have trouble with the deadline, contact your teacher as soon as possible.
- The assistants must have access to your source code, but nobody else should have.
- Unless explicitly stated, the exercises are personal work. No collaboration, joint work or sharing of code will be tolerated. You can however discuss general approaches with your colleagues.
- Your source code (and tests) must pass all checks of
swift testwithout warnings or errors.
- All homeworks are located in the
- There will be a specific subfolder for each homework (e.g.
homework/hw1_petrinets). Use it. Do not rename the folder, place your solutions anywhere else, or do other things.
- do not rename any files, variables, functions, classes, ... unless you are instructed to do so!
- read the complete instructions before starting an assignment
- follow the instructions given to you in the assignments
- The swift compiler will warn you.
Make sure you don't see any warnings when you compile your code.
You can use
swift buildto run it.
- For testing, we use XCTest.
It is already installed in your environment,
and can run all the tests within the test folder files using:
You have until 23:59:59 on these dates to push your solutions to your (private) repository. Generally: No late submissions, no extensions, no exceptions, no dogs eating homework. If you are in an unfortuante circumstance where you do need an extension, tell us beforehand. (Sending an email two hours before the deadline is not beforehand).
|Date||10. Oct.||24. Oct.||7. Nov.||21. Nov.||5. Dec.||19. Dec.|
Mandatory Code Reviews
- Additionally to submitting homework, you will also be invited to mandatory code reviews.
- Every week a handful of students will be randomly selected to come to the assistants' office and explain their code and what they have done.
- The reviews will be about 5 to 10 minutes long and you are expected to confidently present your work.
- These talks will be graded and will be counted towards your grade of the practical work.
The grades of all six TPs + the average of your code review grades, devided by 7
Here is an example oft the calculation, assuming there are three code reviews (CR). Note that the number of actual CRs might differ in the end
TP1 TP2 TP3 TP4 TP5 TP6 CR1 CR2 CR3 4 5 4 5 6 5 6 4 5
Results in this grade:
Average of code reviews: (6 + 4 + 5) / 3 = 5
Final note = (4 + 5 + 4 + 5 + 6 + 5 + 5) / 7 = 4.85
You should be old and smart enough to find the solutions to most problems by yourself. I.e.:
If you encounter any problems, solve them!
In case there is a problem you cannot solve, here is the order of escalation:
- Google is your friend. (response time < 1 sec.)
- Read the manual. (response time < 1 min.)
- Ask a friend/colleague. (response time < 30 mins.)
- Stackoverflow. Learn how (response time < 12 hrs.)
- Course assistants. (response time < 1 day.)
- Professor. (response time ???)
Homework #0 (unmarked)
Make your environment work!
- did you
- did you create your own PRIVATE repo, set this repo as a remote (follow the description above)
- did you give @stklik and @damdamo as collaborators
- did you assert that you can pull from this repository and push into your private one (
git pull course master;git push)
- did you install swift?
- did you check if can you create a swift package? (
mkdir Hello;cd Hello;swift package init)
- did you check that your swift package compiles? (
- did you check that you can test the swift package? (
- did you install a code editor? (i.e Atom)
- did you read the Swift tutorial?
- did you reply to Issue #1 with your full name, link to Github profile (e.g. @stklik), link to private repository, email address