- English
- Français
Fiche de cours
Functional programming
CS-210
Fiche de cours
Enseignant(s) :
Kuncak ViktorOdersky Martin
Langue:
English
Summary
Understanding of the principles and applications of declaratative programming, the fundamental models of program execution, application of fundamental methods of program composition,meta-programming through the construction of interpreters and advanced programming techniques.Content
Introduction to programming in Scala
Functions and Evaluation
Higher-Order Functions
Data and Abstraction
Types and pattern matching
Lists
Collections
Lazy evaluation
For expressions, generators and monads
Functions and State
Lambda calculus and Lisp
Interpreting Functional Languages
Learning Prerequisites
Required courses
CS-107 Introduction to programming
CS-108 Practice of object-oriented programming
Learning Outcomes
By the end of the course, the student must be able to:- Create functional programs
- Design robust and readable software
- Formalize program correctness
- Interpret programs automatically
- Prove correctness using induction
- Construct software
- Demonstrate a capacity for creativity.
- Use a work methodology appropriate to the task.
- Set objectives and design an action plan to reach those objectives
- Give feedback (critique) in an appropriate fashion.
Transversal skills
- Demonstrate a capacity for creativity.
- Use a work methodology appropriate to the task.
- Set objectives and design an action plan to reach those objectives.
- Give feedback (critique) in an appropriate fashion.
Teaching methods
MOOC. Ex Cathedra. Exercises and projects
Assessment methods
- 70% exam during the semester
- 25% programming lab assignments during the semester
- 5% written exercises during the semester
Supervision
| Office hours | Yes |
| Assistant.e.s | Yes |
| Forum | Yes |
Resources
Bibliography
Abelson/Sussman : Structure and Interpretation of Computer Programs, MIT Press
Martin Odersky, Lex Spoon, and Bill Venners: Programming in Scala (Third Edition). A comprehensive step-by-step guide. https://www.artima.com/shop/programming_in_scala
Ressources en bibliothèque
- Programming in Scala (Third Edition) / Odersky
- Structure and Interpretation of Computer Programs / Abelson
Websites
Dans les plans d'études
- Informatique, 2021-2022, Bachelor semestre 3
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
5 - Matière examinée
Functional programming - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - Type
obligatoire
- Semestre
- Passerelle HES - IN, 2021-2022, Semestre automne
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
5 - Matière examinée
Functional programming - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - Type
obligatoire
- Semestre
- Passerelle HES - SC, 2021-2022, Semestre automne
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
5 - Matière examinée
Functional programming - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - Type
obligatoire
- Semestre
- Systèmes de communication, 2021-2022, Bachelor semestre 3
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
5 - Matière examinée
Functional programming - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - Type
optionnel
- Semestre
- Mineur en Informatique, 2021-2022, Semestre automne
- SemestreAutomne
- Forme de l'examenPendant le semestre
- Crédits
5 - Matière examinée
Functional programming - Cours
2 Heure(s) hebdo x 14 semaines - Exercices
2 Heure(s) hebdo x 14 semaines - Type
optionnel
- Semestre
Semaine de référence
| Lu | Ma | Me | Je | Ve | |
|---|---|---|---|---|---|
| 8-9 | |||||
| 9-10 | |||||
| 10-11 | |||||
| 11-12 | |||||
| 12-13 | |||||
| 13-14 | |||||
| 14-15 | |||||
| 15-16 | |||||
| 16-17 | |||||
| 17-18 | |||||
| 18-19 | |||||
| 19-20 | |||||
| 20-21 | |||||
| 21-22 |
En construction
Cours
Exercice, TP
Projet, autre
légende
- Semestre d'automne
- Session d'hiver
- Semestre de printemps
- Session d'été
- Cours en français
- Cours en anglais
- Cours en allemand