What Additional Computer Science Courses Should I Do As A Bioinformatician
7
6
Entering edit mode
10.0 years ago
riannefijten ▴ 60

I am a Life science master student and want to pursue a career in Bioinformatics. I'm going to Imperial College for an 8 month internship and would like to do some extra courses in Computer Science. I got the tip to follow some modules from the MEng Computing at Imperial, and I'm trying to figure out which ones would work best for me. So, I'm looking for some advice on which courses might help me become a better bioinformatician. Some things I think might be good are courses in databases, computer architecture and hardware programming.

The modules can be found on the following website: http://www3.imperial.ac.uk/computing/teaching/ug/mengcomp

bioinformatics • 2.8k views
ADD COMMENT
0
Entering edit mode

I moved this question to 'Forum' it seems like it would be a better fit...?

ADD REPLY
0
Entering edit mode

The Forum is a bit of a step child right now - does not have a dedicated Tab so for now we should not use it until that gets sorted out.

ADD REPLY
0
Entering edit mode

Ok. Will do. Thanks.

ADD REPLY
4
Entering edit mode
10.0 years ago
Sulfolobus ▴ 140

From a quick look:

341 is a good choice ( http://www3.imperial.ac.uk/computing/teaching/courses/341 ) depending on how much bioinformatics you have already done - you'll find the biology side quite repetitive probably but it will open up thinking about a lot of the problems you will face as a bioinformatician from a computer science perspective (and opens your eyes to possible disconnects between coming to a interdisciplinary field from different backgrounds) and looks like it would serve as a nice introduction to a bunch of the algorithms that are part and parcel of bioinformatics.

312 ( http://www3.imperial.ac.uk/computing/teaching/courses/312 ) - databases are very handy to be adept at handling

275 ( http://www3.imperial.ac.uk/computing/teaching/courses/275 ) - C++ will be more useful to you than the functional programming based Haskell courses especially if you pick up a scripting language yourself (perl/python).

493 ( http://www3.imperial.ac.uk/computing/teaching/courses/493 ) - looks like it covers a nice range of probabilistic modelling and network analysis (and hey even the coursework is biology related!)

Other recommendations really depend on how good a mathematical grounding you have - less so check out the earlier maths based courses, more so try your hand at some of the later algorithm and computation based courses.

I also really recommend trying your hand at the problems found on http://rosalind.info/problems/as-table/ - doing them will help you learn a scripting language (i.e. python) and will start you thinking about bioinformatics problems and in particular algorithms you need to solve them.

(Finally and in some ways the most important thing I can tell you - the best pubs in the area around Imperial are the Queen's Arms and the Anglesey Arms!)

ADD COMMENT
0
Entering edit mode

Jeez that 341 course looks totally graph-centric. kind of presumptuous to call it "Introduction to Bioinformatics". Would be nice if she threw sequence alignment a bone, or at least mentioned DNA.

ADD REPLY
0
Entering edit mode

Thanks for the pubs:) And thanks for the elaborate comment! It really helps!:)

ADD REPLY
4
Entering edit mode
10.0 years ago
Ketil 4.1k

What kind of bioinformatician do you want to be? Do you want to just get the analyses done? Learn scripting tools, R, visualization and statistics. Do you want to develop new methods? Learn algorithms, data structures and computer science. Do you want to write new tools? Learn a programming language and its supporting tools well, and learn a couple more languages. Do you want to support biologists? Learn server configuration, web technologies and databases.

And no, these are not mutually exclusive choices :-)

Or just choose what interests you the most. If you want to excel, you should desire to learn, not just "pick someting" for its usefulness. (But if you don't have a clear desire, don't worry - no knowledge is wasted).

ADD COMMENT
3
Entering edit mode
10.0 years ago

Most bioformaticians routinely need to develop various applications of ever increasing complexity. I think good software engineering would help with that. That means courses from your list titled:

  1. Software Engineering - Algorithms
  2. Software Engineering - Design I
  3. Software Engineering Practice
ADD COMMENT
2
Entering edit mode
10.0 years ago

In my opinion, it's all about algorithms. It's important to try to 'think' like a computer and apply that mode of thinking to your problems. Learning an algorithmic way of thinking about problems will help you greatly in science also in terms of breaking down your ideas and planning experiments.

Practically, learn how to use the terminal and the basic syntax of a scripting language like python or perl so you can implement your algorithmic way of thinking. Try to learn the concept of programming rather than just syntax. If you understand the conventions and logic behind programming, it will be extremely easy to pick up new languages.

ADD COMMENT
2
Entering edit mode
10.0 years ago
tiagoantao ▴ 690

I second Istvan's approach, but I would make changes to the courses.

First you will probably need to learn basic programming. "Programming I" has a fantastic syllabus (in line with Imperial's great reputation in the field): that is exactly what you want from an introductory programming course: not something "practical"/"obvious", but something that structures your thought in a correct way. 120_1 has a really fantastic reading list. Learning a new programming language is SIMPLE as long as you structure your reasoning correctly. Haskell and Prolog are the best for that! After you suffer them you will get any of the others easily. Also, it seems to be (very correctly) a pre-requisite to all others.

Programming II might be a good complement to that. Clearly a more standard approach (OO/Java).

After these two courses above you will pick Python/C++/Perl/whatever in no time. It does not work the other way around. Haskell and Prolog really bend your mind.

Software Engineering - Algorithms would be the next one.

In parallel you might want to consider Databases I.

These would be my four suggestions.

Remember: more important then learning the fashionable skill of the day is structuring your thought correctly. It is a steeper learning curve, but it will payoff.

In any case, kudos to Imperial for such a great MEng structure.

ADD COMMENT
1
Entering edit mode
10.0 years ago

A course that uses programming, but is not programming centric. For me applied problems are the best learning tools. Statistic courses usually have a computational aspect. Finding a good course is difficult. I dropped all the programming classes I signed up for. I learned programming by taking courses that required me to do simulations.

ADD COMMENT
1
Entering edit mode
10.0 years ago

Algorithm design and Data Mining are the one that will help you the most for bioinformatics. I also started as a biologist and had the same doubt but these two courses helped me a lot ( I assume that you have intermediate coding skills).

ADD COMMENT

Login before adding your answer.

Traffic: 1748 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6