The « B103B Programmation » activity, taught to first year bachelor students in engineering, the « B201A Concepts informatiques », taught to second year bachelor students in engineering and the « B216A Développement informatique » activity, taught to students in second year of bachelor in electronics and computer science engineering at the ECAM Brussels Engineering School (ECAM), is about Python programming. In addition to the programming language, the course introduces to computer science concepts such as the file system, the operation of internet, the web development, the project management, the artificial intelligence and the manipulation of documents.

I started to give this course in 2014 with my colleague Quentin Lurkin, until 2017, that is for four years. Since 2018, I still manage a few laboratory sessions, for the second time. The course is taught in French, but all the material is available in English and in French.

Documents

  • General information about the course
  • Grid of skills to acquire

Theory

B103B Programmation

  • Session 1: Introduction to Python Programming
  • Session 2: Flow Control
  • Session 3: String and Function
  • Session 4: Function and List
  • Session 5: Abstract Data Type and Algorithm

B201A Concepts informatiques

  • Session 1: Set, Dictionary and Database
  • Session 2: Tuple and Object
  • Session 3: Class and Object
  • Session 4: Graphical Interface and Events
  • Session 5: Error Handling and Exception Mechanism
  • Session 6: Reading and Writing Files
  • Session 7: Web Langages: HTML, CSS and JavaScript
  • Session 8: How does the Internet Work?
  • Session 9: Web Development with Python
  • Session 10: Code Quality and Coding Convention

B216A Développement informatique

  • Session 1: Project Management, Versioning, Debugging, Testing and Profiling
  • Session 2: String and Regular Expression
  • Session 3: Network Programming
  • Session 4: Concurrent Programming
  • Session 5: Functional Programming, Decorator and Generator
  • Session 6: Asynchronous Programming and Coroutine
  • Session 7: Manipulation of CSV, XML, PDF... Documents
  • Session 8: Algorithmic I: Recursion and Tree
  • Session 9: Algorithmic II : Search Techniques in Artificial Intelligence
  • Session 10: Effective Programming and Pythonic Style

Practice

  • Work: Creating a website with CherryPy
  • Work: Creating a game with a graphical user interface with Kivy
  • Work: Creating an artificial intelligence for a board game

Resources

Official book

  • Sébastien Combéfis and Quentin Lurkin. (2016). Apprendre Python et s'initier à la programmation. UKO Publication. (ISBN : 978-1-326-76710-5)
  • Sébastien Combéfis. (to be published). Python avancé : Techniques de programmation. UKO Publication.

Reference books

  • Mark Summerfield. (2009). Programming in Python 3: A Complete Introduction to the Python Language (2ème édition). Addison-Wesley. (ISBN : 978-0-321-68056-3)
  • Gérard Swinnen. (2012). Apprendre à programmer avec Python 3 (3ème édition). Eyrolles. (ISBN : 978-2-212-13434-6)

Other books

  • Eric S. Roberts. (1986). Thinking Recursively. John Wiley & Sons. (ISBN : 978-0-471-81652-2)
  • Brett Slatkin. (2015). Effective Python: 59 Specific Ways to Write Better Python. Addison-Wesley. (ISBN : 978-0-134-03428-7)

Online resources