Imperative Programming I Description

Key Elements


INFO 203


BS Mathematics





Number of Teaching Hours


Number of Tutoring Sessions


Number of Laboratory Sessions




This course aims to equip students with the basic theory and methods for writing algorithms. Among many available methods, the core of computer programming is the top down method, which provides simple tools to deal with complex problems. Structured programming methods underlying high-level languages such as C language help to clarify and organize algorithms. Our objectives can be summarized as follows: • Analyzing a problem and designing the appropriate algorithm using abstraction mechanisms • Algorithm implementation by means of a high-level programming language


ALGORITHM I. Concepts and basic elements A. Definitions and examples 1. Concept of actor 2. Initial and final state 3. Algorithm B. Particular case of algorithms: program C. Elementary actions 1. Definition 2. Examples D. Control structures 1. Sequence 2. Selection 3. Repetition E. Algorithm examples II. stepwise refinement A. top down approach 1. Definition 2. Principle of refinement B. Analogy with other domains C. Example: searching a string in another string D. Advantages and disadvantages III. Algorithm A. Description B. Algorithm language 1. Data representation a) Type: domain, operations b) Variables and constants c) expressions 2. Elementary instructions a) Affectation b) Input c) Output 3. Logic structures a) Sequence b) Selection: simple and multiple c) Repetition: Do While, Do, for 4. Algorithm structure a) Data declaration b) Algorithm body c) Examples and exercises C. Analysis of an algorithm 1. Algorithm state 2. Concept of state a) Initial, intermediate and final state 3. Array of states Programming in C language IV. Classical aspects A. Basic elements B. Declarations C. Operators D. expressions E. Instructions F. Elementary Input/Output G. Structured data 1. Arrays: one-dimensional and two-dimensional a) Declaration b) Manipulation: access an element V. Sub-programs A. Function definition 1. Function prototype 2. Body of a function B. Function call C. Passing parameters D. Local variables 1. Validity of local variables E. Global variables F. Recursivity VI. Introduction to pointers A. Pointers and addresses B. Operations on pointers C. Dynamic memory allocation D. Pointers and arrays