Programming formalisms¶
The goal of this highly-interactive 5-day course is to be able to develop academic software that you can trust to be 'good enough'. We assume you have written code 'that (sometimes) just works'.
The course follows a formal development process from start to finish, with a selection of topics and best practices we think are most important, with the goal of developing academic software that is actually good enough. The course aims to strengthen the understanding of more advanced programming concepts, ability to produce more reusable scripts through modular programming and to enable a better understanding of how to evaluate a script or programs performance.
We will cover:
- an introduction to Algorithms and Data structures
- programming Paradigms especially structured and object oriented programming
- an overview of other paradigms like functional programming.
- modular development and (code) reusability, testing and optimisation.
We will cover theory with bridging practical examples and applications to enhance the theoretical understanding of the principles.
Prerequisites: We recommend basic knowledge in the following topics.
- Git, of either
- NBIS/ELIXIR-SE Tools for Reproducible research
- or the CodeRefinery courses Introduction to version control with Git and Collaborative distributed version control.
-
We assume familiarity with python at least equivalent of the Intro to Python course or Python programming with applications to bioinformatics.
Coming course instance¶
- When: May 5-9, 9:00-16:00
- Where: Online (Zoom). The link will be sent to registered participants prior to the course.
-
Online on-boarding: TBD. Get help with setups.