Fiche de cours

Functional programming

CS-210

icon pdfFiche de cours

Enseignant(s) :

Kuncak Viktor
Odersky 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
Websites

Dans les plans d'études

  • Informatique, 2021-2022, Bachelor semestre 3
    • Semestre
       Automne
    • Forme de l'examen
       Pendant 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
  • Passerelle HES - IN, 2021-2022, Semestre automne
    • Semestre
       Automne
    • Forme de l'examen
       Pendant 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
  • Passerelle HES - SC, 2021-2022, Semestre automne
    • Semestre
       Automne
    • Forme de l'examen
       Pendant 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
  • Systèmes de communication, 2021-2022, Bachelor semestre 3
    • Semestre
       Automne
    • Forme de l'examen
       Pendant 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
  • Mineur en Informatique, 2021-2022, Semestre automne
    • Semestre
       Automne
    • Forme de l'examen
       Pendant 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

Semaine de référence

 LuMaMeJeVe
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