We deliver our course through a hands-on approach focused on problem-solving. Although the materials we design are fundamental to Python, they are equally fundamental to many other programming languages. Thus, after having completed our course, we expect participants to be capable of learning other programming languages on their own. In order for them to become a self-reliant learner, we compile several problems which we use to help them build their programming confidence. We aim to create a welcoming environment, where we reward our learners for asking questions.
Our course structure is a three-week intensive workshop targeted towards participants who are undergraduates, postgraduates or faculty staff from all areas of STEM. Our aim is to teach Python programming at a beginners and/or advanced level, depending on the participants’ expertise, and we separate our participants into tracks to accommodate this.
The first week of our workshop covers all the fundamental constructs of Python, including data types, data structures, loops, decision statements, functions and file I/O. The second week covers a mix of Python libraries relevant to the participants’ area of interest, and based on request from the host University. For example, past workshops have included Numpy, Pandas and Matplotlib for data science, as well as data structures, algorithms, and object-oriented programming for software engineering. The workshop ends with week-long group projects and presentations. Participants are split into teams and they are expected to write codes to solve complex problems.
Our choice of programming language relies heavily on the fact that Python has an easy to understand syntax. Also, it is a high-level language designed with features to facilitate data analysis and visualisation, and for solving complex scientific and numerical problems.