Advanced Unix & Python for Bioinformaticians, Msc
Overall Course Objectives
The student should be able to solve major bioinformatic problems in a structured manner using Python in a Unix environment, applying advanced programming practices, proper testing methods, and collaborative version control workflows using Git to support teamwork.
See course description in Danish
Learning Objectives
- Navigate the Unix file system and perform basic text file manipulations.
- Apply advanced Unix commands and create simple bash scripts for automation.
- Utilize Git for versioning and collaboration.
- Explain and use various argument parsing methods, scope, and namespace management.
- Construct and apply advanced data structures using relations between names, references and objects.
- Explain the principles behind basic and advanced iteration, including comprehensions and generators.
- Implement new classes using magic methods, encapsulation and inheritance.
- Conduct unit testing using parameterization, fixtures and external files.
- Evaluate a program’s running time scales based on input size using the Big-O notation.
- Evaluate existing code bases, aiming to improve or extend functionality and maintainability.
- Apply strategies for using GAI to support code development while maintaining independent problem-solving and demonstrating their own understanding of underlying programming concepts.
Course Content
This course provides an introduction to Unix, which is widely used in bioinformatics. You learn basic commands, file manipulation, input / output redirection, file system structure and process manipulation. Git versioning and collaboration is applied on the Unix platform. The course builds on the existing knowledge of Python, and you learn about advanced data structures, functions, Python’s object model, classes, unit tests, and runtime evaluation. This is done under an umbrella of exercises based on bioinformatics and data analysis problems.
The exercises must be peer-evaluated. Students in groups of two will get a minor programming project during the course, possibly a project of their own design. Individual contributions to the project must be stated to facilitate individual assessment. A student will also peer-evaluate another group’s project.
Teaching Method
Lectures med weekly mandatory exercises.



