Skip to content

biof-309-python/BIOF309-2016-Fall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syllabus

BIOF309 - Introduction to Python Programming

Fall 2016

Wednesday Section

Instructor:

  • R. Burke Squires (richard.squires at nih.gov)

First class: 14th September 2016

Final class: 12th May 2016

This document is subject to revision. Last revised 11th September 2016.

Course Description

Learning Objectives

By the end of this course you should be able to:

  1. Look at a task and determine if you can or should automate it
  2. Create working python programs using the basic features of the python language
  3. Understand the difference between different sets of objects in the python programming language (list, dictionary)
  4. Do basic data analysis with python using numpy, pandas
  5. Plot data using python
  6. Write bioinformatics programs utilizing the biopython package

Logistics

This is a 13 week course starting on the 14th September 2016, and finishing on December 14th 2016. Classes will take place between 5:30pm and 7:30pm each Wednesday in the Rathskeller of Building 60.

Attendance in class is strongly recommended; however, we realize other commitments will occasionally prevent attendance. Class materials will generally be sent to all learners via email.

Most classes will have hands-on tutorials and assignments. Both practice and graded assignments will generally be provided. Graded assignments should be submitted prior to the following class. So that you can follow along during class bringing a laptop to each class is strongly encouraged.

Important dates:

  • Oct 7 - Last day to drop/withdraw
  • Nov 10 - Last day to change status (credit or audit)

Required Materials

Each student is encouraged to bring their own laptop to each class. For the course, we will use Python 3. Any python installation should work, but you must be able to install packages. The Anaconda Scientific Python Distribution from Continuum Analytics will likely be the easiest approach to configuring python if you do not already have python installed. The Anaconda installer will automatically install many of the packages we will use during the course.

Recommended Books

There is no required textbook for this course.

We will link to relevant online resources throughout the course.

If you would like a refresher on the basics, the following resources may be useful:

For more information about python, please see the official Python Software Foundation website at https://www.python.org/

Assignments and Grading

The emphasis of the course is on learning and mastering the skills covered. It is my hope that everyone will be able to complete the assignments and project. If some of the material appears unclear please ask for clarification.

Assignments will be uploaded to the DropItTo.me website. Links will be given in each class material.

Grading assignments will follow the following rubric:

  • Program runs, produces correct result, contains useful comments, meaningful variable names, follows coding conventions: A+
  • Program runs, produces correct result: A
  • Program runs, produces something close to the correct result: B
  • Program runs, does not produce correct result: C
  • Program does not run: Incomplete (I)

Grading the final project will follow the following rubric:

  • Project description / Specification

    • Goals unclear, difficulty demonstrating functionality (1-3)
    • Goals for the project and functionality are discussed but difficult to follow (4-6)
    • Goals for the project and functionality are discussed (7-9)
    • Goals for the project and functionality are logically presented and clearly communicated (10-12)
  • Documentation

    • Only comments embedded in the code (1-3)
    • Objects and methods have docstrings (4-6)
    • Objects and methods have docstrings, additional standalone documentation (7-9)
    • Objects and methods have docstrings, extensive standalone documentation with example usage (10-12)
  • Readability

    • The code is poorly organized and very difficult to read (1-3)
    • The code is readable, but challenging to understand (4-6)
    • The code is fairly easy to read (7-9)
    • The code is well organized and very easy to read (10-12)
  • Reusability

    • The code is not organized for reusability (1-3)
    • Some parts of the code could be reused (4-6)
    • Most of the code could be reused (7-9)
    • Each part of the code, and the whole, could be reused (10-12)
  • Performance

    • Program does not run (1-6)
    • Program runs, but does not produce correct output (7-12)
    • Program runs, produces correct output under most conditions (13-18)
    • Program runs, produces correct output with robust error checking (19-24)

Course Materials

Course materials are available from the github repository: https://github.com/biof-309-python/BIOF309-2016-Fall.

Schedule

Week 1 (Sept 14 2016):

  • Intro survey
  • Course overview
  • An introduction to programming
  • Why python
  • What can you do with python?
  • Troubleshooting software installation
  • Introduction to Jupyter notebook
  • Program: "Hello world" interactive
  • Homework: Submit the hello world program

Week 2 (Sept 21 2016):

  • 5:30 - 6:00: Quick review, making sure python and jupyter notebooks are installed
  • 6:00 - 6:30: Review homework, debugging
  • 6:30 - 7:30: Printing and manipulating text
  • Homework: Write a program to calculate GC percentage

Week 3 (Sept 28 2016):

  • 5:30 - 6:00: Introduction to Linux, shell, DOS commands
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Reading and writing files
  • Homework:

Week 4 (Oct 5 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Lists and loops
  • Homework:

Week 5 (Oct 12 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Writing functions
  • Homework:

Week 6 (Oct 19 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Conditional tests
  • Homework:

Week 7 (Oct 26 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Data analysis with pandas
  • Homework:

Week 8 (Nov 2 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Dictionaries
  • Homework:

Week 9 (Nov 9 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: PyCharm, debugging
  • Homework:

Week 10 (Nov 16 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: Biopython
  • Homework:

Week 11 (Nov 23 2016): Thanksgiving week.

  • No class

Week 12 (Nov 30 2016):

  • 5:30 - 6:00: Intro and review
  • 6:00 - 6:30: Review Homework
  • 6:30 - 7:30: A brief look at: version control, testing, command line arguments, and regular expressions

Week 13 (Dec 7 2016):

  • Project presentations (Presentations will be randomly assigned)
  • Exit survey

Week 14 (Dec 14 2016):

  • Project presentations (Presentations will be randomly assigned)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published