MSc Bioinformatics and Systems Biology
Year of entry: 2018
Course unit details:
|Unit level||FHEQ level 7 – master's degree or fourth year of an integrated master's degree|
|Teaching period(s)||Semester 1|
|Offered by||School of Biological Sciences|
|Available as a free choice unit?||No|
This unit aims to introduce basic programming skills to the non-expert, including the unix environment, command line driven computing, and the Python and Java programming languages. Using an online environment, accessible directly from any browser, we will introduce the basics of Python, which is a powerful scripting language that is now ubiquitous throughout bioinformatics and scientific computing. You will test your developing skills on an assessed project that aims to develop a “pipeline” of simple Python programs to address a particular problem in genomics/proteomics. In the second half of the unit, you will be introduced to the Java programming language and more formal object-orientation. This will be assessed via a second project that you will complete individually. Labs are coupled to all the lectures where you will be able to test out your new skills, tackle exercises, and work on your project code where demonstrators and lecturers are able to help you design and debug your code.
This unit aims to:
- develop relevant IT skills for bioinformatics, including the unix environment
- introduce both Python and Java programming languages
- develop skills in writing programs to solve biological data handling problems, both as individuals, and as a group
Students will become familiar with use of a range of programming skills useful for writing bioinformatics software and developing biological data analysis solutions in Python and Java.
They will gain experience of writing software for individual tasks, and working in small groups to link together programs to form an analysis pipeline.
Students will be aware of issues of usability and will know how to deliver data and tools.
Introduction to CoCalc as an online learning environment
Introduction to the unix environment and command line driven computing, including basic commands for files, folders and management, pipes and redirection.
Introduction to the Python programming language. This will cover language syntax essentials, variables, conditional and loops, file input and output, python functions and regular expressions, and modules. All will be illustrated with examples, mostly centred on biological data types.
Python program development and pipelines to solve a challenge in data analysis involving genomic and proteomic data. This will involve development of individual standalone programs, that can also be run as a pipeline for each group. Code, coupled with a short group report are assessed as Project 1.
Introduction to Eclipse and an IDE for development in the Java programming language. This will cover syntax essentials, variables, conditional and loops, classes and object-orientation, exception handling, file input and output, inheritance, data structures, graphical user interfaces.
The Java component is assessed via a second assessed project, which is completed individually.
Labs are coupled to all the lectures where you will be able to test out your new skills, tackle exercises, and work on your project code where demonstrators and lecturers are able to help you design and debug your code
Teaching and learning methods
- Lectures: 12 hours
- Practicals: 22 hours
- Project work: Two programming projects will be completed in a period of approximately 8 weeks during Semester 1, in the practical classes and in the students’ own time.
- Group/team working
- As part of one project, the students will work in groups to write a series of computer programmes, ensuring that the inputs/outputs of each programme talk to each other and that the final step produces results that address the overall question.
- Problem solving
- The first project will ask the students to solve a problem in genomics/proteomics by developing a ¿pipeline¿ of simple Python programmes.
- Written communication
- Students will complete two written projects. For one of the projects, students will be asked to provide a user guide for a computer programme.
Two Project reports, software and demonstration of software resulting from the second project.
50% per project.
Project 1 is split 80:20 for individual vs. group work
Detailed written feedback on projects and reports is provided for each student and group, as well as verbal feedback during labs on scripts and programs as they are written. Students are also provided with optional introductory exercises for Unix and Python and again, direct one-to-one feedback is available for any students attempting these.
- Learning Python, Second Edition, Lutz and Ascher. O’Reilly Media ISBN: 978-1-4493-5573-9 | ISBN 10: 1-4493-5573-0 - Reference
- Python for Biologists: A complete programming course for beginners. Martin Jones. ISBN-10: 1492346136 - ISBN-13: 978-1492346135 - Reference – better for complete beginners.
- Java Illuminated: An Active Learning Approach. Julie Anderson, Hervé Franceschi, Jones & Bartlett Learning, Third Edition, 2011. - Reference
|Independent study hours|
|Simon Hubbard||Unit coordinator|