Skip to content

ianmisner/BIO309_Spring2017

Repository files navigation

Syllabus

BIOF309 - Introduction to Python Programming

Spring 2017

Wednesday Section 3:30 - 5:30

Wednesday Section 5:30 - 7:30

Instructor:

First class: Feb 1, 2017

Final class: May 10, 2017

This document is subject to revision.

Course Description

This course is designed for non-programmers, biologists, or those without specific knowledge of python to learn how to program. Week by week we will slowly build up your skills and understanding of programming and the python language. As with learning any language you will get as much out of this class as you put in more effort. There will be in class demonstrations and Homework most weeks for you to practice and learn at your own pace.

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
  3. Understand the difference between different object types in python (i.e. lists, dicts)
  4. Do basic data analysis with python
  5. Write bioinformatics programs utilizing the biopython package

Logistics

This is a 15 week course starting on the 1st Feb 2017, and finishing on 10th May 2017, with second week no class.

Meeting Time and Place: 3:30 Section - Meeting Time and Place: 5:30 Section -

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:

  • Feb 24 - Last day to drop/withdraw
  • Mar 31 - Last day to change status (credit or audit)

Required Materials

Each student is encouraged to bring their own laptop to each class. Programing without a computer would be an exceptional feat. 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. Or see the guidelines on http://docs.python-guide.org/en/latest/ that were emailed to you.

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, contains useful comments: 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/ianmisner/BIO309_Spring2017.

Schedule

Week 1 2/1/17:

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

Week 2 2/8/17:

NO CLASS

Week 3 2/15/17:

  • Quick review, making sure python and text editors are installed.
  • Review homework, debugging
  • Printing and manipulating text
  • Homework: Write a program to calculate GC percentage

Week 4 2/22/17:

  • Introduction to Linux/Unix and shell
  • Review Homework
  • Reading and writing files
  • Homework: Split a file and write a fasta file

Week 5 3/1/17:

  • Intro and review
  • Review Homework
  • Lists and loops
  • Sys Argv
  • Homework: Trim sequences

Week 6 3/8/17:

  • Intro and review
  • Review Homework
  • Writing functions and Conditional tests
  • Homework:

Week 7 3/15/17:

  • Intro and review
  • Review Homework
  • Objects and Pandas
  • Homework: submit project proposal via spreadsheet (https://goo.gl/t39OoF)

Week 8 3/22/17:

  • Intro and review
  • Review Homework
  • Data analysis with pandas continued
  • Homework: install BioPython and update project proposal (If necessary)

Week 9 3/29/17:

  • Intro and review
  • Review Homework
  • Biopython
  • Homework: Pandas practice

Week 10 4/5/17:

  • Intro and review
  • Review Homework
  • Dictionaries
  • Homework: submit project milestone 1

Week 11 4/12/17:

  • Intro and review
  • Topic: A brief look at GUI, games, version control, testing
  • No homework

Week 12 4/19/17:

  • A brief look at: data analysis tools for big data - ML, NN, Hadoop
  • Homework: submit project milestone 2

Week 13 4/26/17:

  • Topic: cybersecurity and other student topics
  • No homework

Week 14 5/3/17:

Week 15 5/10/17:

About

Course Page for BIOF-309 FAES Spring 2017

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published