anchor.diff:  * http://math.hws.edu/eck/cs124/javanotes7/c4/quiz.html[EQ4]
   
   [[S3]]
  -=== S3 (Thursday 22nd of February, 2018)
  +=== S3
   *Lecture*
   
   * Git, remote
  
positive.code: .. When creating your repository, check the box “Initialize this repository with a README” (the goal is simply to make your repository non-empty)
  .. You can use the `Upload files` button or directly drag and drop your Java files on your resulting repository
  .. Keep the default option: “Commit directly to the `master` branch”, click `Commit changes`.
  * Indicate your GitHub username on https://mycourse.dauphine.fr/webapps/blackboard/execute/launcher?type=Course&id=_38274_1[MyCourse].
  
  [[S2]]
  === S2 (Tuesday 20th of February, 2018)
  
  *Lecture*
  
  * Marks; two methods for EE36
  * https://github.com/oliviercailloux/java-course/tree/master/Git[Git]: local repo, start ex
  * Two major principles of software engineering: https://raw.githubusercontent.com/oliviercailloux/java-course/master/Contrat/presentation.pdf[contract] and fail-fast.
  * Mechanisms: interface; black box; preconditions and postconditions; javadoc; exceptions
  
  *Material and going beyond*
  
negative.code: 
  * Your GitHub username and git “User Name” must be identical.
  
  === Homeworks from the book
  * Cliquez sur le lien indiqué sur le devoir pour que GitHub classroom vous crée un dépôt privé où soumettre votre devoir.
  * Si vous voulez recommencer, effacez le dépôt créé pour le devoir et recommencez avec un nouveau dépôt.
  * All mandatory (suffixed with [M]) book exercices (prefixed with EE) must be in that repository (in the branch `master`), the day before the lecture, 23:59 + 1min (e.g., lecture on Thursday 23rd means a deadline on the end of Wednesday 22nd).
  * Your mark will be either 1 (exercices are done on time, even imperfectly, committed under your name, instructions are followed) or 0. This counts for 20% of the CC grade.
  
  === Devoirs hors livre
  * Conseil : rendez 24h à l’avance pour être sûr. −3/20 par heure de retard (heure déterminée par la dernière activité sur le dépôt GitHub qui vous est attribué pour le devoir).
  * Vous pouvez utiliser le `groupId` `io.github.<yourgithubusername>`.
  * Vous pouvez échanger des pistes de solutions entre vous, mais pas travailler ensemble sur le code : je vous demande un rendu individuel. Vous ne pouvez pas rendre un code identique ou ressemblant fortement à celui d’un autre étudiant.
  
  === Projets
  * https://github.com/oliviercailloux/projets/tree/master/SE[Énoncés]
  * Attendu : cahiers des charges pour deux ou trois itérations courtes indiquant succinctement les exigences fonctionnelles (EF) ; 3 points de difficulté par membre au total sur l’année.
  * Vous devez utiliser autant que possible les spécifications Java EE 8 dans votre projet (par exemple, les API de manipulation de JSON indiquées dans ce cours et pas d’autres ; le standard JPA et pas un autre)
  * Vous créez un dépôt pour votre projet (un https://help.github.com/articles/fork-a-repo/[fork] si vous repartez d’un existant) et travaillez tous sur votre dépôt de groupe. Interdiction de commettre sur votre branche master sans mon aval (sauf commit initial si nécessaire ou modifications sur `README.adoc`). À part ça, organisation interne libre. Suggestion : fusionnez vos fcts sur une branche `dev` dès que possible (https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue[intégration continue]) ; à défaut, commit sur branches par fct et désigner un responsable fusion pour éviter écrasement.
  * M’ajouter comme collaborateur à votre projet pour pouvoir m’indiquer comme https://help.github.com/articles/about-pull-request-reviews/[Reviewer].
  * Créez une pull request GitHub par EF et https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/[affectez-y] la  ou les deux personnes responsables.
  * Les remises se font via pull request vers votre branche master. Créez une pull request pour remettre (ou modifier) votre cahier des charges, et une pull request par EF. Pour ce faire, créer une branche ad-hoc avec cette EF, le pull request fusionne la branche vers master. N’oubliez pas de m’ajouter comme Reviewer pour que je sois averti. Je commente votre pull request. Dates de livraison précisées dans le programme ci-dessous. https://www.wolframalpha.com/input/?i=Plot%5BPiecewise%5B%7B%7B-1%2F2*x,x%3C+2%7D,%7B-2%2F22*(x-2)-1,+2%3C%3D+x+%3C+24%7D,%7B-1%2F24*x-2,+24%3C%3D+x%7D%7D%5D,+%7Bx,+0,+72%7D%5D[Non respect] des dates : −0,5/20 pour 2h de retard, −3 pour 24h de retard puis −1 par jour supplémentaire.
  * Comptez 48h de délai pour que je vous réponde. Au-delà de 48h, envoyez-moi un e-mail de rappel.
  * Pull request (pour chaque fonction) à faire quand vous êtes sûr de vous (mais à temps). Plus je dois commenter, et plus il y a de pull requests avant acceptation du code, plus vous perdez de points (à fonctions égale), en tous cas si ce sont des erreurs que vous auriez pu éviter en soignant mieux votre code et en écoutant le cours. (Ne concerne pas l’aide apportée au cours ou par e-mail.)
  * Si vous souhaitez que je voie vos éventuelles réponses à mes commentaires ou si vous souhaitez une nouvelle review, il faut commenter en me https://github.blog/2011-03-23-mention-somebody-they-re-notified/[@mentionnant] (`@oliviercailloux`).
  * L’auteur reçoit une note qualité et un nombre de points de difficultés lorsque la fonction est acceptée (code fusionné dans master). Voir https://github.com/oliviercailloux/java-course/tree/master/Best%20practices[Bonnes pratiques] et https://github.com/oliviercailloux/java-course/blob/master/Divers/Corr.adoc[Corr]. Une fois la note attribuée, la personne responsable de l’issue ne peut plus être changée.
  * Note finale projet : moyenne des notes pour vos fonctions, pondérée par points de difficulté (meilleures notes sont considérées si plus de points de difficulté que requis) et note pour présentation finale. Ajustement possible pour tenir compte des difficultés et de la cohérence globales. (Note finale : 50% Projet, 50% CC.)
  * Conseil : travaillez ensemble et variez les binômes pour faire tourner les connaissances et varier les plaisirs.
  * Descriptions are https://github.com/oliviercailloux/projets/tree/master/SE[here].
  * You should each total 6 points of difficulty (the target difficulty) by the end of the year (6 hours work per project inter-session, 9 project inter-sessions, 9 hours per point of difficulty).
  * You will receive a Regularity grade at the end of the year, taking into account your total difficulty achieved (the grade adjusts approximately linearly), with a bonus if the work density leans towards the early sessions (reduced penalty) and a malus if it leans towards the late sessions (for about three points). The “middle” date is the midpoint between 10th of April and last session.
  * You will receive a Quality grade at the end of the year: a sum, weighted by achieved difficulty, of your quality marks obtained during the year, considering only the best grades if you go beyond 6 points of difficulty.
  * Your CC-Project grade is the minimum of the Regularity grade and the Quality grade.
  * The final grade is a mix of 50% CC grade, 50% (final) Project grade.
  
  Don’t hesitate to send me your question by e-mail if you’re blocked in your project, instead of wasting hours. However, I do expect that you make some research before you ask, and that your question be clear. See these https://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/[guidelines].
  
  == Take notes
  * 5 ways of taking notes https://www.youtube.com/watch?v=AffuwyJZTQQ[video]
  