Informatics 2

lfsab1402  2017-2018  Louvain-la-Neuve

Informatics 2
5 credits
30.0 h + 30.0 h
Q1
Teacher(s)
Van Roy Peter;
Language
French
Prerequisites
LFSAB1401 or LSINF1101 or equivalent course

The prerequisite(s) for this Teaching Unit (Unité d’enseignement – UE) for the programmes/courses that offer this Teaching Unit are specified at the end of this sheet.
Main themes
The principal themes covered by this course are:
  • Techniques for deriving the computational complexity of an algorithm
  • Techniques for reasoning about programs
  • Object-oriented modeling
  • Linear and tree-like data structures
  • Recursive algorithms
  • Implementation in high level programming language of medium-sized programs
  • Methods for testing and validating programs
Aims

At the end of this learning unit, the student is able to :

1

Contribution of the course to the program objectives
Regarding the learning outcomes of the program of Bachelor in Engineering, this course contributes to the development and the acquisition of the following learning outcomes:

  • LO 1.1, 1.2
  • LO 2.3, 2.4, 2.5, 2.6, 2.7
  • LO 4.2, 4.3, 4.4

Given the learning outcomes of the "Bachelor in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • S1.I2., S1.I3, S1.I5
  • S2.2., S2.3, S2.4
  • S5.3, S5.4., S5.5.

Specific learning outcomes of the course
More precisely, at the end of the course the students will be able to

  • make a choice between several data representations and algorithms to process them,
  • reason on program fragments: algorithmic complexity and efficiency of the programs that implement them, reasoning with recursion,
  • apply the principles of object-oriented modeling,
  • design and apply methods for program testing.

Students will have developed skills and operational methodology. In particular, they have developed their ability to:

  • analyze a problem of medium-sized to provide an IT solution and implement it in a high level programming language.
 

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
Content
Data abstraction
Linear data abstractions (stacks, queues, lists, etc.) and their applications
Techniques for representing linear data abstractions
Object-oriented modeling (inheritance, composition, and reuse)
Preconditions, postconditions, invariants
Reasoning techniques (deduction rules, termination proofs, ...)
Basics of computational complexity
Derivation of the temporal complexity of an algorithm
Derivation of the spatial complexity of a data structure
Recursive formulation of a solution and recursive algorithms
Tree-like data abstractions (binary trees) and their applications
Techniques for representing tree-like data abstractions
Quantified measurements of program efficiency
Design and implementation of methods for testing and validating programs
Teaching methods
The chosen teaching method relies on active student participation in their own learning process. The specific modalities of the active learning approach used in the course are left to the initiative of the course teachers, within the framework of the pedagogical choices made by EPL.
Evaluation methods
The evaluation has 2 components: an intermediary evaluation during the semester and a final exam at the end of the semester (written exam). The final mark is a combination of the scores in these two evaluations
Bibliography
Dossiers de travail sur les différentes parties du cours (version disponible sur le site, et version papier)
Peter Van Roy et Seif Haridi, PROGRAMMATION: Concepts, techniques et modèles, Dunod, 2007
Peter Van Roy et Seif Haridi, Concepts, Techniques, and Models of Computer Programming, MIT press, 2004
Faculty or entity
BTCI


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Aims
Bachelor in Engineering

Bachelor in Computer Science

Minor in Computer Sciences