INFO0062 - Object-oriented programming (2018-2019)

Archives

Année académique 2017-2018

Liens utiles

Site web du cours
Fiche dans le programme des cours

Annonces

Documents utiles

icon terminal.pdf
Slides traitant de l'utilisation du terminal sous macOS ou une distribution Linux afin de compiler et tester un programme en Java. Comment Java peut être installé est également abordé. Quelques sections annexes présentent brièvement Linux ainsi que des éditeurs de texte qui pourront s'avérer utiles.


icon eclipse.pdf
Slides présentant Eclipse, un IDE (c.-à-d. un programme comme Code::Blocks) pour le Java. Disponible pour n'importe quel système d'exploitation, Eclipse pourra surtout intéresser les utilisateurs de Windows. Les slides expliquent comment installer Java et Eclipse, ainsi que comment l'utiliser pour créer un programme simple et passer des arguments d'entrée.


icon network8.pdf
Slides présentant le réseau 8, un ensemble d'ordinateurs localisés à Montefiore et accessibles à tous les étudiants. Ceux-ci pourront s'avérer utiles pour tester le futur projet, mais aussi pour les étudiants qui n'ont pas d'ordinateur portable. Ces slides expliquent en particulier comment on peut s'en servir à distance.

Enoncés des répétitions

icon intro.pdf
Slides d'introduction aux séances d'exercices. Il s'agit simplement d'une petite présentation sur le mode de fonctionnement des séances.


icon instructions.pdf
Slides de la première séance d'exercices. Les exercices portent sur les instructions de base en Java. Les étudiants plus avancés peuvent tenter un exercice pour réaliser une petite fenêtre affichant une image simple.


icon lists.pdf
Slides de la deuxième séance d'exercices. Les exercices portent sur la création et la manipulation de classes simples pour implémenter et utiliser des listes liées. L'exercice avancé consiste à dessiner une spirale d'or.


icon drawings_statement.zip
Archive contenant les slides de la troisième séance d'exercices et une classe Drawings à utiliser en tant que base de code. Tous les exercices portent sur la manipulation et le dessin de courbes (en tant que successions de segments de droite).


icon polygons_statement.zip
Archive contenant les slides de la quatrième séance d'exercices. La séance porte sur une revue de quelques notions de base et du code réalisé lors de la séance précédente, et propose quelques exercices dans la continuité de celle-ci.


icon fractals_statement.zip
Archive contenant les slides de la cinquième séance d'exercices. Ceux-ci reviennent brièvement sur un choix de conception pris lors de la première implémentation de la transformation de Koch (troisième séance). Les exercises qui suivent consistent à implémenter des variantes de cette transformation en tirant parti des mécanismes d'héritage. Mis à jour le 25/03 (terminologie).


icon transformations.pdf
Slides de la sixième séance d'exercices. Les exercices portent sur une approche alternative pour résoudre le même problème qu'à la séance précédente, toujours en utilisant l'héritage, et qui permet également de réaliser de nouvelles figures uniques.


icon exceptions_statement.zip
Archive contenant les slides de la septième séance d'exercices, portant sur les exceptions, ainsi qu'une classe FormatChecker utilisée pour les exercices 1 et 3.


icon cloning_statement.zip
Archive contenant les slides de la huitième séance d'exercices, portant sur le chapitre 7 du cours théorique, ainsi que 3 classes utilisées pour l'exercice 1. Mis à jour le 25 avril pour apporter une précision sur l'opérateur instanceof (et retirer du code dispensable dans les fichiers .java).


icon genericity.pdf
Slides de la neuvième séance d'exercices, consacrée à la généricité (chapitre 8 dans le cours théorique).


icon concurrency_statement.zip
Archive contenant les slides de la dixième séance d'exercices, portant sur la programmation concurrente. Des classes sont également fournies pour résoudre les exercices.


icon May_2018.pdf
Examen écrit de 1ère session pour l'année académique 2017-2018. Cet énoncé est le sujet de la séance du jeudi 16/05.

Solutions suggérées

icon instructions.zip
Solutions proposées pour les exercices de la première séance. Mis à jour le 27/02 (exercice avancé uniquement).


icon lists.zip
Solutions proposées pour les exercices de la deuxième séance.


icon drawings.zip
Solutions proposées pour les exercices de la troisième séance. En plus des solutions des exercices, une autre manière de dessiner un flocon de Koch est proposée dans le sous-dossier koch_recursion/.


icon polygons.zip
Solutions proposées pour les exercices de la quatrième séance. La solution proposée pour l'exercice avancé dessine une figure ayant l'aspect d'un croissant afin de tester toutes les méthodes qui devaient être implémentées pour cet exercice.


icon fractals.zip
Solutions proposées pour les exercices de la cinquième séance.


icon transformations.zip
Solutions proposées pour les exercices de la sixième séance.


icon exceptions.zip
Solutions proposées pour les exercices de la septième séance. Pour chaque exercise impliquant la lecture d'un fichier texte, des exemples (bons et mauvais) sont fournis. A noter que la classe FormatChecker a eu droit à quelques modifications par rapport à celle utilisée lors du TP pour mieux utiliser la classe IOException.


icon cloning.zip
Solutions proposées pour les exercices de la huitième séance.


icon genericity.zip
Solutions proposées pour les exercices de la neuvième séance. Un sous-dossier inheritance/ fournit une solution alternative pour l'exercice 1.


icon concurrency.zip
Solutions proposées pour les exercices de la dixième séance. Les solutions des exercices 2 et 3 sont proposées dans des sous-dossiers distincts.


icon Q1_May_2018.zip
Exemple de résolution de la question 1 de l'examen de mai 2018, montré le 16/05/2019.


Projet de programmation orientée-objet

icon project_statement.pdf
Enoncé du projet de cette année. Il consiste à chercher un assemblage de 20 hexagones et 12 pentagones pour former un ballon de football.


icon project_appendix.pdf
Annexe de l'énoncé du projet de cette année. Cette annexe fournit des détails supplémentaires pour la soumission du projet ainsi que quelques conseils pour sa réalisation.


icon project_basis.zip
Archive proposée en tant que base pour commencer le projet. Elle contient des figures PDF ainsi qu'une petite classe Data pour manipuler le patron du polyèdre à assembler ainsi que les pièces disponibles.


icon project_presentation.pdf
Slides de la présentation du 14 mars. En plus de ré-expliquer le problème, ceux-ci fournissent quelques conseils pour le résoudre et décrivent quelques bonnes pratiques de coding style à appliquer.


icon example_clockwise.txt
Exemple d'assemblage valide où les rotations des éléments se font dans le sens horaire.


icon example_anticlockwise.txt
Exemple d'assemblage valide où les rotations des éléments se font dans le sens antihoraire.


icon projects_received.txt
Rappel des projets reçus. Le fichier liste tous les groupes (un numéro suivi d'un ou deux matricules) dont le projet a été bien reçu.


Conseils et rappels