The goal of this course is to provide an overview of the tools ued to design digital systems, and to study their efficiency. For this purpose, the concepts of algorithms, data structures are introduced, while considering memory and computation costs.
This course is also an opportunity to introduce the object-oriented programming and genericity and through these notions, the design of code that can be reused. If concepts are applicable to a large number of programming languages, C + + is used as a teaching language.
This teaching is organized around the following concepts:
1 - Automate and state machines . The goal is to understand how a computer works, and how defined programming languages
2 - Algorithms, Data Structures and Complexity. The goal is to know how to design an algorithm by specifying its purpose, the actions to be taken and what is the resulting complexity. It is indissociable from the choice of correct data structures.
3 - Object-Oriented Programming. The goal is to understand the programming mode, and through the programming mode, the ability to code that is re-usable (modularity, genericity). These concepts can be applied to any program dedicated to language as matlab.
Requirements : Imperative programming (e.g., C)
Last Modification : Saturday 13 September 2014