PC204 --- Course Objectives


Pharm Chem 204 is intended to introduce students not merely to the coding of computer programs, but to computational thinking, the methodology of computer programming, and the principles of good program design including modularity and encapsulation. The Python® programming language is used throughout the course for all examples and homework problem sets.

Lectures emphasize object-oriented programming concepts and the design of algorithms and related data structures. Problem decomposition and principles of software engineering are stressed throughout the course. Numerical algorithms are a relatively small part of the instruction, and mathematical sophistication is not required. Rather we promote the use of fundamental principles from computer science such as designing effective data structures for representing information and writing efficient code modules that are extensible, maintainable, and reusable. Although Python is utilized for providing examples and doing the homework assignments, the principles taught are readily applicable to other modern programming languages.

In this course you'll learn how to write simple programs using Python, a dynamic object-oriented programming language that can be used for many kinds of software development projects. It offers strong support for integration with other computer languages and tools, comes with extensive standard libraries, and the basic principles of the language can be learned in a few days. Many programmers new to Python report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code. Many computational biology applications have been developed in Python, so there's a wealth of available Python modules that you can just download and use for your own research needs.

At the end of the course students should:

Course Prerequisites

No explicit prerequisite course work is required, but students are expected to have a fundamental understanding of basic computer principles and previous experience using a personal computer.

You will need to have access to a personal computer so you can write programs and do the homework assignments and the final project. Python runs on Windows, Mac OS X, and Linux, so almost any computer will do.

In class, the instructors will be showing programing examples on a Mac laptop, working inside a Terminal window. (Terminal is a Mac OS X application.) Terminal provides command line access to the Unix operating system, which is the basis of OS X. Some of the commands we'll use are basic Unix commands, and hence it's a good idea to spend a little time before the course begins learning these commands. There are countless Unix/Linux tutorials on the web; just Google "unix tutorial". We'll briefly cover the commands we use in class, but if you're new to Unix it's best that you learn about basic Unix use on your own; you'll follow our interactive examples more easily that way.

As stated above, students will need access to a personal computer (Mac, Windows or Linux). Macs already come with Python installed, so there's nothing additional needed in order to get started. In fact, for Mac OS X users we specifically recommend that you do not install your own version of Python, since this will often conflict with Apple's installation and cause problems. On Windows-based computers, where Python is not pre-installed, you'll need to install it yourself. Students who do not have access to a personal computer on which they can install Python should read this section of the PC204 Frequently Asked Questions web page.

You'll also need to decide on what type of environment you want to do your program development in. In class we'll usually work through examples using a traditional Unix/Linux environment, but there are alternatives. In a traditional development environment the programmer uses a "plain" text editor such as Vim or Emacs to write and modify their Python programs. (Microsoft Word won't do, as it inserts all sorts of formatting and font data into your files which Python won't know what to do with.) On Linux, programs are then run from the command line via the Unix shell; the shell provides all sorts of short cuts and tools to make your life as a programmer easier. On Macs, you can either develop in the same manner as Linux using the Terminal application, or you can use the standard Python "Integrated DeveLopment Environment" (IDLE). On Windows, you can use the standard Python distribution with your favorite text editor, use IDLE, or install and use PythonWin.

Course Textbook

Title: Think Python - An Introduction to Software Design (free to download)
Author: Allen B. Downey
Publisher: Green Tea Press
Also see course materials for additional references.