Skip to content

biof309/spring2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syllabus

Introduction to Python Programming - BIOF309 - FAES

Join the chat at https://gitter.im/biof309/spring_2020_thursdays

Time: Monday 6:00PM - 8:00PM

Changes are tracked using the git version control system. Material for this syllabus is drawn from previous semester, e.g. Fall 2019, Spring2019, and Fall 2018.

This document is subject to revision!

Instructors

  • Martin Skarzynski
  • Emily Yaklich (TA)
  • Suhwan (Paul) Lee (TA)

Course Description

This course is designed for non-programmers, biologists, or those without specific knowledge of Python to learn how to program. Emphasis is placed on foundational skills for automation, reproducibility, and sustainable development of code for scientific analysis.

There will be in-class demonstrations, and teaching using JupyterLab. The course also consists of out of class learning using the DataCamp learning platform. This allows students to practice and learn at your their pace with programming exercises that provide realtime feedback on mistakes.

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. Use git for keeping track of changes in your project and collaborating with others
  3. Create working Python programs
  4. Develop strategies for leveraging pre-existing solutions to analysing your scientific data
  5. Be aware of tools and strategies that help sustainably develop robust software for scientific analysis
  6. Have a deep understanding of the basic structures in Python (e.g. lists, dicts, etc)
  7. Perform data analysis and visualization with Python
  8. Demonstrate your Python skills with a project

Preparation before class

Please review the course setup requirements

Each student is encouraged to bring their own laptop to each class.

Programing without a computer would be an exceptional feat.

Laptops are available to borrow for class on an as needed basis. There are also Data Processing Stations available to use in the library.

Approximate Schedule (subject to substantial revision)

# Date Title Lead
1 2020-02-03 Introduction Martin
2 2020-02-10 Jupyter, python, and bash *
3 2020-02-17 A python whirlwind (Part 1) Martin
4 2020-02-24 A python whirlwind (Part 2) Martin
5 2020-03-02 Git Martin
6 2020-03-09 Using what we have learned Martin
7 2020-03-16 More advance git usage Martin
8 2020-03-23 Private methods, and structuring our own code. *
9 2020-03-30 A python whirlwind (Part 3) *
10 2020-04-06 A python whirlwind (Part 4) Martin
11 2020-04-13 Packaging python code Martin
12 2020-04-20 Final Project Clinic All Instructors
13 2020-04-27 Final Project Clinic All Instructors
14 2020-05-04 Final Project Clinic All Instructors

Grading

Use the grading rubric for the course. Read it. Internalize it. Live by it. It is like being given the answers before the test. There are no tricks here: we grade you according to the rubric!

Communication

Please try to ask your questions during class, if at all possible.

Before contacting us, please check to see if your question has already been answered elsewhere, e.g. StackOverflow.

If you cannot find the answer, please make sure to ask your question thoughtfully (https://stackoverflow.com/help/how-to-ask) and provide everything needed to answer e.g. code, error message, dataset, etc.

In general, please use the course gitter channel to communicate with classmates and instructors. In case of personal/private question/concerns, please use the private chat functionality of gitter.

In case of an emergency, please use gitter and an email.

Course Materials

Course materials are available in the course GitHub repository.

Recommended Books

There is no required textbook for this course. We do, however, highly recommend Python for Data Science and its companion text A Whirlwind Tour of Python by Jake Vanderplas. Both of these books are available free on GitHub in Jupyter Notebook form. The code for Python for Data Analysis by Wes McKinney is also on GitHub but the text is only available in the printed copy of the book. For maximum enjoyment, consider working through the relevant chapters before coming to class.

We will link to relevant online resources throughout the course.

If you would like additional material on the basics, the following resources may be useful:

For more information about Python, please see the official Python Software Foundation website.

Optional extras

We recommend that you avail of the following tools as they will help you in your path towards Pythonic stardom:

  1. The PyCharm Integrated Development Environment (IDE)

    The very nice folks at JetBrains have given us free licenses for the Professional Edition of PyCharm Integrated Development Environment (IDE), the best (in my humble opinion) Python Integrated Development Environment (IDE).

    If you have a .edu email address, please install PyCharm Integrated Development Environment (IDE) Professional using this link.

    If not, a installation link will be distributed to you by email and made available on Slack.

    Before the first class, please watch the Getting Started with PyCharm video series.

    Before the second class, please watch the PyCharm In-Depth VCS video series.

  2. DataCamp

    Since Fall 2017, the very nice folks at DataCamp have been generously supporting our class via their DataCamp for the Classroom initiative.

    This program give us free 6 month access to DataCamp's awesome Data Visualization📊, Machine Learning🤖, and Data Science learning materials.

    We will discuss the most interesting examples from DataCamp during class and point out others to be reviewed outside of class.

  3. GitHub

    All of the course materials are available on GitHub. Before accessing the course materials repo, you should know that

    • it is likely to be under constant development throughout the semester and
    • you are not expected to work through everything contained therein!
  4. GitHub student pack

    GitHub is offering some free awesome resources to students, that might be of interest to you, depending on your background:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published