Introduction à Java et à l'algorithmique

L1 MASS - 2011 / 2012

Chez moi ?

L'installation de Processing chez vous

Année passée

Trouver le site web précédent

Questions ?

Contactez moi

Crible

Animation sur le crible d'Eratosthène

News

Les dernières news (par ordre chronologique) :

  • La correction du TP 10 est disponible
  • De nouvelles aides sont disponibles pour le projet.
  • L'ordre de passage a été mis à jour (28/03/2012).
  • Le cours 10 et le TP 10 sont disponibles
  • La correction du TP 09 est disponible
  • Le cours 09 et le TP 09 sont disponibles
  • La correction du TP 08 est disponible
  • Le cours 08 et le TP 08 sont disponibles
  • La correction du TP 07 est disponible
  • L'énoncé du projet est disponible ici
  • Le cours 07 et le TP 07 sont disponibles
  • La correction du DS1 est disponible
  • La correction du TP 06 est disponible
  • Le cours 06 et le TP 06 sont disponibles
  • Information premier devoir surveillé
  • La correction du TP 05 est disponible
  • Le cours 05 et le TP 05 sont disponibles
  • La correction du TP 04 est disponible
  • De nombreux exemples très graphiques sur openProcessing.
  • Le cours et le TP 04 sont disponibles
  • La correction du TP 03 est disponible
  • L'école supérieure des arts décoratifs (ENSAD) et le MIT ont proposé un workshop qui utilise Processing pour le design. Voir.
  • Le cours et le TP 03 sont disponibles
  • La correction du TP 02 est disponible

haut

But

Poursuivre l'apprentissage de l'algorithmique et de la programmation avec le langage JAVA

haut

Descriptif

Ce cours expose les bases de l'algorithmique à l'aide du langage de programmation JAVA. Il permet de commencer à se familiariser avec un langage de programmation objet. L'approfondissement de l'étude de ce langage se poursuivra en Licence 3. Nous utiliserons l'environnement processing qui simplifie la synthaxe JAVA et permet facilement de faire des graphiques.

haut

Responsable de l'enseignement

Sébastien Verel - chargé cours et TP

Vous pouvez me contacter pour tout ce qui concerne cet enseignement et votre orientation.

haut

Evaluation

Les modalités d'évaluation et leur valeur se composent de :

  • Un devoir surveillé (D1) : lundi 5 mars 2012, entre 8h et 10h, M.2.7 (Obligatoire pour tous) - 40%
  • Un controle terminal (CT) : lundi 16 avril 2012, entre 8h et 10h, M.2.7 (Obligatoire pour tous) - 40%
  • Un devoir non surveillé (DNS): commencant le 11 mars et finissant le mardi 10 avril (Obligatoire pour tous) - 20%
Cette UE compte pour 4 crédits ECTS.

Retrouver les devoirs de l'année 2009.

haut

PROJET

Sujet

Les informations concernant le projet sont dans ce document.

Aides

  • La méthode deplacer() modifie seulement la position (abscisse et ordonnée) des objets en fonction de la vitesse (cf aide plus loin).
  • Les méthode ralentir() et accelerer() modifient seulement la vitesse, plus préciser son intensité.
  • Les méthodes tournerDroite() et tournerGauche() modifient seulement l'angle de la direction de la vitesse.
  • Le dessin du vaisseau (forme triangulaire) ne dépend que de la position et de la direction de la vitesse. Vous pouvez commencer par dessiner un vaisseau sous forme d'un point pour simplifier.
  • Une bonne strategie est d'enregistrer votre programme (avec nom différent) qui fonctionne après chaque étape. Comme cela vous pouvez présenter la dernière version de votre programme quoi qu'il arrive par la suite.
  • Dans un constructeur d'une classe fille, un seul appel au constructeur 'super'. Voir cet exemple et également la documentation !
  • Voici un schéma qui permet de calculer les nouvelles coordonnées après un déplacement: Schema (jpg).
  • Il faut distinguer la méthode ayant une certaine fonctionnalité et le moyen de l'exécuter (depuis la fonction keyPressed() par exemple). Voir la correction du tp 09 et aussi cet exemple.
  • Pour la classe Systeme, elle est très similaire à la classe Population du tp 09, elle possède donc un champ qui est un tableau d'objets Planete.
  • Voici un exemple de code utilisant plusieurs classes et l'héritage avec extends.

Rendre le projet

Le projet était à rendre le mardi 10 avril avant 23h55 par la plateforme jalon.

Oral

Les présentations en personne seront le :
  • Vendredi 13 avril à matin et après-midi (cf. ordre de passage) salle M.2.8 (entre 8h à 10h et entre 13h à 15h) et salle M.2.7 (entre 10h et 12h).
L'ordre de passage est donné par cette liste. Pour toute modification répondant à un impératif, veuillez m'envoyer un courriel en indiquant la personne avec qui vous permuttez.

Vous êtes nombreux, il n'est pas possible de prendre du retard. Le temps est décompté de la manière suivante :
  • 2 minutes pour le changement et l'installation
  • 7 minutes de présentation et démonstration
  • 1 minute de question
Je vous indiquerai lorsqu'il vous restera plus qu'une minute de présentation.

Pour votre présentation qui devra se faire sous forme de présentation de type "powerpoint", les logiciels OpenOffice et acrobatReader (format pdf) sont à disposition. La définition de l'écran est de 800x600px. Vous devrez avoir votre présentation sur une clé usb (si possible au format pdf) ou sur votre propre ordinateur.

Vous trouverez de nombreux conseils trés utiles sur le web pour réussir cette épreuve. La grille d'évaluation est disponible ici pour vous guider.

Le rapport sur de l'année 2008/2009 est disponible ici.

haut

Objectifs

Liste des objectifs de l'enseignement sur lequel repose les évaluations :

  1. Connaitre des algorithmes historiques
  2. Connaitre une définition d'algorithme
  3. Connaitre l'environnement Processing
  4. Editer et commenter un code java avec processing
  5. Savoir afficher un texte
  6. Savoir afficher des formes graphiques simples
  7. Ecrire un algorithme avec des affectations
  8. Ecrire un algorithme qui echange la valeur de deux variables
  9. Savoir utilisés les entrées de la souris avec Processing
  10. Ecrire un algorithme avec des tests simples
  11. Ecrire un algorithme avec un test multiple
  12. Ecrire des programmes java avec des tests simples ou multiples
  13. Ecrire un algorithme avec une itération de type "pour"
  14. Ecrire un algorithme avec des itérations imbriquées de type "pour"
  15. Ecrire un algorithme avec des l'itérations de type "tant que"
  16. Contrôler les événements clavier avec Processing
  17. Ecrire un algorithme correct d'au moins 8 lignes
  18. Connaître le principe de séparation de code
  19. Ecrire correctement une méthode java
  20. Comprendre et calculer le résultat d'un algorithme donné
  21. Modifier un algorithme donné
  22. Utiliser une partie d'algorithme donné
  23. Corriger un algorithme donné
  24. Lire et enregistrer une valeur dans un tableau
  25. Recherche des valeurs extrémales d'un tableau
  26. Utilisation d'un accumulateur pour réaliser un calcul dans un tableau
  27. Savoir concevoir un jeu de tests pour un algorithme
  28. Savoir inspecter les valeurs de certaines données d'un algorithme
  29. Faire la différence entre aléatoire et pseudo-aléatoire
  30. Simuler un nombre pseudo-aléatoire entier ou flottant entre 2 bornes données
  31. Ecrire un algorithme utilisant un générateur pseudo-aléatoire
  32. Ecrire un algorithme qui génére des séries temporelles du type u(t+1) = a u_t + b + e et u(t+1) = (a + e) u(t) + b
  33. Connaitre une définition d'objet et classe
  34. Savoir déclarer un objet d'une classe donnée
  35. Savoir utiliser les champs et les méthodes
  36. Savoir utiliser la documentation de l'API de Java,
  37. Connaitre les classes String, Point et Random
  38. Savoir définir une méthode toSTring
  39. Connaitre la notion de références d'objet
  40. Savoir déclarer une classe (champs, contructeurs, et méthodes)
  41. Recherche itérative d'un élément dans un tableau
  42. Recherche dichotomique d'un élément dans un tableau
  43. Dénombrement d'un élément dans un tableau
  44. Dénombrement d'un élément dans deux tableaux en parallèle
  45. Savoir utiliser "this" en Processing
  46. Savoir utiliser la classe ArrayList
  47. Savoir utiliser un héritage simple entre classes en Processing
  48. Ecrire un algorithme récursif avec un seul test
  49. Etablir le lien entre définition par récurrence et algorithme récursif
  50. Recherche dichotomique d'un élément dans un tableau

haut

Installation de processing

Téléchargez le logiciel à l'adresse http://www.processing.org (Download) et installez-le. Voici un guide de configuration.
Voici un extrait gratuit du livre de Reas & Fry et une traduction de l'Ecole d'Art d'Aix-en-Provence.
Un très bon manuel d'utilisation est d'installation en français ici.
Une courte page wikipedia sur processing.
Enfin un cours s'adressant aux étudiants de Licence 1 math/informatique de Jean-Paul Roy.

haut

Supports de Cours et de TP

Voici l'ensemble des supports de cours (avec le code source des exemples), des émoncés des TP, et le code source des corrections.

Séance Titre cours Ex. TP cor.
01 Introduction à l'algorithmique et à JAVA cours tp cor
02 Algorithmes conditionnels cours ex tp cor
03 Algorithmes itératifs cours ex tp cor
04 Séparation de code et fonctions cours no tp cor
05 Structures de données indexées cours ex tp cor
06 Simuler l'aléatoire cours ex tp cor
07 Séparation de code, classes et objets cours part1 part2 tp cor
08 Recherche et dénombrement dans les tableaux cours ex tp zip cor
09 Compléments sur les objets cours part1 part2 ex tp zip cor
10 Algorithmes récursifs cours tp cor cor

haut

Emploi du temps

10 séances de cours et TP :

L'emploi du temps provisoire du second semestre pdf.

haut

dernière modification : 7 mars 2012