CS-214 / 8 crédits

Enseignant(s): Kuncak Viktor, Odersky Martin, Pit-Claudel Clément

Langue: Anglais


Summary

Learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and fundamental software construction concepts (reusability, abstraction, encapsulation, composition, proofs)

Content

Learning Prerequisites

Required courses

Any previous course programming course

Recommended courses

CS-107 Introduction à la programmation

CS-108 Pratique de la programmation orientée-objet

Important concepts to start the course

Loops, conditionals, variable and type declarations, computing mathematical expressions

Learning Outcomes

By the end of the course, the student must be able to:

  • Implement reliable, efficient, and maintainable software
  • Identify data types and operations that lead to computational solutions
  • Argue that an implemented solution is correct
  • Transform programs to change its behavior in a desirable way
  • Design and implement data-parallel software using parallel collections
  • Make use of type systems and tests to develop reliable software

Teaching methods

  • Ex cathedra (live lectures)
  • Recorded videos
  • Exercise and lab sessions
  • Online discussions

Expected student activities

  • Attending lectures
  • Watching and understanding recorded videos
  • Solving exercises individually or in groups
  • Completing individual graded programming assignments (labs)
  • Completing midterm and end-of-semester exams

Assessment methods

  • 30% Midterm exam during the semester
  • 40% Final exam during the exam session
  • 30% Programming assignments (labs)

Supervision

Office hours Yes
Assistants Yes
Forum Yes

Resources

Virtual desktop infrastructure (VDI)

Yes

Moodle Link

Prerequisite for

CS-320 Computer language processing

CS-311 The Software enterprise - from ideas to products

CS-452 Foundations of software

CS-550 Formal verification

Dans les plans d'études

  • Semestre: Automne
  • Forme de l'examen: Ecrit (session d'hiver)
  • Matière examinée: Software construction
  • Cours: 3 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Projet: 3 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Ecrit (session d'hiver)
  • Matière examinée: Software construction
  • Cours: 3 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Projet: 3 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Ecrit (session d'hiver)
  • Matière examinée: Software construction
  • Cours: 3 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Projet: 3 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Ecrit (session d'hiver)
  • Matière examinée: Software construction
  • Cours: 3 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Projet: 3 Heure(s) hebdo x 14 semaines
  • Semestre: Automne
  • Forme de l'examen: Ecrit (session d'hiver)
  • Matière examinée: Software construction
  • Cours: 3 Heure(s) hebdo x 14 semaines
  • Exercices: 2 Heure(s) hebdo x 14 semaines
  • Projet: 3 Heure(s) hebdo x 14 semaines

Semaine de référence

 LuMaMeJeVe
8-9     
9-10     
10-11STCC - Cloud C    
11-12  INF2
INF1
INF119
INM10
 
12-13CM011
CM013
CM012
CM1100
CM1106
CM1104
CM1120
  INF2
INF1
INF119
INM10
 
13-14     
14-15     
15-16  SG1  
16-17  INF2
INF1
INF3
  
17-18    
18-19     
19-20     
20-21     
21-22     

Mercredi, 15h - 16h: Cours SG1

Mercredi, 16h - 18h: Projet, autre INF2
INF1
INF3

Jeudi, 11h - 12h: Exercice, TP INF2
INF1
INF119
INM10

Jeudi, 12h - 13h: Projet, autre INF2
INF1
INF119
INM10

Lundi, 10h - 12h: Cours STCC - Cloud C

Lundi, 12h - 13h: Exercice, TP CM011
CM013
CM012
CM1100
CM1106
CM1104
CM1120