Introduction to Programming for BMI

Instructors: Himanshu Grover

Course Website:

I. Course Description:

This introductory course is designed to help students with little or no computing background to start writing small programs to facilitate in research and analysis work. We will first cover the fundamentals of programming, using Python as the implementation language, which will be followed by a quick dive into the python libraries for doing informatics / analytics. By the end of the course, students should have a good understanding of programing logic and design, and will be able to quickly write small error-free scripts to solve non-trivial problems. In addition to writing programs, some time will also be spent on tooling required to make the process of software development efficient and stress-free.

II. General Course Format and Procedure

This is a hands-on course and there is no required course textbook. That said, the course lectures will draw on ideas discussed in various resources (preferably) We will use a combination of practical exercises, online documentation, blog posts, tutorial-style documents to cover fundamentals. During each session there will be a mix of lecture-based learning to cover key concepts, which will then be demonstrated through practical exercises.

III. Course Readings/Materials

Recommended books, from which material will be discussed

●Think Python (Free)

●How to Think like a Computer Scientist: Learning with Python 3 (Free)

●Automate the Boring Stuff with Python (Free)

●Online Python documentation / official python tutorial (Free)

●Learning Python (5th Edition) (Excellent, but not free; if you favor one comprehensive resource)

●Pro Git, 2nd Ed. (Free)

IV. Grade Distribution

The grades will be calculated according to the table below. Although attendance is not included, in class participation is a portion of your grade.

Course Component / Percentage
Assignments / 40%
Lightning talks / 2*15% = 30%
Participation / 30%

Week 1: Building blocks of Programs (Data + Instructions); Data structures; Interactive Tools (IPython, Jupyter)

−Topics covered: What is a program?, Types, Variables, Expressions, Statements, Data Structures; Tooling for Interactive Python Programming

−Reading List:

oChapters 1, 2, 10, 11, 12: Think Python

Week 2: Control flow; Iteration

−Topics covered: Conditionals, for/while loops

−Reading List:

oChapters 5, 7: Think Python

Week 3: Strings; Functions

−Topics covered:

−Reading List:

oChapter 3, 8: Think Python

Week 4: Scientific Python Toolkit - I

−Topics covered: Scipy, Numpy, Pandas, Matplotlib, Scikit-Learn

−Reading List:

o-

Week 5: Scientific Python Toolkit - II

−Topics covered: Scipy, Numpy, Pandas, Matplotlib, Scikit-Learn

−Reading List:

o-

Week 6: IDEs, Debugging, Version Control

−Topics covered:

−Reading List:

oChapter 2: Pro Git