Wiki ~ namok.be

Labo

Remarques sur la version actuelle des TDs

TD9 - Les fonctions

  • Faire des exercices pour bien différencier les notions de fonction et méthode. –PiT
  • Bien entraîner au passage de paramètres –PiT

Planning

  • Bimestre 1 : TD1 à TD5 (2h chacun)
  • Bimestre 2 : TD6 à TD10 (3h chacun) + Interro1 (1h) + Interro2 (2h) + corrections (2h)

La matière Linux à voir

  • MCD : Afin d'éviter la course à la surenchère dans les TD, ce serait bien de décider de la matière importante Linux à voir et puis de la répartir dans les TD aux endroits les plus appropriés.

vi

  • déplacements :
    • G : pour venir au début du fichier
    • nG : pour se déplacer à la ligne n
    • $ : pour la fin de la ligne
  • mode insertion
    • entrer : i, a, A, o
    • sortir : ESC
  • copier/couper/coller
    • x : efface un caractère
    • nyy : coller n (défaut 1) lignes
    • ndd : couper n (défaut 1) lignes
    • p : coller
    • dw : pour couper le mot
  • modifications
    • rc : pour remplacer le caractère courant par c
    • cw : pour changer le mot courant
    • c$ : pour remplacer jusqu'à la fin de la ligne
    • J : joint 2 lignes
    • CTRL-n : compléter mot
    • u : annule la modification précédente
    • . : recommence la modification précédente
    • :%s/old/new/g remplace 'old' par 'new' partout
  • recherche
    • /chaine : recherche la chaîne
    • / : recherche l'occurrence suivante de la même chaine
  • lire/sauver/quitter
    • :w : sauve
    • :w f : sauve dans un fichier
    • :q : quitte (doit avoir été sauvé)
    • :q! : quitte sans sauver
    • :x : sauve et quitte
    • :r f : insère le contenu du fichier f
  • divers
    • gg=G pour réindenter un code
    • .vimrc

bash

  • touches spéciales
    • haut/bas pour se déplacer dans l'historique
    • TAB pour complèter une commande/un fichier
  • les redirections : <, >, », |
  • reg-ex : *, ? et [x-y]
  • historique : !commande
  • alias : lister/définir un alias
  • initialisation : .bashrc
  • variables : set, unset, export
  • variables à expliquer : PATH, CLASSPATH, PS1 (pour le fun)

Les bases du système

  • la notion de propriétaire et de groupe (chown / chgrp)
  • permissions : rwx (on fait l'impasse sur s et t?) (chmod numérique et avec symboles)
  • chemin absolu et relatif : /, ., .., ~, ~mcd
  • la notion de processus (ps, kill)

Commandes pas encore citées

  • ls (options -l -d -a)
  • touch, mkdir
  • rm (option -r), rmdir
  • cat, more
  • cp, mv
  • pwd
  • grep : utilisation basique
  • find : recherche à partir d'un bout du nom, d'une date de modif
  • which, whereis, who
  • MCD: Je n'ai pas mis 'sort', 'cut' et 'uniq'. Perso elles m'amusent et elles permettent de varier les questions de l'interro mais font-elles partie des commandes de base pour la première ? Sont-elles vues en deuxième ?
    • On peut envisager de ne pas les voir et de les utiliser aux interros (de manière “simple”). –Pbt

Plan des TDs de l'année prochaine

TD1 : Prise en main de l'environnement

  • MCD: Ce TD me paraît bien ainsi. On pourrait juste trouver un fichier plus marrant que le journal (peut-être une histoire dont il faut remettre les lignes dans l'ordre pour la comprendre)
  • Matière système :
    • Windows : connection, mot de passe, eDistri et site
    • Linux : putty, passwd, ls (pas d'option), mkdir, mv, cp, cat
    • vi : i, x, yy, dd, p, cw, :w, :w f, :q, :q!, :x

TD2 : Les bases de Linux

  • MCD: Le TD me parait bien ainsi. J'enlèverais juste la question en rapport au sticky bit
  • Matière système :
    • ls -a, ls -l
    • rm, rmdir
    • permissions, propriétaire, groupe
    • chemin relatif/absolu + un peu de reg-ex (*, ?; [a-z])
    • variable d'environnement : set, unset, export, PATH, PS1

TD3 : L'environement Java

  • Matière système :
    • compiler/exécuter un programme Java correct (pas de package)
    • se déplacer avec HAUT, BAS et TAB
    • which, whereis, who
  • Matière Java :
    • trouver/corriger des erreurs dans des programmes donnés
    • petite modification dans un programme donné
    • ecrire un programme (séquentiel) dont on donne la logique
    • modifier pour lecture des données au clavier

TD4 : Mes premiers programmes

  • Matière système :
    • vi: G, nG, $, dw, rc, c$, J, u
    • .vimrc
    • historique : !commande
  • Matière Java :
    • programmes séquentiels
    • mise en package
    • appel à une fonction prédéfinie (genre Math.power())
    • un exemple pour tester le try-catch

TD5 : Programmes plus élaborés

  • Matière système :
    • vi: Ctrl-n, gg=G; :r file
    • alias + .bashrc
  • Matière Java :
    • programmes avec if + if-else + switch
    • création d'une fonction simple (genre max)
    • mettre une fonction dans une classe à part
    • lancer une exception si paramètre invalide
    • Tester les pièges du if (;, pl instr, dangling) et du switch (pas de break)

TD6 : Mes premières classes

  • Matière système :
    • vi: /chaine, /, :%s
  • Matière Java :
    • classe de base : attribut, méthode, constructeur, getter, setter
    • un peu plus loin : toString(), equals()

TD7 : Je jongle avec les boucles

  • Matière système :
    • les redirections : <, >, |, »
    • more, ps, kill
  • Matière Java :
    • for, while, do-while (en faire bcp car c'est difficile pour eux)
    • tester le hasNext()

TD8 : Classes plus élaborées

  • Matière système :
    • grep et find
  • Matière Java :
    • Travailler le static
    • Un exercice plus complet avec des classes (mais sans tableau) : dé, …

TD9 : Les tableaux

  • Matière Java :
    • Les tableaux 1 dim et 2 dim
    • Les arguments du main

TD10 : Exercice de synthèse

  • Matière Java :
    • Faire un gros exercice récapitulatif comme d'habitude