Syllabus

Instructors: Cole Brookson & Peter Thompson

Workshop Dates/Times: October 08, 15, 22, 29, and November 05, 2020, from 12:30 to 14:00 MT

Workshop Location: Online!! Here and ZOOM will be used for this course.

General Description: It has never been more important to be able demonstrate quantitative skills in Biology. Alongside field/lab skills, computational abilities are essential to biologists in the 21st Century. This workshop series is designed to introduce you to programming and working with data in Python so you can 1) perform essential programming tasks, 2) read and manipulate your own data, and 3) write programs to deal with those data. We assume no previous programming experience. Python is the industry leader in Data Science related fields, and is the go-to language for geneticists, molecular biologists, and even ecologists working with extremely large data. A fast and extremely versatile language, Python is also among the easiest languages to get started in. We will lead you through the basic use of Google Collab as an Integrated Development Environment (IDE) through which to use the general purpose programming language, Python, to avoid any need for local installs. We will introduce you to object-oriented programming (OOP), and then help you develop the basic skills to work with data in Python.

Workshop Format: Pre-recorded mini-lectures will be available to give brief overviews of specific topics. Synchronous ZOOM meetings will be held weekly and will consist mostly of live-coded examples and practice problems. The only way to learn how to program is to practice!

Learning Outcomes: By the end of this workshop series we hope for participants to have achieved the following learning outcomes:

  1. Be able to identify objects, main OOP principles, and types in Python, describe why they are important, and operate between the main types
  2. Perform the cornerstone programming skills of writing if-statements, looping actions, and functions
  3. Describe and implement practices that lead to efficient and clean code writing practices such as pseudocoding and documentation
  4. Read, manipulate, and perform basic data cleaning tasks in Python
  5. Most importantly, feel confident moving on to gaining more skills and techniques independently

Schedule:

Week 1: Introduction

  • Part 1: Set Up & Important Topics & Terms
    • Google Collab
    • Why use Python?
    • How to use Python on Your Own Machine
    • Resources for Learning/Troubleshooting
    • What is this series? What is it not?
  • Part 2: OOP, Data types
    • Object-oriented Programming (OOP)
    • Python Types
    • Assignment & Indexing

Week 2: Cornerstone Programming Skills

  • If-statements
    • If-then-else-then
  • Loops - Structure & Use
    • Types of Loops
    • Concepts of Iterations
    • When to Loop?
  • Functions - Best Practices
    • Formatting Functions
    • Making Functions Do Your Work for You

Week 3: General Programming Approaches w/ Relation to Biology

  • Pseudocoding
    • What is psuedocode?
    • Why do it?
  • Efficiency
    • Optimization
    • Algorithmic efficiency
  • Syntax
    • Commenting
    • Best practices
    • Documentation
  • Unit Testing
    • Why Unit Test?
    • Writing Unit tests

Week 4: Data in Python

  • Pandas & External Libraries
  • Reading & Writing Data
  • Basic Data Tasks
    • Selecting & Mutating Columns
    • Indexing
    • Binding Multiple Objects

Week 5: Wrap-Up Activity

  • Complete In-Class Activity
  • Collaborate in Small Groups to Solve Problems