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 2018, sessions run from 6-9pm on Tuesdays and Thursdays.

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.

Greyed-out lines in the table below are the sessions that are likely to be affected by industrial action. Alternatives will be provided for lectures that are affected.

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

Hand-in information

The work must be submitted by 5pm on Tuesday 8th May 2017.

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