Commit ca1f822d authored by Damien Morard's avatar Damien Morard
Browse files

Update readme

parent 97bafb6c
# semantique_2019
# mantique 2019
https://gitlab.unige.ch/help/ssh/README#generating-a-new-ssh-key-pair
# Sémantique @ [University of Geneva](http://www.unige.ch)
Ce dépôt contient toutes les informations relatives au cours de sémantique.
**N'oubliez pas d'activer la cloche sur "surveiller (watch)" sur la page du [cours](https://gitlab.unige.ch/semantique/semantique_2019)**.
Vous serez ainsi tenu au courant dès qu'une modification sera appliquée au dépôt.
## Informations importantes et liens
* [Lien Gitlab: `https://gitlab.unige.ch/semantique/semantique_2019`](https://gitlab.unige.ch/semantique/semantique_2019)
* Les cours ont lieu le mardi de 10h00 à 12h00
* Les exercices ont lieu le lundi de 16h00 à 18h00
* Team: Prof. Didier Buchs, Damien Morard
* Utiliser les **issues** (tickets) de Gitlab pour communiquer ! Cela évitera d'avoir plusieurs fois la même question ! (Les issues sont sur votre barre des tâches tout à gauche)
* Pour toutes informations plus personnelles vous pouvez nous contacter par mail où directement venir à nos bureaux:
* `didier.buchs@unige.ch` (office 217)
* `damien.morard@unige.ch` (office 221)
## Environnement
Pour ce cours, il vous faudra **obligatoirement** les éléments suivants:
Nous avons pris soin de rendre les choses aussi simple que possible.
* [Gitlab](https://about.gitlab.com/): Une plate-forme pour avoir à disposition le code source, qui sera utilisé pour les exercices et les travaux pratiques. Vous devez vous connecter avec vos identitfiants unige.
* [MacOS High Sierra](https://www.apple.com/macos/high-sierra/)
ou [Ubuntu 18.04 LTS 64bits](https://www.ubuntu.com/download/desktop),
si besoin vous pouvez utiliser une machine virtuelle, comme par exemple [VirtualBox](http://virtualbox.org),
ou directement en dualboot.
* [Atom](https://atom.io): L'éditeur de texte que nous utiliserons pour écrire le code.
Vous devez:
* [Surveiller(Watch)](https://gitlab.unige.ch/semantique/semantique_2019) avec la petite cloche en haut à droite de la page pour être tenu au courant des modifications à propos du cours.
### Étapes à suivre attentivement
* Créer un nouveau projet privé(private repository) grâce au bouton **+** en haut à gauche de la barre de recherche. Cliquez pour créer un nouveau projet.
Vous devriez être sur "Blank project", pour le nom de votre projet **choisissez exactement** `semantique`.
Laissez en visibilité **privée** et **ne cochez pas** la case pour initialiser le projet avec un README.
* Setup un couple de clé (public/privé) pour votre compte gitlab. C'est pas compliqué et il vous suffit de suivre attentivement les étapes sur ce [lien](https://gitlab.unige.ch/help/ssh/README#generating-a-new-ssh-key-pair).
Pensez bien à aller jusqu'à la section **Adding an SSH key to your GitLab account**. Toute cette étape est primordiale vu que c'est ce qui vous permettra de mettre votre travail en ligne.
Si vous voulez faire des tests pour être sûr de comprendre comment ça fonctionne n'hésitez pas ! Par contre créez un autre dépôt pour l'occasion, sinon vous aurez des soucis de conflit avec les étapes qui suivront !
Si vous faites le test comme indiqué avec la commande `ssh -T git@gitlab.com` et que cela vous retourne une erreur ne vous inquiétez pas, vous aurez l'occasion de tester le fonctionnement juste après.
* [Clonez votre dépôt créer précédemment](https://docs.gitlab.com/ee/gitlab-basics/command-line-commands.html) en utilisant **SSH** et non **HTTPS**. Vous aurez sûrement un message par rapport à la clé que vous avez créé avant, vous aurez simplement à confirmer.
```sh
git clone git@gitlab.unige.ch:YOURUSERNAME/semantique.git
```
* Nous allons maintenant relier votre dépôt privé avec celui du cours, pour récupérer tout le contenu du dépôt dans votre dépôt !
```sh
git remote add course git@gitlab.unige.ch:semantique/semantique_2019.git
```
* Une fois que la connexion faite, il vous suffit d'utiliser la commande ci-dessous pour mettre à jour votre dépôt. Tout le contenu du dépôt du cours sera automatiquement téléchargé dans votre dépôt privé. La commande doit être utilisée à chaque fois qu'une modification est faite sur le dépôt principal.
```sh
git pull course master
```
* [Ajouter en collaborateur](https://docs.gitlab.com/ee/user/project/members/)
l'utilisateur: [`@Damien.Morard`](https://gitlab.unige.ch/Damien.Morard) (Damien Morard).
Sur votre barre tout à gauche: Paramètres -> Membres
Pensez bien à mettre l'utilisateur avec le rôle `Maintainer`.
* Commenter l'issue #1 avec votre *Prénom + Nom*, *Le lien de votre profil Gitlab*, *Le lien de votre dépôt privé*, *Votre adresse mail universitaire*
Votre réponse aura cette forme (avec vos informations à la place des miennes)
E.g.
Damien Morard, @Damien.Morard, [Dépôt de Damien](https://gitlab.unige.ch/Damien.Morard/semantique), damien.morard@unige.ch.
* [Installer Swift sur votre machine](https://swift.org/getting-started/#installing-swift)
* Linux: Suivre les instructions données dans le lien.
* MacOS: Installer XCode, lancez le et acceptez les conditions d'utilisations.
* Devenir familier avec Swift (Regardez les tutos ci-dessous)
* 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.
Les environnements installés contiennent:
* [Git](https://git-scm.com/docs/gittutorial):
l'outil pour la gestion de votre code;
* [Atom](https://atom.io):
l'éditeur que nous utiliserons.
Vous voudrez peut-être ajouter le package `language-swift`. (Peut-être aussi `autocomplete-swift`).
TODO: Suite à venir !
<!---
## Rules
* 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 test`
without warnings or errors.
## Homework
* All homeworks are located in the `homework/` directory.
* 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 build` to run it.
* For testing, we use [XCTest](https://developer.apple.com/documentation/xctest).
It is already installed in your environment,
and can run all the tests within the test folder files using: `swift test`.
### Homework Deadlines
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).
| No. | 1 | 2 | 3 | 4 | 5 | 6 |
| ---- | -------- | -------- | -------- | -------- | -------- | -------- |
| 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.
### Evaluation
* 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
### Getting Help
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:
1. Google is your friend. (response time < 1 sec.)
2. Read the manual. (response time < 1 min.)
3. Ask a friend/colleague. (response time < 30 mins.)
4. Stackoverflow. [Learn how](https://stackoverflow.com/help/how-to-ask) (response time < 12 hrs.)
5. Course assistants. (response time < 1 day.)
6. Professor. (response time ???)
### Homework #0 (unmarked)
**Deadline 27.9.2018**
Make your environment work!
Specifically:
* [ ] did you `watch` this repo
* [ ] 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? (`swift build`)
* [ ] did you check that you can test the swift package? (`swift test`)
* [ ] did you install a code editor? (i.e Atom)
* [ ] did you read the [Swift tutorial](https://kyouko-taiga.github.io/swift-thoughts/tutorial/)?
* [ ] did you reply to Issue [#1](https://github.com/cui-unige/modelisation-verification/issues/1) with your *full name*, *link to Github profile* (e.g. @stklik), *link to private repository*, *email address*
-->
<!--
### Homework #1
The source files are located within: `homework/hw1_petrinets/`.
You have to understand the provided code and fill in the missing code (marked with `TODO`).
Do **not** touch the existing code or tests,
but you can add your own tests **in a new file** within the `Tests` folder.
The deadline is 10 october 2017 at 23:59.
We will clone all your repositories using a script,
so make sure that @stklik and @damdamo have read access.
Evaluation will be:
* have you done anything at the deadline?
(yes: 1 point, no: 0 point)
* [ ] Done anything
* do you have understood and implemented all the required notions?
(all: 3 points, none: 0 point)
* [ ] Reachability graph
* [ ] Coverability graph
* do you have understood and implemented corners cases of all the required
notions?
(all: +2 points, none: 0 point)
* [ ] Reachability graph
* [ ] Coverability graph
* do you have correctly written and tested your code?
(no: -0.5 point for each)
* [ ] Coding standards
* [ ] Tests
* [ ] Code coverage
| Grade |
| ----- |
| |
-->
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment