Info Bcpst12 7d c2020
Info Bcpst12 7d c2020
Info Bcpst12 7d c2020
Filière BCPST
Première et deuxième années
6 décembre 2020
1
Table des matières
1 Programme du semestre 1 5
2 Programme du semestre 2 6
2.1 Méthodes de programmation et dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Bases de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Méthodes numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
A Langage Python 11
Compétences visées Ce programme vise à développer les six grandes compétences suivantes :
analyser et modéliser un problème ou une situation, notamment en utilisant les objets conceptuels de
l’informatique pertinents (table relationnelle, graphe, dictionnaire, etc.) ;
imaginer et concevoir une solution, décomposer en blocs, se ramener à des sous-problèmes simples et
indépendants, adopter une stratégie appropriée, décrire une démarche, un algorithme ou une struc-
ture de données permettant de résoudre le problème ;
décrire et spécifier les caractéristiques d’un processus, les données d’un problème, ou celles manipu-
lées par un algorithme ou une fonction ;
mettre en œuvre une solution, par la traduction d’un algorithme ou d’une structure de données dans
un langage de programmation ou un langage de requête ;
justifier et critiquer une solution, en développant des processus d’évaluation, de contrôle, de valida-
tion d’un code que l’on a produit ;
communiquer à l’écrit ou à l’oral, présenter des travaux informatiques, une problématique et sa solu-
tion ; défendre ses choix ; documenter sa production et son implémentation.
La pratique régulière de la résolution de problèmes par une approche algorithmique et des activités de pro-
grammation qui en résultent constitue un aspect essentiel de l’apprentissage de l’informatique. Les exemples
ou les exercices d’application peuvent être choisis au sein de l’informatique elle-même ou en lien avec d’autres
champs disciplinaires.
Sur les partis pris par le programme Ce programme impose aussi souvent que possible des choix de vo-
cabulaire ou de notation de certaines notions. Les choix opérés ne présument pas la supériorité de l’option
retenue. Ils ont été précisés dans l’unique but d’aligner les pratiques d’une classe à une autre et d’éviter l’in-
troduction de longues définitions récapitulatives préliminaires à un exercice ou un problème. De même, ce
programme nomme aussi souvent que possible l’un des algorithmes possibles parmi les classiques qui ré-
pondent à un problème donné. Là encore, le programme ne défend pas la prééminence d’un algorithme ou
d’une méthode par rapport à un autre mais il invite à faire bien plutôt que beaucoup.
Sur les langages et la programmation L’enseignement du présent programme repose sur un langage de
manipulation de données (SQL) ainsi que le langage de programmation Python, pour lequel une annexe liste
de façon limitative les éléments qui sont exigibles des étudiants. La poursuite de l’apprentissage du langage
Python est vue en particulier par les étudiants pour adopter immédiatement une bonne discipline de pro-
grammation tout en se concentrant sur le noyau du langage plutôt que sur une interface de programmation
applicative (API) pléthorique.
2.3 Graphes
Il s’agit de définir le modèle des graphes, leurs représentations et leurs manipulations.
On s’efforce de mettre en avant des applications importantes et si possibles modernes : réseau de transport,
graphe du web, réseaux sociaux, bio-informatique. On précise autant que possible la taille typique de tels
graphes.
Approfondissement sur les statis- Elaboration pour un test de la moyenne, cas particulier d’une
tiques : simulation et mécanisme de proportion.
tests. On affichera les histogrammes obtenus.
Simulation de variables aléatoires de On pourra visualiser la convergence des lois de Student vers une
lois de khi-2 et de Student. loi normale.
Elaborer d’un test de moyenne, dit de La connaissance des lois de Student et du khi-2 n’est pas un at-
Student, sur un petit échantillon gaus- tendu du programme. On pourra utiliser les simulateurs intégrés
sien. dans Python.
On pourra compléter cette partie par une étude sur un autre sujet ou approfondir un des thèmes précédents.
Les thèmes suivants ont été choisis par leur lien possibles avec des applications possible en SVT mais ils ne
sont que des exemples proposés.
L’objectif de cette dernière partie est à travers l’étude d’un thème, sur plusieurs séances, de permettre aux
étudiants de gagner en autonomie (choix de la représentation des données, choix du découpage en fonctions,
etc).
Les thèmes suivants ont été choisis par leurs applications possibles en lien avec la SVT mais ils ne sont que
des exemples proposés.
Traits généraux
— Principe d’indentation.
— Portée lexicale : lorsqu’une expression fait référence à une variable à l’intérieur d’une fonction, Python
cherche la valeur définie à l’intérieur de la fonction et à défaut la valeur dans l’espace global du module.
Types de base
— Opérations sur les entiers (int) : +, -, *, **, avec des opérandes positifs.
— Opérations sur les flottants (float) : +, -, *, /, **.
— Opérations sur les booléens (bool) : not, or, and.
— Comparaisons ==, !=, <, >, <=, >=.
Types structurés
— Structures indicées immuables (chaînes de caractères) : len, accès par indice positif valide, concaté-
nation +, répétition *, tranche.
— Listes : création par compréhension [𝑒 for 𝑥 in 𝑠], par append successifs ; len, accès par indice
positif valide ; concaténation +, répétition *, tranche, copie ; pop en dernière position.
— Dictionnaires : création, accès, insertion, len, copy.
Structures de contrôle
— Instruction d’affectation avec =.
— Instruction conditionnelle : if, elif, else.
— Boucle while (sans else), return dans un corps de boucle.
— Boucle for (sans else) et itération sur range(𝑎, 𝑏), une chaîne de caractères une liste, un diction-
naire au travers des méthodes keys et items.
— Définition d’une fonction def 𝑓(𝑝1 , …, 𝑝𝑛 ), return.
Divers
— Introduction d’un commentaire avec #.
— Utilisation simple de print, sans paramètre facultatif.
— Importation de modules avec import module, import module as alias, from module import 𝑓, 𝑔, …