Course Information:
Course Description: A practical introduction to programming for students with little or no prior programming experience. Extensive programming assignments will illustrate programming concepts, languages, and tools. Programming assignments will generally be based on analytical tasks that might be faced by scientists and will typically include parsing, statistical analysis, simulation, and optimization. Principles of good software engineering will also be stressed. No prior programming experience is assumed, and no biology background is needed. Analytical skills and mathematical maturity are required.
Instructor: Carl Kingsford
Associate Professor, Computational Biology Department,
School of Computer Science, Carnegie Mellon University.
carlk@cs.cmu.edu
Office: GHC 7415
Contact information for TAs and graders: Will appear on Piazza
To contact the course staff: use the Piazza discussion board to ask technical questions.
Estimated Coursework: Coursework will consist of 10-12 programming assignments, 2 midterms, some quizes and other homework assignments, and a final.
Announcements & Assignments
- We will use Piazza for discussion and for posting announcements, lecture notes, and handouts.
- We will use Autolab to post and grade your programming assignments.
- The course syllabus is here.
Homework Assignments
Lecture Notes (2015)
- Introduction
- Computer Architecture
- Variables
- Types
- If statements and loops
- Coding Style
- Arrays
- Lists
- Example Program: Lindenmayer Systems
- Maps
- Structures
- Pointers
- Example Problem: Simulating Ribosomes
- Object-oriented design
- Interfaces
- Sequence Alignment Algorithms
- Java
- The Processing Programming Language
- The Halting Problem
- Loose Ends
Lecture Slides (2014)
- Introduction
- Functions
- Conditionals and Loops
- Types
- More Examples
- Arrays
- Slices
- Stacks and Queues
- Maps
- Structures
- Example Program: Lindenmayer Systems
- Pointers
- Object-oriented design
- Go Summary
- Interfaces
- Sorting Algorithms
- Binary Search Trees
- Computer Architecture
- Turing Machines
- Python
Frequently asked questions
The following policies of 15-110 also apply to this class. This text is quoted from the 15-110 website (see 15-110):""
- Some of my grades are missing on Autolab. What do I need to do?
First, contact your TA and ask why all or some grades are missing. Next, if the issue is not resolved within a day or two, send an e-mail to the instructors (copy your TA) detailing which grades are missing and your lab section.- I must be out of town for university related event (e.g. member of a team). What should I do about my assignments?
If you have an official excuse we will make special arrangements for you to submit the assignment, please contact the instructors.- I am out of town attending a family/important event . How can I submit my assignments due for the week?
The programming assignment must be submitted online using Autolab if the submission link is active. Otherwise, you should alert the instructors and your TA that the link is not active and that you need to submit your work. The written assignment must be scanned and sent as an attachment to your TA before the due date. However, we can only allow you to do this one time during the semester.- I missed the in class exam because I fell sick. What should I do?
You must immediately seek medical treatment and receive an official medical excuse. You must also contact the instructors prior to the exam or as soon as possible. If you can produce that [documentation] we can make arrangements to give you a makeup test. Otherwise, we will be unable to make any exceptions.- I am failing the course. Is there any extra work I can do to get a passing grade?
Unfortunately, in a large class like ours, we cannot make exceptions. The best way to avoid this situation is to talk to one of the instructors as soon as possible to find out what you need to do. Do not wait until the last few weeks of classes to discuss your performance.