MSc Bioinformatics

Biocomputing II

The main aim of this module is to give you training in good programming practice. It was completely revised in Spring 2013. Biocomputing II builds on your programming knowledge from Biocomputing I to help you build readable, maintainable code, especially in the context of large complex programming projects involving multiple programmers.

The course begins with three sessions that give you the knowledge to build high-quality web sites and to interact with those web sites from your programs - both as servers that site behind web sites and as clients that can make use of web sites to process data. We will start by creating web pages from scratch that match modern standards then look at how to format them and interact with scripts running on the web server. This is an essential skill in Bioinformatics where many resources are web-based. You will learn about 'web services' to access programs and data on the web from your programs.

The remaining sessions will teach you concepts ranging from debugging and revision control through object orientated programming to software testing. The aim is for many of these sessions to be interactive and discussion based while the normal practical slots will be used for group-based programming projects.

The group-based project work will be assessed to award your marks for the module.

In Spring 2019, sessions run from 2-5pm on Mondays and Wednesdays .

Confidence with the command line is essential for Biocomputing II. You can run through a self-paced learning activity/tutorial if you need help. Note, however, that this tutorial is written for the BASH shell while, on hope, you use 'tcsh' (the C-shell) by default. This difference will only affect some of the advanced topics.

Session Date Lecture Practical
1 25/2 Writing your first web pages - HTML and CSS [AM] Writing your first web pages - HTML and CSS
2 27/2 Writing CGI scripts [AM] Writing CGI scripts
3 4/3 Web Services and Remote Procedure Calling [AM] Web Services and Remote Procedure Calling
4 6/3 Collaborative programming and APIs; Introduction to the project [AM/AS] Project work
5 11/3 Revision control and bug tracking [Video available] [AM] Project work
6 13/3 Software testing and test suites [Video available] [AM]
UDACITY lecture
Notes on unit testing in Perl from James Heald (2013)
Project work
7 28/3 Project progress discussion [AM/AS] Project work.
8 20/3 Approaches to debugging [Video available] [AM]
UDACITY lecture
Project work
9 25/3 An introduction to JavaScript and AJAX [AM] Project work
10 27/3 Approaches to programming - group discussion [Staff and group members]
Tjelvar Olsson's book on Python
Project work

Hand-in information

Hand-in date to be confirmed.

See the Submission page on the Project work link for information on precisely how we expect you to submit your work.