Durée
10h Th, 20h Pr
Nombre de crédits
| Bachelier en sciences chimiques | 3 crédits |
Enseignant
Langue(s) de l'unité d'enseignement
Langue française
Organisation et évaluation
Enseignement au premier quadrimestre, examen en janvier
Horaire
Unités d'enseignement prérequises et corequises
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement
L'objectif du cours est d'offrir aux étudiants une vision d'ensemble de la conception et de l'implémentation des méthodes numériques de base utilisées dans les logiciels de simulation en chimie moléculaire, au sens large. Le langage de programmation utilisé sera Python, en particulier avec la bibliothèque NumPy et la bibliothèque de visualisation graphique Matplotlib. Les contenus seront structurés en trois grands blocs :
- Concepts de programmation de base et fondements d'algorithmique : prise en main du notebook, variables (types et utilisation) ainsi que structures de données en Python, contrôle de flux des logiciels, utilisation des tableaux multidimensionnels de NumPy, définition de fonctions, structuration modulaire et vérification de logiciels.
- Algorithmes associés aux simulations moléculaires, par exemple : opérations algébriques de base (p. ex. rotation), algorithmes d'optimisation (p. ex. dérivées numériques), détermination de potentiels moléculaires, notions de base sur les intégrateurs et résolution d'équations différentielles dans des processus dynamiques.
- Manipulation de données scientifiques : opérations de lecture/écriture de fichiers dans des formats standards, représentation graphique de données, etc.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement
À l'issue de ce cours, les étudiants seront capables de :
- Maîtriser les bases de Python et NumPy ainsi que leur utilisation pour le développement modulaire de logiciels.
- Traiter et visualiser des données scientifiques.
- Implémenter des algorithmes numériques de base connectant théorie et code, afin de modéliser des processus physico-chimiques simples.
Savoirs et compétences prérequis
Le cours a été conçu pour accueillir des étudiants avec ou sans connaissances en programmation en général, ou en Python en particulier. Toutefois, il est fortement conseillé d'avoir assisté au cours de Visualisation Visualisation et traitement de données en chimie I (CHIM0750-1).
Activités d'apprentissage prévues et méthodes d'enseignement
Côté théorie, nous aborderons dans une première partie l'évolution du matériel informatique (hardware) et de la programmation scientifique (software). Ensuite, certaines de nos séances incluront de courtes présentations suivies de discussions visant à éclairer des concepts informatiques et/ou scientifiques pertinents pour notre cours. Pendant les séances de travaux pratiques sur ordinateur, les étudiants s'attaqueront, sous la supervision de l'enseignant, à des problèmes de programmation scientifique de difficulté croissante. Enfin, lors de brèves discussions collectives, nous aborderons des thèmes d'actualité en lien avec le calcul scientifique, comme les avancées en matière de matériel, l'intelligence artificielle, les logiciels en libre distribution ou les données ouvertes (open data).
Mode d'enseignement (présentiel, à distance, hybride)
Cours donné exclusivement en présentiel
Supports de cours, lectures obligatoires ou recommandées
Plate-forme(s) utilisée(s) pour les supports de cours :
- eCampus
Modalités d'évaluation et critères
Examen(s) en session
Toutes sessions confondues
- En présentiel
évaluation écrite ( questions ouvertes )
Informations complémentaires:
Examen à l'ordinateur sous la forme d'un cahier Jupyter.
Le 100% de la note globale du cours sera celle de l'examen, exprimée sur 20.