Aller à : contenu haut bas recherche

EN     FR
Vous êtes ici:   UNIL > HEC Inst. > HEC App. > SYLLABUS

## Algorithmes et Pensée Computationnelle

• Teacher(s):
• English title: Algorithms and Computational Thinking
• Course given in: French
• ECTS Credits:
• Schedule: Autumn Semester 2019-2020, 4.0h. course (weekly average)
WARNING :   this is an old version of the syllabus, old versions contain   OBSOLETE   data.
•  sessions
•  course website
• Related programmes:

### Objectives

Learn a set of thinking skills and practical methods to formulate and solve problems using algorithms and computing devices.

### Contents

Computational thinking can be defined as an approach encompassing the thought processes involved in formulating problems and expressing their solutions in such a way that a computer can execute them. Such solutions are expressed in terms of algorithms, which are in turn written in some programming language compiled and executed on some computing device, e.g, a desktop computer, a data center server, a tablet, a smartphone, etc.

While this approach is essential to software development, its scope goes far beyond programming. Just like math is not only useful to mathematicians, computational thinking and algorithmic principles applicable by everyone, not just computer scientists, and can be used to support problem solving across all disciplines.

This approach includes a number of characteristics, such as breaking down problems into smaller parts (modularisation), developing step-by-step instructions for solving problems (algorithms), observing regularities in data (pattern recognition), mastering various levels of abstractions (encapsulation), dealing with complexity and open-ended problems, etc.

In this course, you will learn and exercise computational thinking by studying and solving typical computational problems, both from an algorithmic viewpoint (concepts) and from a programming viewpoint (practice). You will also learn how to navigate from high-level concepts, such as iteration, recursion, higher-order functions, objects and classes, to their practical implementation in terms of memory and computer architecture. At the programming level, rather than focusing on a single language, you will have the opportunity to experiment with several ones, i.e., Python, Scala/Java et Swift, in order to clearly distinguish concepts from their specific implementations.

More precisely, the following notions will be presented:

• algorithms and their complexity,
• computers and their intrinsic limits,
• programming languages and their expressiveness,
• software architectures and their modularity.

The course is given in French but most of the course written material is in English. Moreover, English-speaking students can ask their questions and be answered in English.

### References

• Jeannette M. Wing. 2006. Computational thinking. Commun. ACM 49, 3 (March 2006), 33-35. DOI=http://dx.doi.org/10.1145/1118178.1118215

### Evaluation

#### First attempt

Exam:
Written 2 hours
Documentation:
Not allowed
Calculator:
Not allowed
Evaluation:

The evaluation is based on a mid-semester test and on a final written exam during the regular session.

#### Retake

Exam:
Oral 20min. minutes
Documentation:
Not allowed
Calculator:
Not allowed
Evaluation:

A new final exam takes place during the retake session, oral this time, while the grade obtained for the mid-semester test is simply reused to compute the final mark.

[» go back]           [» courses list]

 Search in HEC App   in whole UNIL   in the Directory
Internef - CH-1015 Lausanne - Suisse  -   Tél. +41 21 692 33 00  -   Fax +41 21 692 33 05