Giter Site home page Giter Site logo

ssarria / bio309_spring2017 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ianmisner/bio309_spring2017

0.0 0.0 0.0 1.4 MB

Course Page for BIOF-309 FAES Spring 2017

Home Page: https://github.com/ianmisner/BIO309_Spring2017

License: GNU General Public License v3.0

Python 100.00%

bio309_spring2017's Introduction

Syllabus

BIOF309 - Introduction to Python Programming

Spring 2017

Wednesday Section 3:30 - 5:30

Wednesday Section 5:30 - 7:30

Instructor:

  • Ian Misner (ian.misner at nih.gov)

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 14 week course starting on the 1st Feb 2017, and finishing on 3rd May 2017.

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
  • Homework:

Week 7 3/15/17:

  • Intro and review
  • Review Homework
  • Conditional tests
  • Homework: BLAST Parsing

Week 8 3/22/17:

  • Intro and review
  • Review Homework
  • Data analysis with pandas
  • Homework:

Week 9 3/29/17:

  • Intro and review
  • Review Homework
  • Dictionaries
  • Homework: Actin Problem

Week 10 4/5/17:

  • Intro and review
  • Review Homework
  • Biopython
  • Homework: Actin Problem with Biopython tools

Week 11 4/12/17:

  • Intro and review
  • Review Homework
  • Topic: TBD
  • Homework:

Week 12 4/19/17:

  • Intro and review
  • Review Homework
  • A brief look at: version control, testing, command line arguments, and regular expressions

Week 13 4/26/17:

  • Project presentations (Presentations order will be randomly assigned)

Week 14 5/3/17:

  • Project presentations (Presentations order will be randomly assigned)

Week 15 5/10/17:

  • TBD (Possible Q & A and Review)

bio309_spring2017's People

Contributors

ianmisner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.