Blog of Andrés Aravena

Computing in Molecular Biology and Genetics II

27 April 2015

This is the description of the second undergrad course I’m going to teach next year.


Ders Adı
Computing in Molecular Biology and Genetics II
Course Adaptation
Course Code
Course Language
Course Type
Pre-requisite Courses
Koşul Mevcut Değil
Admission Requirements
Koşul Mevcut Değil
Compulsory Attendance
Course Teacher(s)
Andres Aravena
Teach Python and BioPython to analyse, model, evaluate and predict the behaviour of genomic and molecular biology entities. The students should be able to interact with high end servers, use command line tools and be comfortable in computing environments others than Microsoft Windows.
Course Learning Outcomes
The objective of this course is no to make our students experts on computer science, but to give them the concepts and language that will allow them to collaborate in interdisciplinary groups.
Course Content (Short Description)
Software is lab equipment for the 21th century. This course teaches the concepts of Scientific Computing that allow Molecular Biologists to be comfortable working in a modern computing environment.
Teaching and Learning Methods
Exposition of theoretical aspects, followed by practical exercises by the students. Student work is encouraged.
Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M, et al. (2014) Best Practices for Scientific Computing. PLoS Biol 12(1): e1001745. doi: 10.1371/journal.pbio.1001745 Online resources on Python and BioPython
Contribution of Learning Outcomes on Program Competency
Course Material (Auxiliary Equipment, modal etc.)
Slide Presentations, Data Show, Blackboard, computer network
Continuous Improvement in the Context of the courses (questionnaires, interviews, and so on.) Front Shown Measurement and Evaluation Tools and Objectives
Quiz, Project working and homework are used effectively to improve the course. At the end of Mid-term and Final Exams we will report which are the questions with the lower number of correct answers between the students with high attendance rate. According to this results lecture notes are updated and additional homework activities are recommended.

Subject Headings (Topics)

Theory Topics

Week Weekly Contents Period
1 Introduction to Scientific Computing: Open Science. Simulation as a tool for experimental design 2
2 Structured programming. Computational thinking. Problem solving. Incremental approach. 2
3 Programming in Python: syntax, indentation rules, program structure, data structures 2
4 Interactive computing with IPython. Documenting code and data 2
5 Introduction to Object Oriented programming 2
6 Exception Handling and Test driven development 2
7 BioPython and Genomic Data Handling 2
8 Debugging. Source code version control 2
9 Accessing Web resources. REST interfaces 2
10 Describing complex pipelines. Makefiles and explicit dependence statement 2
11 Agile development best practices 2
12 Collaborative Programming and Open Source Projects 2
13 Code Optimization principles 2
14 Perspectives: High Performance Computing, Big Data, Cloud Computing 2

Practice Topics

Week Weekly Contents Period
1 Examples of scientific computing in Molecular Biology 2
2 “Scratch” as a tool for teaching basic programming 2
3 Coding simple programs in python. Getting acquainted with the language 2
4 Web notebooks using IPython 2
5 Exercises of object handling in Python 2
6 Exercises of exception handling. Design of unitary tests 2
7 Handling Fasta, Genbank and GFF files on Python 2
8 Practice on debugging erroneous code 2
9 Building simple web clients in Python 2
10 Building a pipeline to simulate a sequencing project 2
11 Practice of simple project management techniques 2
12 Usage of GitHub and other collaborative platforms 2
13 Understanding the O notation and the characteristics of each data structure 2
14 Practice of cloud computing using free online resources 2