CS-210 / 5 crédits

Enseignant(s): Odersky Martin, Kuncak Viktor

Langue: Anglais


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

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
Assistants 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

  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Functional programming
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Functional programming
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Functional programming
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Functional programming
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Pendant le semestre (session d'hiver)
  • Matière examinée: Functional programming
  • Cours: 2 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines

Semaine de référence

 LuMaMeJeVe
8-9     
9-10     
10-11    CO021
ELA1
ELD120
DIA005
DIA004
11-12    
12-13     
13-14  CO1  
14-15    
15-16     
16-17     
17-18     
18-19     
19-20     
20-21     
21-22     

Mercredi, 13h - 15h: Cours CO1

Vendredi, 10h - 12h: Exercice, TP CO021
ELA1
ELD120
DIA005
DIA004