Learning outcomes

At the end of this course, the student will master the C language and will be able to

  •     build complex programs requiring to master advanced algorithms and programming mechanisms
  •     to design a software architecture, based on different components
  •     to specify these components
  •     to conceive algorithms from the specifications
  •    to  derive effecient programs from the algorithms.


It should be noted that although the course uses the C language, the vast majority of the learning outcomes apply to any imperative language.

Moreover, during the course, the student will be made aware of the parsimonious use of computer resources, whether in terms of computing time, memory size, code size, software use or even in software maintenance costs, and, as a result, will be made aware of sustainable development in an IT context.



 

Goals

Complete the study of imperative languages, started in the course SINF B102, and learn a rigorous method of constructing programs.

Content

(i) The software crisis (ii) Specification (iii) Algorithms: proof techniques and contruction heuristics (iv) Programs: tests, study of C and of advanced imperative topics

Teaching methods

The course is delivered as a set of ex-cathedra lessons coupled to praticals.

Assessment method

Student assessment is based on coursework completed during the semester and a written examination. A resit assignment is also scheduled for the second semester to improve the practical mark.

Language of instruction

French
Training Block Credits Mandatory
Bachelor in Computer Science 2 5 Yes