NBIA06004U Linux and Python Programming

Volume 2013/2014
Education
MSc Programme in Bioinformatics
MSc Programme in Biology - Biotechnology
Content
a) Unix/Linux: basic navigation, pipes, configuring the shell, standard unix tools, networking, process control.
b) Programming: programming basics, data types, object oriented programming, regular expressions, recursive data types/functions, computational complexity, basic algorithms for searching and sorting
Learning Outcome

Knowledge:
Unix/Linux: basic navigation, pipes, configuring the shell, standard unix tools, networking, process control.
Programming: programming basics, data types, object oriented programming, regular expressions, recursive data types/functions, computational
complexity, basic algorithms for searching and sorting.


Skills:
The student can use a Unix/Linux environment, including the use of basic navigation, pipes, configuring the shell, standard unix tools, networking, process control.
The student should master everyday tasks on a Unix/Linux system. This involves copying/moving files, understanding the directory structure,
starting and killing processes, using other Linux/Unix systems through remote login, and the ability to write pipelines involving several Unix
commands.
The student can solve small to medium sized programming tasks in Python.
The student can solve programming tasks related to life sciences and bioinformatics in Python.
The student can produce well-written, well-structured, well-commented object oriented code in Python.

Competencies:
The student understands the Unix/Linux environment, and knows which Unix/Linux software tools to apply for small tasks.
The student is aware of the importance and masters the practice of writing well-structured and maintainable software in Python.
The student:

  • understands the various data-types in Python and knows how to use them for specific programming goals
  • has detailed knowledge of conditionals and loops, and is able to explain how loops relate to the complexity of a program.
  • has a clear understanding of the concepts of function and module, and how these tools should be used to structure code.
  • has a good overview of Object Oriented programming, and the appropriate use of classes and objects.
  • has a clear understanding of regular expressions, and their role in pattern matching.
  • has an understanding of how to handle errors in a program.
  • has the ability to find and understand online information about external Python modules, and use this to solve a specified task.
See Absalon.
MSc students and BSC students in their 3rd year.
Lectures and exercises mixed (6-9 hours per week)
Participants are expected to bring a laptop equipped with a network card to class (contact the teacher if not possible).
  • Category
  • Hours
  • Exam
  • 25
  • Guidance
  • 7
  • Lectures
  • 21
  • Practical exercises
  • 21
  • Preparation
  • 125
  • Project work
  • 7
  • Total
  • 206
Credit
7,5 ECTS
Type of assessment
Written assignment, 5 days
---
Exam registration requirements
Attendance of lectures is mandatory in order to qualify to participate in the final exam (at least 80% attendance).
Marking scale
7-point grading scale
Censorship form
No external censorship
One internal examiner
Criteria for exam assesment
The exam is a 5 day take home exam. The students hand in a written report with attached code. The assessment is based on the report and the attached code. Criteria include quality of the code (overall structure, quality, presence of suitable comments), and the  correctness, relevance (with respect to the exam questions) and coherence of the report. The level of knowledge displayed should reflect what is outlined in "Learning outcome".