====== 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**. --[[:pierrebettens|PiT]] * Bien entraîner au passage de paramètres --[[:pierrebettens|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