140.636.01 Computer Science for Bioinformatics
- 1st term
- 4 credits
- Academic Year:
- 2019 - 2020
- East Baltimore
- Class Times:
- M W F, 1:30 - 2:20pm
Students should be comfortable using a command line interface and have previous experience programming in at least one language.
Scientists in the life sciences require an appreciation, if not mastery, of three disparate fields: Statistics, Biology and Computation. Training in the latter is often subsumed in statistics and bioinformatics courses, where the emphasis is on rationale of statistical and biological thinking respectively. To fill the gap, this course covers the fundamental notions and rationale of computation at a level that is appropriate for future biomedical and life-science investigators.
Introduces the computational hardware and programming model upon which analysis tools and languages are based. Introduces and uses three main languages (Python, Perl, SQL) and their underlying rationale to develop computer science concepts such as data structures, algorithms, computational complexity, regular expressions, and knowledge representation. Draws examples and exercises from high-throughput sequence analysis, proteomics and modeling of biological systems. Reinforces key concepts through lectures with live computer demonstrations, weekly readings, and programming exercises. Has students working with a High Performance Compute Cluster and the Amazon cloud.
- Learning Objectives:
- Explain key fundamental concepts from computer science including notions of data structures, algorithms and computational complexity
- Describe programming paradigms and techniques, e.g. top-down vs bottom-up programming, procedural programming, object oriented programming, functional programming and database programming.
- Code in the Python, Perl, SQL and 'regular expression' programming languages (including the ability to use bioinformatics libraries and maintain version control).
- Represent and organize (in a scalable manner) large amounts of data from high-throughput biology experiments or other sources
- Search and use the wealth of software development resources available on the web
- Use High Performance Computing (HPC) and Cloud computing platforms and be able to describe the advantages the limitations of each.
- Methods of Assessment:
Student evaluation based on homework and a programming project that is presented in class.
- Instructor Consent:
Consent required for all students
- Consent Note:
All students should confirm with instructor that they have the necessary prerequisites to take the course.
- For consent, contact:
- Jointly Offered With: