Information, Computation and Communication (ICC)

Course description

This course on Information, Computation and Communication (ICC) was introduced in September 2013. It provides an introduction to computer and communication sciences for all first year students at EPFL (except those in architecture).

After the first introductory lecture, the course is divided into three modules:

1. Computation
Which problems are solvable? Which problems are efficiently solvable? And how?

In this module, students learn the basic principles of algorithms and how to evaluate their complexity. An introduction to Turing's computability theory is presented.

2. Information and Communication
How do you convert physical signals into sequences of 0's and 1's, and reciprocally?

In this module, students learn the basic principles of signal processing, data compression, and error correction, with Shannon's entropy as a key ingredient.

3. Systems
The third module exposes students to how a computer actually works. In particular, Von Neumann's processor architecture is presented.

And the course concludes with a final lecture on security.

Pragmatics

At a practical level, this course has a coefficient 3 in first year, with 2 hours of lectures and 1 hour of exercises per week. The exercises and exams are on paper. The students also have the opportunity to implement ICC concepts in the first-year programming courses, which are taught concurrently.

Textbook (in french)

You can find more informations as well as the exercices' solution here: https://archiveweb.epfl.ch/decouvrir-le-numerique.epfl.ch/

Videos

Course Videos (in french, ©Philippe Janson)

(All video clips below are in ppsx format. Please click here for video clips in mp4 format.)

Week 1: Introductory lecture: Clip 1Clip 2Clip 3
Module 1: Computation

Week 2: Basic principles: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7

Week 3: Conception of algorithms: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7

Week 4: Computability: Clip 1Clip 2Clip 3Clip 4Clip 5

Week 5: Representation of information: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6

Module 2: Information and Communication

Week 6: Signal sampling and filtering: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6

Week 7: Signal reconstruction: Clip 1Clip 2Clip 3Clip 4Clip 5

Week 8: Entropy: Clip 1Clip 2Clip 3Clip 4Clip 5

Week 9: Data compression: Clip 1Clip 2Clip 3Clip 4

Module 3: Systems

Week 10: Processors: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7Clip 8

Week 11: Memory hierarchy: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7Clip 8Clip 9

Week 12: File systems: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6

Week 13: Networks: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7Clip 8Clip 9Clip 10

Week 14: Security: Clip 1Clip 2Clip 3Clip 4Clip 5Clip 6Clip 7Clip 8Clip 9

Exercices

Sample Exercises (in french)

(All exercises are in .pdf format)

Week 1: Introductory lecture

Module 1: Computation

Week 2: Basic principles

Week 3: Conception of algorithms

Week 4: Computability

Week 5: Representation of information

Module 2: Information and Communication

Week 6: Signal sampling and filtering

Week 7: Signal reconstruction

Week 8: Entropy

Week 9: Data compression

Module 3: Systems

Week 10: Processors

Week 11: Memory hierarchy

Week 12: File systems

Week 13: Networks

https://progmaph.epfl.ch/icc-prog.php

Course Evolution (Sept. 2018+)

Starting in September 2018, the ICC course will be merged with the concurrent programming courses, becoming a course with coefficient 6 in first year (with 3 hour of lectures and 3 hours of exercises/practice per week). The material presented in ICC will be coordinated with the programming instruction.The programming languages for this course will vary by section, in order to accommodate the needs of each field.