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 2017, sessions run from 2.15-5.15pm on Mondays and Wednesdays.

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 [AM]
UDACITY lecture
Notes on unit testing in Perl from James Heald (2013)
Project work
6 8/3 Approaches to debugging [AM]
UDACITY lecture
Project work
7 13/3 Project progress discussion [AM/AS] Project work.
8 15/3 Revision control and bug tracking [JH]
Slides from 2016
Quick Git Intro
Some useful BASH shell scripts that ease some complex Git tasks
Source Control HOWTO
Wikipedia: Revision Control
Wikipedia: List of revision control software
Wikipedia: Software versioning
Links from David Perez-Suarez
https://try.github.io
http://learngitbranching.js.org/?demo
https://www.codecademy.com/learn/learn-git
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 2nd May 2017.

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