Carnegie Mellon University

Programming for Scientists

Course Number: 02-201

Provides a practical introduction to programming for students with little or no prior programming experience who are interested in science. Fundamental scientific algorithms will be introduced, and extensive programming assignments will be based on analytical tasks that might be faced by scientists, such as parsing, simulation, and optimization. Principles of good software engineering will also be stressed. The course will introduce students to the Go programming language, an industry-supported, modern programming language, the syntax of which will be covered in depth. Other assignments will be given in other programming languages such as Python and Java to highlight the commonalities and differences between languages. No prior programming experience is assumed, and no biology background is needed. Analytical skills and mathematical maturity are required. Course not open to CS majors.


Academic Year: 2019-2020
Semester(s): Fall, Spring
Units: 10, 12
Prerequisite(s): None
Location(s): Pittsburgh



Learning Objectives

Our first goal for this course is to make you comfortable writing your own programs and have a better understanding of how computing works, at multiple levels.

Our second goal is to convince you how much fun programming is! Writing a program is like solving a sudoku puzzle — programming tests (and builds!) your powers of concentration and logical thinking. But programming is more rewarding than sudoku because it equips you with a transferable skill instead of the ability to fill in a square of numbers.

Our third goal is to help you understand some fundamental scientific (in particular, biological) algorithms on a high-level.

Finally, for students taking the graduate version of the course (02-601), we want you to gain independence to hack your own scientific problem by planning and executing a longer programming assignment of your own choice, so that you will be capable of programming independently in the future.