* Ces horaires sont donnés à titre indicatif.
1 | Identifier les données utiles au fonctionnement d’un logiciel |
2 | Architecturer un logiciel complexe en définissant le modèle des données et la structure des composants à concevoir ou à utiliser |
3 | Identifier et manipuler les représentations des données en machine |
4 | Utiliser des composants logiciels existants et les intégrer dans un développement |
5 | Choisir de façon raisonnée la manière de stocker et d’exploiter les données persistantes d’un logiciel |
6 | Intégrer les problématiques de tests, de robustesse, de qualité et de sécurité dans l’architecture d’un logiciel |
7 | Structurer et modéliser le code d’un logiciel pour en faciliter la maintenance et en améliorer la qualité, en utilisant des standards du domaine comme l’UML |
8 | Produire une interface utilisateur adéquate et pertinente |
9 | Planifier les étapes d’un développement |
10 | Concevoir des algorithmes répondant à un cahier des charges, en choisissant les structures de données adéquates |
11 | Lire et analyser une spécification, en tirer une réalisation |
12 | Analyser et décomposer une tâche pour concevoir un algorithme |
13 | Identifier et manipuler les représentations des données en machine |
14 | Choisir une structure de données pertinente |
15 | Utiliser les algorithmes classiques, les combiner pour résoudre des problèmes complexes |
16 | Concevoir un algorithme itératif ou récursif adapté à une structure de données |
17 | Dérouler un algorithme |
18 | Programmer un logiciel implémentant une spécification fonctionnelle et technique |
19 | Lire et analyser une spécification, en tirer une réalisation |
20 | Établir un jeu de tests répondant à une spécification et le mettre en œuvre |
21 | Identifier, utiliser et choisir les différents paradigmes de programmation, au moins les classiques : fonctionnelle, procédurale, orientée objet, évènementielle, logique |
22 | Résoudre un problème logiciel (erreur à la compilation, à l’exécution) |
23 | Savoir illustrer la bonne exécution d’un programme en programmant les bonnes sorties issues de bons jeux de tests |
24 | Résoudre des problèmes élémentaires en mathématiques et en informatique fondamentale |
25 | Employer les notions de base en mathématiques : vecteurs et opérations, calculs matriciels, transformations géométriques et problèmes associés, nombres complexes, dérivées, intégrales, arithmétique |
26 | Employer les notions d’analyse complexe |
27 | Appliquer les techniques d’analyse de fonction et d’analyse matricielle, calcul différentiel, méthode d’optimisation, algorithmique numérique et des outils logiciels (solvers, outils d’intégration numérique) pour résoudre les problèmes classiques |
28 | Utiliser les propriétés algébriques, analytiques et géométriques des espaces R, R2, R3 |
29 | Résoudre des équations (linéaires, algébriques, différentielles) de façon exacte et par des méthodes numériques |
30 | Utiliser les concepts de base des langages de programmation |
31 | Interpréter (à la main et via un programme) un code écrit dans un langage |
Organisation
Plusieurs grands thèmes sont proposés dans le format suivant.
Les notions de mathématiques utilisées à travers des applications sont : calcul vectoriel, notion de dérivée/intégrale/gradient, nombre complexe, interpolation, discret/continu, dénombrement, notions de géométrie, etc.
Les notions d'informatique utilisées sont : algorithme de recherche, de stockage dans des structures de données simple (tableau 1D, 2D), voisinage ; gestion d'une première interface avec une boucle d'évènements ; algorithme d'optimisation; calcul discret, différence finie, etc.