The modules we develop are based on the following principles:
- The material has largely been developed in the form of so-called Jupyter Notebooks (see https://jupyter.org). These can be seen as interactive lecture notes that include executable Python programmes and programming assignments. Students can work through these notebooks at their own pace. The material is also available as templates and scripts to be used in Spyder and other programming environments.
- Before starting the first module, Basic Python Programming, students may do an auto-graded entrance test to determine their programming skills level. This mechanism permits students to skip the very beginning of the module and start at a later point.
- The material is very flexible, e.g. Basic Python Programming has optional material for fast students that want to learn more about the subjects covered by the module.
- Basic Python Programming also contains “extension” material for those bachelor’s programmes that need extra material, like computing with complex numbers.
- The second module we are developing, Intermediate Python Programming, consists of a number of "elementaryengineering problems" worked out in Python Notebooks, including all the Python knowledge needed to solve these problems. The bachelor courses choose which engineering problems are part of their version of the Intermediate Python Programming module (for examples see Modules).
- Each module typically (but optionally) ends with a programming project defined by the bachelor course in which the module is embedded. This is to ensure that the assignment makes sense and is relevant to the students.
- Assignments, and also programming projects, may be (optionally) auto-graded such that students get fast feedback. The team is working on more advanced ways to provide meaningful feedback. Programming projects come with or without (option) a guiding skeleton and with or without testing.