Practical Introduction to Programming for Scientists

Spring 2014

Mondays & Fridays, 9am - 10:30 N315

Important Instructions for Class Projects

If you believe you will need an exception to something below, please ask by next Friday (the final lecture !)

For your class presentation, your first slide should have:

Please follow these instructions exactly:

Your grade will be a combination of your presentation and your submitted project, and will count for 1/2 of your grade.

Examples of past class projects


Since some of you don't have Blackboard access, this Wiki page will host all class material, including:


Lecture

Notes

Video

Homework

Extra Practice

1 - Introduction

lecture_1.pdf
terminal_1.txt

Lecture Video

1. Fill out and email this form: Click Me
2. Get Python working on your computer

2 - Program Flow

lecture_2.pdf
terminal_2.txt

Lecture Video

homework_2.pdf

Data_Types.pdf - Data type reference pages !
extra_practice2.pdf

3 - Writing Programs

lecture_3.pdf

Lecture Video

homework_3.pdf
translate.py

extra_practice3.pdf

4 - Standard Libraries and Biopython

lecture_4.pdf

Lecture Video

homework_4.pdf

extra_practice4.pdf

5 - Numerical Computing, NumPy & SciPy

lecture_5.pdf

Lecture Video

homework_5.pdf
ctfplot.csv
singleplot.csv

extra_practice5.pdf

6 - Debugging and Profiling

lecture_6.pdf

Lecture Video

homework_6.pdf
histdata1.txt
histdata2.txt

7 - WWW, XML and Networking

lecture_7.pdf
terminal_7.txt

Lecture Video

homework_7.pdf

8 - Simple GUI programming

lecture_8.pdf

Lecture Video

homework_8.pdf

9 - Image Processing & Data Persistence

lecture_9.pdf

Lecture Video

10 - Regular Expressions, Parsing, Javascript

lecture_10.pdf

Lecture Video

ecoli_k12.txt

11 - OOP & Databases

lecture_11.pdf

Lecture Video


Introduction to programming book draft - Ludtke_book_draft_2014_01.pdf I'm making the entire current text of my book draft available to those in the class. It is very far from complete. Since this website is publicly accessible, and I do intend to eventually finish the book, it is password protected. I provided the password in-class, and I ask that you not circulate it outside the class. Thanks.

Auditors are welcome, but if possible (all students, and some others) please formally audit the class, rather than just showing up. 1) this means you have at least a small commitment to actually attend and 2) if you don't formally audit, the GS has no record of your interest and they may give me a very small room to teach in next time.

Homework will be assigned each class, at least for the first 2/3 of the term, and is due via email to sludtke@bcm.edu , before the beginning of the following lecture. We will go over solutions to each homework assignment in-class. Since the class is offered for credit, homework will be graded, but on a very lenient scale:

  1. Homework turned in, something attempted, but not functional
  2. A good effort, but with major flaws
  3. Largely correct solution, but with some flaws
  4. Program does what it should, with minimal flaws

This class attracts people with widely varying backgrounds and skill levels. Since the course is supposed to be accessible to people with little to no programming experience, the bar for achieving an acceptable grade (B) in the class is set fairly low. If you make a reasonable attempt at all of the homework assignments, even if not completely successful, and complete a class project of some sort, you can expect to get at least a B in the class. This does not mean you can slip through without making an effort at all. Particularly if you have no programming experience at all, the class WILL take a significant effort on your part. Those who don't make a reasonable attempt at virtually every assignment may not achieve a B. Turning in something incomplete is better than turning in nothing.

There will be a class project in lieu of a final exam. Each person will, over the course of the term, write a program, and briefly present it at a special class at the end of the term. The sole requirements for the program are: 1) it must do something useful not easily completed with existing tools 2) not be completely trivial.


LectureVideo/IntroProgramming14 (last edited 2014-02-14 18:29:05 by SteveLudtke)