Programming Languages
Programming Languages
Responsable : Pierre-Etienne Moreau, Professeur, Pierre-Etienne.Moreau@univ-lorraine.fr
Durée du module : 21 heures
Crédits ECTS : 2
Objectif général :
Comprendre quelques concepts principaux qui caractérisent les langages de programmations
Savoir implanter quelques algorithmes d'exploration de graphes et de résolution de problèmes
Programme et contenu
Programmation fonctionnelle
Langages typés
Programmation concurrente
Séances :
20/11/2023 - Introduction à Go
Tour of Go: basic components, flow control, more types
Configurez votre environnement pour utiliser Go (compilateur, éditeur : goland ou vscode)
TD : Inscrivez vous et résolvez : Advent of Code 2021 - day01
Vous pouvez utiliser Bard ou ChatGPT pour apprendre à lire un fichier par exemple (mais pas pour résoudre les problèmes Advent of Code)
Vous pouvez configurer votre environnement pour utiliser copilot (licence gratuite pour les étudiants)
27/11/2023 - Map, Structures et Références
Préparer Advent Of Code 2023 (github, organisation des répertoires, constitution des équipes)
Mise en place du répertoire GitHub 2023
TD : continuez Advent of Code 2021 en :
mettant en place des tests
utilisant github et le mécanisme de Pull Request pour faire valider vos contributions
mettant en place des tests de performance
hints : regarder la doc de strings.Split, strconv.Atoi, //go:embed, switch/case et testing
Lecture intéressante pour préparer la suite d'Advent Of Code : https://www.redblobgames.com/
04/12/2023 - Set, Grid and Generics
TD : AOC day4mercredi 06/12/2023 - Go: concurrency
Exercices : TD (faire les exercices 1 et 3). Essayez d'appliquer le pattern producer/workers à un problème AOC (day5 ou day6 brute force par exemple)
Concurrency patterns : slides (étudier le use case)11/12/2023 - Introduction à JavaScript - Introduction à TypeScript
Voir aussi : Lecture 13: Introduction to modern javascript
Documentation : TypeScript Handbook
Setup de l'environnement TypeScript
Pour mieux comprendre la différence entre ES Module et CommonJS : https://blog.logrocket.com/commonjs-vs-es-modules-node-js/
18/12/2023 - Clotures
MIT Lecture 14: Programming with functions (until slide 36)
Lecture complémentaire : closures
08/01/2024 - Restitution
Pré-requis : Compétences élémentaires en programmation (Python, C)
Modalité d'évaluation
Compléments de cours :
Top Computer Languages (TIOBE, PYPL)
Most popular technologies (Stackoverflow)
Most loved languages (Stackoverflow)
CS 312 : Software Development (Meddleburry)
A comparison of declarative python and JS (Luke Murray, MIT)
Go
Mental Model for Go: Guide To Go Profiling