Aller à : contenu haut bas recherche
EN     FR
Vous êtes ici:   UNIL > HEC Inst. > HEC App. > SYLLABUS


  • Teacher(s):   S.Scheidegger  
  • Course given in: English
  • ECTS Credits: 6 credits
  • Schedule: Spring Semester 2020-2021, 4.0h. course (weekly average)
  •  sessions
  • site web du cours course website
  • Related programmes:
    Master of Science (MSc) in Actuarial Science

    Master of Science (MSc) in Actuarial Science

    Master of Science (MSc) in Economics

    Master of Science (MSc) in Finance, Orientation Asset and Risk Management

    Master of Science (MSc) in Finance, Orientation Corporate Finance

    Master of Science (MSc) in Finance : Financial Entrepreneurship and Data Science

    Maîtrise universitaire ès Sciences en management, Orientation Behaviour, Economics and Evolution

    Master of Science (MSc) in Management, Orientation Marketing

    Master of Science (MSc) in Management, Orientation Business Analytics

    Master of Science (MSc) in Management, Orientation Strategy, Organization and Leadership
  • Permalink:




This is a fast-paced introductory course to the Python and C++ programming languages. Moreover, it will cover topics from parallel computing, high-performance computing, and cloud computing.

The course is intended for those with a relatively little programming background, though prior programming experience will make it easier, and those with previous experience will still learn specific constructs and concepts.

By the end of this course, you should be able to:

a) Understand and use the basic programming constructs of Python and C++.

b) Manipulate various data types, such as arrays, strings, and pointers).

c) Isolate and fix common errors in Python/C++ programs.

d) Use memory appropriately, including proper allocation/deallocation procedures.

e) Apply object-oriented approaches to software problems in Python and C++.

f) Write small-scale Python C++ programs using the above skills.

g) Understand algorithmic complexity.

i) Understand how to accelerate software by means of parallel computation.

j) Deploy software on cloud infrastructure.

In summary, the goal of this course is to provide students with the skills and confidence in computational problem-solving.


- Basic Programming concepts in Python and C++.

- Differences of interpreted versus compiled languages.

- Recursions, List, dictionaries.

- Program control flow, exception handling, software debugging.

- Software management and unit testing.

- Variables, scopes, functions, argument passing, structures, file I/O.

- Object-oriented programming, classes, inheritance, polymorphism.

- multithreading, multiprocessing, semaphores, locks, inter-process communication, pipes.

- Performance, Virtualization.

- MPI, OpenMP, Cuda, OpenACC

- Libraries for scientific computing


John V. Guttag, Introduction to Computation and Programming Using Python, Revised And Expanded Edition,

Hans Petter Langtangen, A Primer on Scientific Programming with Python,

Bjarne Stroustrup, Programming: Principles and Practice Using C++,

Stephen Prata, C++ Primer Plus,


No strict pre-requirement is necessary apart from a personal interest in computing and the basic knowledge of mathematics delivered in the bachelor programme. Students are encouraged to have a strong interest in computationally solve complex problems.

This FAST-PACED course will consist of both lectures, software tutorials, and exercises. For the tutorials and exercises, you will need to bring a laptop computer to each class. If you do not have a laptop computer, you can still follow the class but please contact the professor to help you find a solution for effective participation in the practical hands-on exercises.


First attempt

Without exam (cf. terms)  

There will be two graded home-take exams (24h time to solve it; each take-home exam is counting for 25% of the final grade, totaling in 50% of the final grade) and a term paper of about 10 pages length that needs to be presented in class (the term paper and the presentation together account for the remaining 50% of the grade).

We will award the grades based on whether problem set grades are generally on par with the class average and whether the final project and presentation demonstrate an understanding of the material. There will be no written exams.


Without exam (cf. terms)  

Following HEC guidelines, we allow a second attempt to any or all of the partial grades with a result below 4.0 if and only if your overall grade is below 4.0. This means that, for example, if your project received a grade of 4.0 and both your take-home exams a grade of 3.5, you have the choice to redo one or both take-home exams to try to move the average above the minimum grade.
If you received a grade below 4.0 for your project and choose to redo it, you will also have to present said project during the summer.
You will be granted one day to complete and hand-in the retake of the take-home exams (non-cumulative, if you redo to take-home exams, you still have one week). Two weeks will be given to redo the project and present the results from a date agreed upon onward.

As with the regular evaluation, we will award the grades based on whether the home-take exam grades are generally on par with the class average and whether the final project demonstrates an understanding of the material.

[» go back]           [» courses list]

Internef - CH-1015 Lausanne - Suisse  -   Tél. +41 21 692 33 00  -   Fax +41 21 692 33 05
Swiss University