LO27 – Algorithmics and C programming Language
Level: Second-year students, undergraduates.
The general purpose of this course is to supply the student with a general knowledge of Algorithmics and Programming Process. Algorithmics deals with the design, evaluation and optimization of calculation and problem-solving methods in mathematics and computer science. Programming is more concerned with aspects related to the creation, development, reusability, maintenance, expressiveness and readability of programs. These two disciplines overlap and complement each other. An algorithm solves a problem, a program implements an algorithm.
- Design and Programming Process;
- C Programming Language;
- Modularity and sub-programs;
- Pointers and Linked Lists;
- Major data structures in algorithmics (lists, trees);
- Introduction to Compilation Process and Graph Theory.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Introduction to Algorithms. Third Edition , MIT Press, 2009.
- Gilles Brassard and Paul Bratley. Fundamentals of Algorithms. Prentice Hall, 1996.
- Brian W. Kernighan and Dennis Ritchie. C Programming Language (ANSI C). Second editon, Prentice Hall, 1988.
- K. N. King. C Programming: A Modern Approach. 2nd Edition, W. W. Norton & Company, 2008.
- Michel Gondran et Michel Minoux. Graphes et algorithmes. Tec & Doc Lavoisier, 2009.
- Shimon Even. Graph Algorithms. Computer Science Press, 1979.
Content and Resources
- Chapter 1: Programming Process — Slides
- Chapter 2: Notion of Type — Slides
- Chapter 3: Sub-programs — Slides
- Chapter 4: Pointer Type — Slides
- Chapter 5: Abstract Data Type : List — Slides
- Chapter 6: Recursivity — Slides
- Chapter 7: Abstract Data Type : Binary Tree
- Chapter 8: Introduction to Stacks, Queues and N-ary Trees
- Chapter 9: Summary and Methodological Guidelines
- Chapter 10: Introduction to the Compilation Process
- Chapter 11: Introduction to the Graph Theory
- Additional Content: Pointers on Function
This section will be updated during the semester.