Python Programming
The “B103B – Programmation” activity is part of the “B2010 – Informatique” course taught to first year bachelor students in engineering at the ECAM Brussels Engineering School (ECAM). The “B2010 – Informatique” course is taught to second year bachelor students in engineering and the “B2160 – Projet informatique” course is taught to second year of bachelor in electronics and computer science engineering, both in the same school. All the three are about Python programming. In addition to the programming language, advanced computer science concepts are covered, such as file system manipulation, the operation of internet, web development, project management, artificial intelligence and the manipulation of documents.
Course organisation
I designed these courses in 2014 with my colleague Quentin Lurkin and was involved in some of their activities from 2014 to 2019, for six times. The activities are taught in French, but the material created for them are either in English or in French.
The courses were given in a traditional way with lecture sessions, lab sessions and small projects students had to work on.
Documents
- General information about the courses
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
This section gathers resources that have been used to create these courses. These latter can be used to learn more about Python programming.
Official books
- 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). NoSQL Distilled: Programming in Python 3: A Complete Introduction to the Python Language (2nd edition). Addison-Wesley. (ISBN: 978-0-321-68056-3)
- Gérard Swinnen. (2012). Apprendre à programmer avec Python 3 (3rd edition). 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
- The Python Standard Library documentation, Python Software Foundation, 2019.