Informatique 2

lsinc1402  2020-2021  Charleroi

Informatique 2
En raison de la crise du COVID-19, les informations ci-dessous sont susceptibles d’être modifiées, notamment celles qui concernent le mode d’enseignement (en présentiel, en distanciel ou sous un format comodal ou hybride).
5 crédits
30.0 h + 30.0 h
Q1

  Cette unité d'enseignement n'est pas dispensée en 2020-2021

Langue
d'enseignement
Français
Préalables
Ce cours suppose acquises les notions de base de la programmation (instructions, variables, boucles, conditions,...) telles qu'enseignées dans le cours LINFO1101 ou LSINC1101.
Thèmes abordés
- Le langage Java ;
- Types abstraits de données ;
- Structures linéaires et arborescentes;
- Programmation et algorithme récursifs ;
- Technique de raisonnement sur l'exactitude des programmes ;
- Notions de complexité calculatoire d'un algorithme ;
- Programmation fonctionnelle ;
- Modélisation et programmation orientée-objet ;
- Programmation parallèle ;
- Test de programmes.
Acquis
d'apprentissage

A la fin de cette unité d’enseignement, l’étudiant est capable de :

AA 1.1, 1.2 - AA 2.3, 2.4, 2.5, 2.6, 2.7 - AA 4.2, 4.3, 4.4 Eu égard au référentiel AA du programme « Bachelier en Sciences de l'Ingénieur, orientation ingénieur civil », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage
suivants :
- AA 1.1, 1.2
- AA 2.3, 2.4, 2.5, 2.6, 2.7
- AA 4.2, 4.3, 4.4

Plus précisément, au terme du cours, l'étudiant sera capable de :
- faire un choix justifié entre plusieurs représentations des informations et plusieurs algorithmes pour les traiter,
- concevoir des (fragment de) programme dans un style fonctionnel,
- raisonner sur des (fragments de) programmes : complexité des algorithmes et efficacité des programmes les mettant en oeuvre, raisonnement récursif,
- appliquer des principes de modélisation orientée-objet,
- concevoir et appliquer des méthodes de test d'un programme,
- concevoir un programme parallèle simple
Les étudiants auront développé des compétences méthodologiques et opérationnelles. En particulier, ils auront développé leur capacité à :
- Analyser un problème de taille moyenne, de proposer une solution informatique pour le résoudre et de la mettre en oeuvre dans le langage Java.
 
Contenu
Cette unité d'enseignement porte sur :
- Introduction à Java : compilation, byte-code, machine virtuelle, type primitifs, strings, tableaux
- Types abstraits de données ;
- Structures linéaires et arborescentes, et leurs applications ;
- Formulation récursive d'une solution et algorithmes récursifs ;
- Technique de raisonnement : préconditions, postconditions, invariants
- Notions de complexité calculatoire et analyse de la complexité temporelle et spatiale d'un algorithme ;
- Programmation fonctionnelle et programmation d'ordre supérieur
- Modélisation orientée-objet (héritage, composition, réutilisation, polymorphisme, invariant de classe) ;
- Introduction aux design patterns ;
- Méthodes de tests et de validation de programmes ;
- Introduction à la parallélisation : notion de thread et mécanismes de synchronisation.
Les étudiants ayant suivi avec fruit ce cours seront capables de
  • de concevoir des programmes Java 
  • analyser des programmes en fonction de leur performance 
  • de prouver leurs exactitudes de programmes à l'aide d'invariants
  • appliquer les principes de la programmation orientée-objet tels que généricité, abstraction, composition et réutilisation
  • concevoir et mettre en oeuvre des variantes des algorithmes étudiés dans des programmes Java de haute qualité.
  • concevoir et manipuler des structures linéaires et arborescentes et récursives simples
  • concevoir des tests pour des programmes
  • concevoir des approches de programmation fonctionnelles pour résoudre de petits problèmes algorithmiques
  • utiliser à bon escient les designs patterns
  • concevoir des programmes parallèles simples avec des mécanismes de synchronisation
Méthodes d'enseignement

En raison de la crise du COVID-19, les informations de cette rubrique sont particulièrement susceptibles d’être modifiées.

Lectures + Exercices Inginious + permanences encadrées en salle informatique
Modes d'évaluation
des acquis des étudiants

En raison de la crise du COVID-19, les informations de cette rubrique sont particulièrement susceptibles d’être modifiées.

Un quizz optionnel a lieu à la mi-quadri comptant pour deux points uniquement si la note est supérieure à la note de l'examen: note_finale = max(quizz_sur_deux + examen_sur_18, examen_sur_20).
L'examen en fin quadrimestre a pour objectif de vérifier non seulement la connaissance de la matière, mais également la capacité à appliquer les connaissances acquises pour écrire des programmes. L'examen et le quizz utiliseront le système d'évalution Inginious.
Ressources
en ligne
https://lepl1402.readthedocs.io/ (pour les liens vers les slides et contenu du cours)
https://moodleucl.uclouvain.be/course/view.php?id=12884 Moodle (pour la communication avec les étudiants)
https://inginious.info.ucl.ac.be/course/LEPL1402 pour les exercices
Faculté ou entité
en charge
EPL


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Bachelier en sciences informatiques