• Understand the foundations of algorithmic and data structures.
• Know how to perform a top-down analysis of problems and design modular solutions based on the main concepts of object oriented programming.
• Master one programming language (Java).
Algorithmic is a formalism to describe complex processes. The course deals mainly with the foundations of algorithmic and the main concepts of object oriented programming. We introduce successively a top-down analysis methodology of problems, the notions of elementary actions, control structures, and modular design of programs based on object oriented programming. Various algorithmic techniques are also presented with important data structures.
The main elements are the following:
• Top-down analysis of problems,
• Definition of an algorithmic language (variables, control structures)
• Data structures (tables, lists)
• Algorithmic techniques (recursion, divide and conquer)
• Simple complexity analysis
• Object oriented programming (objects, classes, attributes, encapsulation) and a programming language (JAVA).
Continuous assessment (CC)
E1 = Final written exam from 1st exam period
E2 = Written exam from 2nd exam period
N1 = Final mark from 1st exam period
N2 = Final mark from 2nd exam period
N1 = 0,4*CC + 0,6*E1
N2 = E2
Introduction to algorithms Ed. McGraw Hill. Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST.
Foundations of Computer Science. Ed. W. H. Freeman. Alfred V. Aho, Jeffrey D. Ullman.
Initiation à l'informatique. Ed. Eyrolles. Henri-Pierre Charles
Au coeur de Java : Volume 1 - Notions fondamentales, 8ème Ed. Ed. Sun Microsystems Press. Cay S. Horstmann, Gary Cornell.
Programmation en Java. Ed. Schaum's Outlines. John R. Hubbard.
Written by Corinne Mairot