Série 1:
Installation

Buts

Le but de cette série d'exercices est de mettre en place votre environnement de travail pour ce cours que vous travailliez sur les machines de l'EPFL ou les votres. Les machines de l'EPFL vous permettront de vous familiariser avec le monde Unix si vous le souhaitez (Linux Ubuntu, 22.04), mais cela n'est pas une obligation pour ce cours. Certains exercices ne peuvent être faits que sur les machines de l'EPFL auxquelles vous pouvez d'ailleurs vous connecter à distance (des explications seront fournies). Vous serez aussi sans doute familier avec certaines manipulations, ce qui allégera d'autant la série. Profitez du temps qu'il vous reste pour explorer les ressources du site du cours (lecture des mini-références associées, familiarisation avec quelques éditeurs etc... ).


Exercice 1: MOOC (cours en ligne) (MOOC, Niveau 0)

Pour pouvoir bénéficier des vidéos, quizzes et devoirs des MOOCs associés au cours, il faut vous inscrire aux adresses suivantes:

  1. https://www.coursera.org/learn/initiation-programmation-java : "Initiation à la programmation (Java)".
  2. https://www.coursera.org/learn/programmation-orientee-objet-java/ : "Introduction à la programmation orientée-objets (Java)" (qui ne sera abordé en cours que depuis fin Octobre, mais vous pouvez déjà vous inscrire).


Exercice 2: Installations diverses (Environnement, Niveau 0)

Pour travailler pour ce cours, vous aurez pour l'essentiel besoin d'un compilateur Java et d'un environnement de développement intégré (EDI), comme IntelliJ ou Eclipse (un simple éditeur de texte peut remplacer l'EDI dans un premier temps). Il est conseillé d'utiliser votre propre machine et y installer le matériel nécessaire. Si vous n'avez pas de machine, vous pouvez utiliser les machines à dispositions sur le campus (notamment la salle INF3 pendant les TPs). Ces machines mettent à votre disposition le compilateur Java, divers éditeurs et les EDI IntelliJ et Eclipse. Vous ne pouvez évidemment pas y installer du matériel par vous même.

Pour travailler avec votre propre machine, vous aurez donc besoin d'installer un compilateur Java et un environnement de développement intégré.

Si vous êtes déjà familier avec tout cela et que vous avez déjà fait vos choix quant aux éditeurs/EDI, libre à vous de continuer ainsi. Pour ce cours d'introduction, la version 17 de Java est cependant suggérée : il s'agit d'une «LTS» (version stable à plus long terme). Si vous avez déjà installé une version ultérieure (17+), cela ne pose aucun problème de continuer avec (il n'est pas nécessaire de retrograder à Java 17). Une nouvelle «LTS» devrait être disponible incessamment (Java 21) et vous pourrez sans souci l'installer en adaptant un peu les suggestions des tutoriels fournis plus bas (plusieurs versions de Java peuvent cohabiter sur votre machine).

IntelliJ est l'outil de développement recommandé ce semestre. Vous pouvez utiliser d'autres environnements de développement, selon vos choix personnels. Il n'est alors cependant pas garanti que les assistants pourront vous aider facilement. À noter que IntelliJ est aussi l'environnement préconisé par votre enseignant du second semestre.

Pour installer ce matériel sur votre machine (Java 17 et IntelliJ/ou éventuellement Eclipse), il vous suffira de suivre les consignes d'installation données dans la première semaine du MOOC à savoir:

À noter que la variante de Java choisie est celle de OpenJDK (notamment celle de Adoptium), préférée à la variante de Oracle, pour sa gratuité et le fait qu'elle soit «open-source».

Les assistants sont à votre disposition pour vous aider dans les procédures d'installation.

Travailler avec une machine sous Linux

Si vous travaillez sur votre propre machine et que vous n'êtes pas sous Linux, il demeure intéressant de vous familisariser un peu avec ce type de systèmes d'exploitation. Vous avez alors pour cela les options décrites ci-dessous.

L'option 1 ci-dessous, ou simplement venir tester de temps en temps sur les machines physiques de l'EPFL est largement suffisant.
Notez enfin que les Mac sont des machines de type Unix et qu'il n'est pas nécessaire de faires des installations en plus pour expérimenter l'usage du terminal.


Exercice 3: Pré-requis (Environnement, Niveau 0)

[ Pour plus de détails, voir le site http://studying.epfl.ch/bienvenueBachelor (en bas) ainsi que le https://studying.epfl.ch/].

Pré-requis :

  1. Avoir son mot de passe Gaspar ;

  2. Disposer d'une adresse e-mail à l'EPFL.

Ces prérequis sont remplis dès votre inscription à l'École, et vous devriez normalement pouvoir passer directement à l'exercice suivant. En effet, en tant qu'étudiant inscrit à l'EPFL, vous avez dû recevoir document/email contenant : votre adresse e-mail EPFL, un username et un mot de passe. C'est de cela dont il s'agit ici.

Si ce n'est pas le cas, un support est assuré par le «Help-desk» (MA A0 388, téléphone interne : 1234, email : 1234@epfl.ch) pour les problèmes techniques, par exemple liés au login et à GASPAR, ou sinon par le guichet des étudiants pour tous les problèmes administratifs ou d'inscription.

A propos de GASPAR:

Pour rappel, le portail GASPAR sert à gérer les accès aux ressources sécurisées du Service Informatique Central. C'est le coffre fort pour vos données d'authentification. Vous pouvez par exemple y modifier votre mot de passe.

Vos identifiants GASPAR vous permettront de vous connecter aux machines de l'EPFL. Si vous travaillez sur vos propres machines, ils vous seront aussi utiles pour accéder à votre espace de stockage si vous le souhaitez. Vous disposez en tant qu'étudiant d'un espace de stockage pour vos fichiers (voir mynas.epfl.ch).



Exercice 4: Se connecter (ou "login") (Environnement, Niveau 0)

Cet exercice n'est pertinent que si vous vous connectez à une machine de l'EPFL.

Pour vous connecter sur les machines de l'EPFL (soit directement, soit à distance, tapez votre nom d'utilisateur (username) puis tapez sur la touche Return et attendez que le système vous demande votre mot de passe (password).

Remarques:

Vous arrivez ensuite sur un écran intermédiaire (écran bleu) ou vous devez choisir une «machine virtuelle»
Pour ce cours, il faut choisir la machine IC-CO-IN-SC-MA-2023-Fall ou IC-CO-IN-SC-INJ-2023-Fall .

IMPORTANT : ne tapez pas une seconde fois le mot de passe lors de la seconde fenêtre de login, mais attendez (même si c'est un peu long au début), laissez faire la machine. En clair :
ne saisissez qu'UNE SEULE FOIS votre mot de passe !
Attention aussi au fait que les machines sont initiallement en Qwertz (CH) par défault. Ceci peut rendre difficile l'entrée du mot de passe si vous avez l'habitude d'autres types de claviers (essayez en cas de difficulté un copier-coller depuis une saisie «en clair»).

Si tout s'est bien passé, après quelques instants un écran qui ressemble à celui de la figure ci-dessous va apparaître. Sinon recommencez... Au bout de trois échecs, appelez un assistant.

Cette opération en deux étapes est nécessaire car l'architecture est «un peu plus compliquée» que votre ordinateur personnel habituel : vous êtes en effet connecté sur des clients qui s'adressent à un serveur «chef d'orchestre» («load balancer») qui demande à un autre serveur de calcul de vous créer (et ouvrir) une «machine virtuelle». C'est cette machine virtuelle que vous voyez finalement sur votre écran. Pour résumer :

C'est pour cela que vous avez un login en deux étapes : une première pour accéder au «chef d'orchestre», et une seconde sur la machine virtuelle. Normalement, ce second login consiste à ne rien faire, le «chef d'orchestre» ayant passé vos paramètres à la machine virtuelle.

Comment lancer une application

Notez que dans l'environnement des salles de TP, tout programme utilitaire peut être lancé en cliquant sur Activities en haut à gauche de l'écran :
Une invite de commande s'affiche alors dans laquelle il suffit de taper quelques lettres figurant dans le nom du programme à lancer. Cliquer ensuite sur l'icône correspondant au programme souhaité permettra de le lancer. Vous pouvez également cliquer sur le «menu des applications» (en pointillés) en bas à gauche. Vous verrez alors apparaître des icônes correspondant aux applications installées (les 3 petits cercles au milieu du bandeau latéral droit permettent de naviguer sur plusieurs pages). Il vous suffit alors de cliquer sur l'icône correspondant au programme voulu:

Vous pouvez aussi faire une recherche en tapant quelques lettres du nom de l'application dans l'invite de commande. Notez qu'il existe encore d'autres façons de lancer les programmes, comme expliqué dans ce qui suit.




Exercice 5: Ouvrir un "terminal" (Environnement, Niveau 0)

Cet exercice est pertinent si vous êtes connecté à une machine de l'EPFL, directement ou à distance, ou sur une machine/VM Linux Ubuntu.
Un «terminal» est une fenêtre qui vous permet de donner directement des commandes au système. Pour en ouvrir un (remarquez qu'on peut avoir plusieurs terminaux ouverts à la fois), utilisez les menus et sélections suivants :

Un «terminal» doit s'ouvrir. Cliquez dessus/dedans pour l'activer et taper la commande

ls

qui liste le contenu du répertoire courant (voir cours).

Gardez ce terminal en réserve pour l'exercice sur les commandes UNIX (un peu plus loin dans la série).


Exercice 6: Utiliser Firefox (Environnement, Niveau 0)

Cet exercice est pertinent si vous êtes connecté à une machine de l'EPFL, directement ou à distance, ou si vous utilisez une machine sur laquelle vous avez installé ce navigateur (dans ce dernier cas les modalités d'accès par menu dépendront du système d'exploitation).

Pour le lancer le navigateur Firefox, vous avez plusieurs options :

Une fois Firefox lancé, il vous suffit de taper l'URL (adresse à laquelle vous voulez vous connecter) dans le champ prévu à cet effet :


Allez par exemple consulter la page Moodle du cours à l'adresse : https://moodle.epfl.ch/course/view.php?id=14847

Cette page étant relativement importante, on peut vouloir la garder (pour ne pas avoir à retaper à chaque fois son adresse) dans ses bookmarks («signets» en français) :

Pour continuer la série, allez en chercher la suite à partir de cette page !



Exercice 7: Forums (Environnement, Niveau 0)

Toutes les annonces importantes du cours se font par le biais du forum «Annonces du cours» de la page Moodle du cours. Vous recevrez automatiquement une copie de ces messages par email. Il est impératif de consulter régulièrement ces annonces afin de ne pas passer à côté de consignes importantes.

Par ailleurs, le forum de discussion du cours est accessible depuis la page Moodle du cours sous le lien « Fora ». C'est un outil très important pour ce cours. Il vous permet de poser toute question sur le cours, les exercices et mini-projets, en tout temps. Prenez dès le début l'habitude de le consulter régulièrement. Nous y assurons une présence régulière et attentive.

Accédez maintenant au forum de discussion du cours et lisez le message de bienvenue qui y est posté. Ce n'est pas nécessaire d'y répondre : inutile de poster d'emblée 400 messages sans réelle substance sur le forum ;-)
Par contre tout commentaire constructif ou toute question est déjà le/la bienvenu(e) !

N'hésitez pas à utiliser cet outil à bon escient : poster tous les messages qui vous semblent pertinents (questions, commentaires, ...) en relation avec le cours, les exercices, les mini-projets etc.

IMPORTANT:

Ce forum de discussion peut générer un traffic élevé. Afin de ne pas être noyé.e par l'envoi de trop nombreux emails (à chaque fois qu'un.e de vos collègues poste une question!), il est très important de le configurer de sorte à désactiver la réception automatique d'emails. Pour cela 



Exercice 8: Utilisation du gestionnaire de fichiers (Environnement, Niveau 0)

Cet exercice est pertinent si vous êtes connecté à une machine de l'EPFL, directement ou à distance, ou sur une VM Linux Ubuntu. Sur les autres systèmes d'exploitation, des manipulations similaires existent.

Nous allons voir ici comment naviguer dans ses fichiers avec une interface graphique :

Sous Unix/Linux, lorsque vous vous connectez sur votre compte, vous arrivez dans votre répertoire d'accueil, c'est à dire l'endroit de l'arborescence Linux qui vous appartient. Ce répertoire est /home/nom_utilisateur/. Il devient votre répertoire courant, c'est-à-dire le répertoire utilisé par défaut par les commandes Linux.

Pour ouvrir le gestionnaire de fichiers (à ce niveau de l'arborescence), sélectionnez l'icône "Home Folder" dans le bandeau latéral gauche :

Vous verrez alors s'afficher une fenêtre telle que celle-ci :

En vous rendant dans le répertoire Desktop, vous trouverez un dossier myfiles qui est extrêmement important.

Quelques explications  :

A l'EPFL, toutes les données liées aux utilisateurs sont sur un serveur central, le service myNAS (http://mynas.epfl.ch). C'est un service offert à tous les étudiants et collaborateurs de l'EPFL. Sauf erreur, le quota y est de 5 Go pour les étudiants. Ce répertoire est global à toute l'Ecole et suivra l'étudiant tout au long de ses études. Il est le même sous Windows, Mac et Linux dans les différentes salles de l'École.

Important :

Pour ceux d'entre vous qui sont un peu plus avancés: cela signifie aussi que les fichiers de configuration et de préférence situés directement dans le répertoire principal («Home Directory») sont perdus à chaque déconnexion. Il faut, pour le moment, veiller à les archiver soi-même dans myfiles (et les restaurer au bon endroit).

Revenons maintenant à la fenêtre que nous venons d'ouvrir. Vous pouvez entre autres :

  • Copier des fichiers ou des répertoires.
  • .

    Application : Mise en place d'une architecture de travail

    Vous allez maintenant créer une architecture de travail utile pour le reste de ce cours de programmation. Faîtes-le avec le gestionnaire de fichiers.

    Dans votre répertoire myfiles, créez le répertoire java.

    Dans ce répertoire myfiles/java, créez les sous-répertoires cours01, cours02, cours03, etc. où vous pourrez classer, par exemple, vos notes personnelles sur chaque cours.

    Note : Vous pourriez bien sûr le faire avec l'interpréteur de commande (i.e. dans un «terminal»), mais ceci est l'objectif d'un prochain exercice.


    Exercice 9: Courrier électronique (Email) (Environnement, Niveau 0)

    Vous disposez d'un compte mail EPFL. Pour y accéder, vous devez répondre au pré-requis mentionnés ci-dessus.

    Voir alors la page d'accès à votre courrier électronique.

    Pour lire votre email dans les salles CO, BC ou INF3, vous pouvez soit passer par l' interface Web précédente, soit par un outil spécifique comme par exemple «Thunderbird» ou «Evolution» (configuration : mot de passe GASPAR ; entrant : IMAP SSL/TLS sur imap.epfl.ch, port 993 ; sortant : STARTTLS sur mail.epfl.ch, port 587). Voir ceci à ce propos.

    En guise de test, essayez de vous envoyer un mail à vous-même.



    Exercice 10: Visualiser et imprimer des documents (Environnement, Niveau 0)

    Cet exercice est pertinent si vous êtes connecté à une machine de l'EPFL, directement ou à distance.

    Visualisation des documents

    Pour visualiser un document au format PDF, vous pouvez utiliser Document viewwe (evince).

    Depuis votre navigateur Internet (firefox), il suffit de cliquer sur le lien vers un tel document. Un « plug-in» se charge d'effectuer la visualisation.

    Depuis la ligne de commande, on lance Document viewwe ainsi :

    evince [document]

    document est un paramètre optionnel, spécifiant un chemin vers un document pdf ; par exemple :

    evince ~/Desktop/myfiles/exemple.pdf &

    voire carrément une URL (adresse Internet) :

    evince  https://proginsc.epfl.ch/wwwhiver/documents/IP-en-bref.pdf &

    Impression des documents

    Pour imprimer un document autre que PDF, vous devez au préalable le rapatrier sur votre système (pour les PDF votre navigateur le fera pour vous). Lorsqu'il s'agit de document que vous ne voulez pas conserver, utiliser le répertoire /tmp pour les stocker temporairement, ce qui permettra d'économiser votre quota disque.
    (Pensez tout de même à le nettoyer quand vous avez fini !)

    Pour imprimer un fichier PDF utiliser le bouton d'impression dans Document Viewer (File > print ou Ctrl-P). De même pour imprimer une page Web, utilisez le bouton d'impression du navigateur (Firefox).

    Pour plus de détails voir le site myprint.



    Exercice 11: Utilisation d'un éditeur (Environnement, Niveau 0)

    Nous utiliserons IntelliJ (ou Eclipse) pour programmer nos applications Java. Il n'est cependant pas indispensable de posséder cet outil pour coder et exécuter un programme Java (surtout lorsque l'on débute).
    On peut à défaut, utiliser un simple éditeur de texte afin de saisir nos programmes et les stocker dans des fichiers. Il faudra alors invoquer le compilateur (en ligne de commande par exemple) sur ces fichiers pour les compiler et produire des exécutables. Des indications vous seront fournies dans la série de la semaine prochaine si vous vous intéressez à cette approche.

    Un éditeur peut aussi être utile bien sûr pour créer n'importe quel fichier contenant du texte (des notes personnelles, des guides d'utilisation de programmes etc.)

    Plusieurs éditeurs sont à votre disposition sur les machines de l'EPFL  : Emacs, Geany, Sublime Text, gedit, ...

    Si vous avez votre propre machine, libre à vous d'installer l'éditeur de votre choix.

    Sur une machine de l'EPFL (ou une machine Linux), pour lancer l'un ou l'autre de ces éditeurs, il suffit de taper son nom dans un terminal suivi du symbole &. Par exemple :

    Note : le caractère '&' permet au terminal de «reprendre la main» (c'est-à-dire rester actif) sans attendre que l'on ait quitté l'éditeur. On dit que l'éditeur tourne en tâche de fond.

    Pour lancer l'un ou l'autre de ces éditeurs, il suffit de taper son nom dans une invite de commande:



    ou plus généralement en tapant «text editor»  :

    Les commandes essentielles de Emacs et de Geany sont présentées dans la mini-référence.

    Copiez dans le répertoire ~/Desktop/myfiles/java/cours01 que vous avez créé précédemment les fichiers poeme1.txt et poeme2.txt fournis.

    Lancez Emacs et ouvrez ces fichiers (vous pouvez les ouvrir dans deux fenêtres différentes, ou dans la même fenêtre). Exercez-vous à éditer ces fichiers de différentes manières, par exemple en recherchant une chaîne de caractères quelconque et en la remplaçant par une autre (essayez par exemple de supprimer tous les accents du texte, ou de sauvegarder un nouveau fichier qui contienne les textes des deux fichiers). Nous vous conseillons également de suivre le didacticiel de Emacs, en le lançant avec la commande C-h t (ce qui veut dire presser la touche Control en même temps que la touche h, puis la touche t mais sans la touche Control cette fois).

    Fermez Emacs et essayez ensuite de faire le même genre de manipulatons avec Geany.

    Ceci vous permettra de vous faire une première idée sur ces deux différents éditeurs. Vous pourrez utiliser indifféremment l'un ou l'autre.

    Note : Il est important de ne pas ouvrir plusieurs fois le même fichier (via différents éditeurs par exemple). La cohérence du fichier modifié par l'un ou l'autre des éditeurs n'est alors plus garantie !

    Souvenez-vous aussi si vous travaillez sur une mmachine de l'EPFL que :

    les fichiers créés sur le disque local de la machine virtuelles (i.e. hors myfiles) sont effacés (= perdus !) en fin de connexion. Il est donc impératif que vous stockiez sous myfiles tous les fichiers que vous souhaitez conserver.
    Si vous voulez aller plus loin, vous pouvez étudier le volet "éditeurs" de la mini-référence sur les commandes unix et l'environnement de travail.



    Exercice 12: Tutorial IntelliJ 1: Créer un projet (IntelliJ, Niveau 0)

    Pour écrire un programme Java, l'environnement de développement de ce langage (Java Development Kit (JDK)) vous sera nécessaire. Cet environnement, dans sa version OpenJDK, est gratuit et contient un certain nombre de commandes de base que vous pouvez lancer dans un terminal: par exemple javac, permettant de compiler un programme, et java, de l'exécuter.
    Travailler avec des lignes de commandes peut cependant être relativement inconfortable et difficile pour des débutants. Nous avons donc choisi de vous faire utiliser ce que l'on appelle un environnement de développement intégré (EDI) ou Integrated Development Environment (IDE) en anglais. Il s'agit en l'occurence de IntelliJ.

    IntelliJ est une couche au dessus du Java Development Kit qui simplifie l'édition, la compilation et l'exécution d'applications Java.

    IntelliJ : Configuration de base

    Lancez maintenant IntelliJ. Vous pouvez pour cela :

    Revoyez les tutoriels d'installation de l'exercice 2 pour voir précisément comment lancer ce programme sur votre propre machine.

    Commencez par créer un/des répertoire/s pour stocker le code lié à vos séries, par exemple CS107/series/. Nous supposerons qu'à l'avenir toutes vos séries seront contenues dans ce répetoire (mais libre à vous de structurer les choses comme bon vous semble).

    Dans ce cours, nous utiliserons un projet par série d'exercices. La création d'un projet doit être répétée au début de chaque série (Attention! pas chaque exercice). Le fait d'associer chaque série à un projet IntelliJ particulier permet d'éviter d'éventuels conflits de noms (cas où deux classes différentes porteraient le même nom dans différentes séries).

    Commencez par créer un/des répertoire/s pour stocker le code lié à vos séries, par exemple CS107/series/.

    Pour créer un projet, cliquez sur New Project dans le menu principal:

    Si vous aviez d'autres projets ouverts, vous pouvez tout simplement invoque File -> New -> Project via les boutons de l'interface.

    Vous devez ensuite introduire le nom de votre projet. Cette fois, tapez Serie1, la semaine prochaine vous mettrez Serie2 etc.

    Vérifiez que vous avez bien sélectionner la version 17 de Java et cliquez sur Create .

    IMPORTANT



    Exercice 13: Tutorial Eclipse 1 (inutile si vous travaillez avec IntelliJ) : Configuration de base (Eclipse, Niveau 0)

    Le cours recommande cette année de travailler avec IntelliJ. Si vous n'avez pas accès à une machine personnelle, vous pouvez utiliser Eclipse sur les machines de l'EPFL.
    Pour écrire un programme Java, l'environnement de développement de ce langage (Java Development Kit (JDK)) vous sera nécessaire. Cet environnement, dans sa version OpenJDK, est gratuit et contient un certain nombre de commandes de base que vous pouvez lancer dans un terminal: par exemple javac, permettant de compiler un programme, et java, de l'exécuter.
    Travailler avec des lignes de commandes peut cependant être relativement inconfortable et difficile pour des débutants. Nous avons donc choisi de vous faire utiliser ce que l'on appelle un environnement de développement intégré (EDI) ou Integrated Development Environment (IDE) en anglais. Il s'agit en l'occurence de Eclipse.

    Eclipse est une couche au dessus du Java Development Kit qui simplifie l'édition, la compilation et l'exécution d'applications Java.

    Les logiciels JDK et Eclipse sont installés sur les machines des salles de TP.

    Eclipse : Configuration de base

    Lancez maintenant Eclipse. Vous pouvez pour cela :

    Une boîte de dialogue comme celle de la figure ci-dessous va apparaître vous demandant quel est le répertoire associé à votre espace de travail (workspace). Nous expliquerons plus tard ce qu'est un workspace. Si vous travaillez sur les machines de l'EPFL, mettez impérativement le chemin suggéré par la figure ci-dessous (où "sam" aura été remplacé par votre propre nom d'utilisateur et où "myfiles" doit absolument figurer) et sélectionnez la boîte "Use this as the default and do not ask again". Acceptez en cliquant sur OK

    Vous verrez alors apparaître un écran de bienvenue similaire à celui-ci:

    Notez que vous pouvez faire apparaître cet écran de bienvenue en cliquant sur Welcome dans le menu Help. Cet écran vous permet d'accéder facilement à des fichiers d'aide et des tutoriaux Eclipse.

    Fermez cet écran en cliquant sur la flèche (au coin en haut à droite de l'écran) :

    Vous vous trouvez maintenant sur le workbench ("environnement de travail") par défaut.

    La configuration par défaut d'un workbench Eclipse étant plutôt compliquée, nous allons commencer par la simplifier. Pour ceci, fermer toutes les différentes "vues" (views) présentes en cliquant sur les petites croix associées à leurs entêtes:

    Vous devriez alors obtenir un workbench dépouillé de ce style:

    Ne rouvrez ensuite que la vue Package explorer. Pour ceci, séléctionnez "Window->Show View->Package explorer":

    Vous obtenez au final un workbench tout simple comme celui-ci:



    Exercice 14: Tutorial Eclipse 2 (inutile si vous travaillez avec IntelliJ) : Créer un projet (Eclipse, Niveau 0)

    Le cours recommande cette année de travailler avec IntelliJ. Si vous n'avez pas accès à une machine personnelle, vous pouvez utiliser Eclipse sur les machines de l'EPFL.
    Dans ce cours, nous utiliserons un projet par série d'exercices. La création d'un projet doit être répétée au début de chaque série (Attention! pas chaque exercice). Le fait d'associer chaque série à un projet Eclipse particulier permet d'éviter d'éventuels conflits de noms (cas où deux classes différentes porteraient le même nom dans différentes séries).

    Pour créer un projet, cliquez sur "File->New->Java Project" dans le menu principal:

    Vous devez ensuite introduire le nom de votre projet. Cette fois, tapez "Serie01", la semaine prochaine vous mettrez "Serie02" etc.

    Cliquez sur "Finish" .

    Refusez la création d'un module:

    Vous disposerez alors d'une coquille de projet prête à accueillir du code Java



    Exercice 15: Commandes Unix/Linux (Environnement, Niveau 0)

    Cet exercice n'est pertinent que si vous êtes connecté sur une machine de l'EPFL, directement ou à distance, ou sur une machine Unix. Il a pour objectif de vous faire faire une petite incursion dans le monde Unix (pour comprendre un peu plus en profondeur les arcanes du système d'exploitation à votre disposition sur les VMs de l'EPFL). Si vous n'avez pas accès à une machine de type Unix, le 2ème exercice de cette série, « Installations diverses », vous donne des indications sur comment vous connecter à distance sur une machine de l'EPFL. Vous pouvez aussi passer dans une des salles informatique en semaine (INF3, BC07/08, ou CO020-23) pour faire cet exercice. N'hésitez pas à nous poser des questions sur le forum du cours pour toute question que vous pourriez avoir alors.

    Commencez par regarder cette petite vidéo d'introduction. Lisez ensuite la synthèse plus détaillée présentée dans ces transparents mis à disposition sur Moodle.

    Les principales commandes (ls, cd, cp,...) sont présentées dans la mini-référence du cours.

    Vous êtes en principe alors prêts à réaliser les manipulations requises par cet exercice.

    Remarque préalable : cet exercice est surtout une invitation à l'apprentissage par l'expérimentation. L'idée est de commencer à vous familiariser un peu avec le monde Unix en essayant les commandes qui font l'objet des questions ci-dessous.

    Maîtriser les commandes Unix n'est pas un nécessité absolue pour la suite du cours. Acquérir quelques notions peut simplement vous donner plus d'aisance dans vos interactions avec le système d'exploitation. N'hésitez pas à nous demander des compléments d'explication pendant que vous réalisez l'exercice.

    Pour gérer les fichiers, on peut soit utiliser le gestionnaire de fichier, soit utiliser directement des commandes du langage shell d'UNIX dans une fenêtre Terminal.

    Ouvrez un terminal et allez dans le répertoire ~/Desktop/myfiles/java/cours01.

    Application : commandes de base et diverses manipulations de fichiers

    Ouvrez un terminal et allez dans le répertoire ~/Desktop/myfiles/java/cours01 au moyen de la commande cd.

    Si vous avez fait l'exercice sur les éditeurs, vous devriez avoir dans ce répertoire les deux fichiers poeme1 et poeme2.

    Tapez la commande Unix ls pour voir listé ces deux fichiers.

    Créez, à l'aide de la commande Unix mkdir, un sous-répertoire test (dans ~/Desktop/myfiles/java/cours01).

    1. Quelle est la différence entre les deux commandes suivantes :

            cp poeme1.txt test/f1.txt
      
      et
            mv poeme1.txt test/f1.txt
      
      ?
    2. Quelle est l'information retournée par la commande which ls ? par which man ? Que représentent-t-elles ?

    3. Que vous donne la commande ls -l *.txt ?

    4. Lors de l'utilisation de caractères spéciaux (*, ? ou [ ]), il faut bien comprendre que c'est le Shell (i.e. l'interpréteur de commandes) qui fait le remplacement des arguments avant d'envoyer la liste des arguments à la commande. Cela signifie que la commande ne «voit» que des arguments déjà évalués par le Shell. Mais comment tester ?

      Cette partie de l'exercice vous propose de vous familiariser avec les commandes suivantes :

      • echo affiche simplement ses arguments. Le nom vient du fait que la commande renvoie ses arguments comme un écho, sans modification :

        
                          $> echo 1 2 3
                          1 2 3
        
                          $> echo 'Bonjour tout le monde !'
                          Bonjour tout le monde !
        
                          $> echo SHELL
                          SHELL
        
                          $> echo $SHELL
                          /bin/tcsh
                        
        

        Dans ce dernier exemple, le Shell remplace la variable $SHELL par son contenu. La commande echo ne fait aucune modification de ses arguments.

                          $> echo *.txt
                          poeme1.txt        poeme2.txt
                        

        Dans ce dernier exemple, le Shell remplace *.txt par tout les fichiers correspondant, puis lance la commande echo avec les arguments trouvés. La commande echo reçoit donc bien comme arguments «poeme1.txt poeme2.txt» et ne fait elle-même aucune modification de ses arguments.

      • touch modifie la date d'accès et la date de modification de chaque fichier indiqué. Les fichiers qui n'existent pas sont créés. On peut se servir du dernier fait pour créer des fichiers vides.

                          $> ls -l toto
                          ls: toto: No such file or directory
        
                          $> touch toto
        
                          $> ls -l toto
                          -rw-r--r--  1 chaps dilia 0 Sep 23 13:32 toto
        
                          $> rm toto
                        

        Dans cet exemple, on a créé et détruit le fichier toto.

      À présent :

      1. Allez dans le répertoire test et créez plusieurs fichiers commençant par f, et au moins les trois fichiers (pas répertoires !) f1, f2 et f4 (c'est bien un 4, ce n'est pas une faute de frappe).

        Quel est le résultat de la commande ls ?? (ls suivi de deux points d'interrogation (??)) ?

        Quel est le résultat de la commande ls f[123] ?

        Quel est le résultat de la commande cat f[123] ?

      2. Créez quelques fichiers supplémentaires : albert, a.txt, zoulou, ...

      3. Testez les caractères de substitution :

        • Affichez tous les noms de fichiers avec echo;

        • Afficher les noms qui commencent par un a ;

        • Afficher tous les noms de longueur 6 ;

    5. L'exécution de la commande ls -l produit, pour un certain utilisateur, quelque part, le résultat suivant :

              -rw-r--r--   1 dupont  dilia      75180 Mar 28  2003 divers
              drwxr-x--x   2 dupont  dilia       4096 Mar 14  2003 autchose
      
      1. Est-ce que divers est un fichier ou un répertoire ? Même question pour autchose.

      2. À qui (utilisateur et groupe) appartient ce fichier ?

      3. Quelle commande le propriétaire doit-il exécuter pour donner à tous le droit d'écrire dans divers?

      4. Qu'est-ce que les utilisateurs du groupe dilia ne peuvent pas faire avec autchose ?

      5. Qu'est-ce qu'un utilisateur quelconque (pas dans le groupe dilia) a le droit de faire avec ce fichier/répertoire ?

    6. Quelle est la spécificité des fichiers dont le nom commence par le caractère . ?

      Exécutez les commandes suivantes (~ représente votre répertoire racine («home directory»)) :

        ls ~
      
      puis
            ls -a ~
      
      Quelle différence observez vous ?
    7. Pour finir, un petit exercice sur les noms de fichiers (et leur raccourcis) :

      1. listez le contenu du répertoire /etc ;

      2. listez tout ce qui est dans le fils man du père de /usr/share/fonts et qui commence par f.

      3. listez tous les éléments de /etc commençant par o ou n et se terminant par i, e ou s

    Profitez du temps qu'il vous reste pour étudier plus en détail la mini-référence sur les commandes unix et l'environnement de travail.


    Exercice 16: Découvrez quelques références (Environnement, Niveau 0)

    Votre charge de travail va rapidement augmenter dans les prochaines semaines et cette série est une des seules à vous offrir beaucoup de temps libre :-)

    Profitez de ce temps pour naviguer dans la page des références et lien utiles du cours. Vous y trouverez divers ressources utiles; dont une petite revue bibliographique de livres sur Java.


    Exercice 17: Se déconnecter (ou "logout") (Environnement, Niveau 0)

    Cet exercice n'est pertinent que si vous connectez une machine de l'EPFL pour la première fois.

    Pour vous déconnecter de votre session de travail, il vous suffit le sélectionner l'option Log out qui apparaît lorsque vous cliquez sur le bouton "Eteindre" tout en haut à droite de votre écran de travail :



    Dernière mise à jour: 22/09/2023  (Revision: 1.2)