
Improving water modelling efficiency with Python package development
An instructor-led online course | 7-28 November 2023
Learn how to convert your Python programming concepts into a ready-to-use Python package.
Learn how to convert your Python programming concepts into a ready-to-use Python package.
This course is right for you if:
✔️ You are a water engineer with robust Python skills, ready to expand your programming horizons
✔️ You have an idea for a Python package that could enhance your department or company’s efficiency, but are unsure of how to bring it to life
✔️ You are willing to engage in an online learning environment, commit to homework assignments and participate in constructive code reviews with your peers
Upon completion of the course, you will:
✔️ Be able to structure, refactor and package Python code effectively
✔️ Understand the concepts of Python functions, classes, modules, Git, pull requests, code reviews, types, abstraction and refactoring
✔️ Be adept at testing, auto-formatting, handling dependencies and GitHub actions, creating documentation and distributing your Python package
✔️ Have the skills and knowledge needed to convert your Python programming concepts into a ready-to-use Python package
Our Python Package Development course comprises seven modules, delivered online by our qualified trainers. We utilize a mixed-method approach that combines instructor-led sessions, quizzes, hands-on exercises, and reading materials.
Part of the online sessions is devoted to collaborative work, which revolves around the course project, a Python package for detecting anomalies in time-series data. Code reviews from peers and instructors are also a significant aspect of the learning process.
We strongly recommend dedicating at least two to three hours of self-study for each of the seven modules to gain maximum benefits.
We will be using “Practices of the Python Pro” by Hillard (2019) as our primary textbook for this course.
This online course is divided into seven 1.5-hour training sessions hosted on Tuesdays and Fridays from 08:00-09:30 UTC.
Tuesday 7 November 2023
Module 1 | Introduction and version control with Git and GitHub
Topics: Course materials and learning methodology, homework requirements, deadlines, Git, branching, GitHub platform, pull requests, code reviews
Friday 10 November 2023
Module 2 | Python functions, classes, and modules
Topics: Functions, arguments, classes, modules, dataclasses, packages
Tuesday 14 November 2023
Module 3 | Types, abstraction, and refactoring
Topics: Type hints, modular code, refactoring techniques
Friday 17 November 2023
Module 4 | Testing and auto-formatting
Topics: Unit testing, integration testing, linting, automated formatting
Tuesday 21 November 2023
Module 5 | Dependencies and GitHub actions
Topics: Requirements, versioning, continuous integration
Friday 24 November 2023
Module 6 | Documentation
Topics: Docstrings, html documentation
Tuesday 28 November 2023
Module 7 | Distributing your package
Topics: Package metadata, publishing
Henrik is a Senior Innovation Engineer with experience in biogeochemical modeling, statistical analysis, scientific programming, web development, and biogeochemical sampling. He has been involved in several international research projects as well as commercial projects related to data assimilation and marine forecasting.
PhD Utrecht University, MSc Gothenburg University
Jesper is a data & modelling specialist at DHI with a PhD background in applied mathematics, hydrodynamics and scientific computing. He has been with DHI since 2009 and has worked with data assimilation, data science, machine learning, scientific software development, marine forecasting, metocean data and wave model development.
PhD, MSc Technical University of Denmark
*Customers with an active SMA or subscription