Giter Club home page Giter Club logo

dbmi_6018_2018's Introduction

Introduction to Computer Programming for Biomedical Data Science

BMI 6018/MDCRC 6521 Fall 2018

Wednesdays 6:00-8:00PM

Wakara 421 Room 1016

Instructors

Teaching Assistants

Prerequisite

Prior to starting this course, the student must have completed a basic programming class. Online courses, such as codecademy’s Python Course or Coursera's Programming for Everybody, are fine with proof of completion. We have also created a DataCamp course that the students can take for free as preparation when they enroll in this class. Please contact the instructor for details.

Course Description

This course will provide students in the biological and medical domains the foundational programming skills to create computer programs to manage and analyze data drawn from biological, clinical, and public health domains. Working with the Python programming language, students will learn how to write procedural and object oriented programs. Mathematical principles relevant to biomedical data science will be reviewed through programming examples and problems. Students will also develop competency in using software version control with git as well as how to work within Linux computing environments.

Learning Objectives

  1. Acquire basic software engineering skills (git, documentation, unit testing) to follow in code development

  2. Recognize the components of a good program and software development process

  3. Build python skills and create biomedical software applications in the Python programming language

  4. Develop pipelines for manipulating, analyzing, and visualizing biomedical data

  5. Apply basic mathematical principles (e.g. set theory, first order logic, calculus, linear algebra, probability, and graph theory) to motivate and inform computational problems in biology and healthcare

  6. Acquire mathematics literacy that will facilitate effective reading of the relevant biomedical literature

  7. Given a task within a field of interest, follow the polya method to develop a prototype solution

  8. Exhibit confidence for self-directed expansion of programming skills

Text Books

Required

Additional Resources

  • I will be drawing heavily on Once Upon an Algorithm by Martin Erwig

  • I will make a PDF copy of Allen Downey's Think Python, version 2 available through Canvas. This is book with a Creative Commons license, so if you are interested you can clone, edit, and build your own copy of the book.

  • There are a number of very useful books that are available online through the University of Utah's subscription to the Safari Technical Books Online.

Additional Resources

Evaluation Methods

  1. Quizzes: 15% of grade.
  • Quizzes will be based on class-preparation materials to ensure that the students have reviewed the materials prior to the start of class.
  1. Class Participation: 20% of grade
    1. Students are expected to attend class and participate in group activites. In-class assignments will form part of the grade.
  2. Homework Assignments: 40%
  3. Midterm Exam: 10%
  4. Final Exam: 15%

Teaching and Learning Methods

This class will follow a “flipped classroom” paradigm. Students will be expected to watch prepared videos and read relevant on-line materials prior to the start of class. Class time will be spent answering questions raised by on-line materials, clarifying topics, and participating in individual and group hands-on activities. Students will be working in groups following the Process Oriented Guided Inquiry Learning (POGIL) method.

Tentative Course Schedule

Week 1:

Introduction to the course, working with Jupyter, git, etc.

  • Readings:

Language: Computing, Mathematics, Medicine

  • Readings:
    • Introduction to Computation and Programming Using Python with Application to Understanding Data Chapter 1;
    • Elements of Mathematics Sections 1.1, 1.2, 1.8-1.10;
    • Think Python: How to Think Like a Computer Scientist, 2nd Edition section 1.6 "Formal and natural languages"

Week 2

Problem Solving and the Debugging Process

Numbers in programming

  • Readings:
    • Introduction to Computation and Programming Using Python with Application to Understanding Data Chapter 3.
    • Elements of Mathematics, Section 1.1

Week 3

Mathematical Set theory

  • Readings:
    • Elements of Mathematics, Section 9.8

Collections/Data Structures in Python

Week 4

Functions

  • Readings
    • Introduction to Computation and Programming Using Python with Application to Understanding Data Chapter 4

Week 5

Functions Continued

Week 6

Testing and Debugging

  • Readings:
    • Introduction to Computation and Programming Using Python with Application to Understanding Data Chapter 6

Exceptions and Assertions

  • Readings:
    • Introduction to Computation and Programming Using Python with Application to Understanding Data Chapter 7

Week 7

Modules and Packages

Week 8

Fall Break

Week 9 (October 17)

Pandas

Mid-term

Week 10

Files, Serialization, and compression

Week 11

Object Oriented Programming Part 1: Modeling Persons

Week 12

Object Oriented Programming Part 2: Modeling Random Walks

Readings:

  • Introduction to Computation and Programming Using Python with Application to Understanding Data chapters 13
  • Elements of Mathematics sections 8.2 and 8.3

Week 13

Stochastic Processes and Monte Carlo Simulation

Readings:

  • Introduction to Computation and Programming Using Python with Application to Understanding Data chapters 15 and 16
  • Elements of Mathematics 8.4-8.7

Week 14

Visualization with Altair

Week 15

Text Extraction with Regular Expressions

Week 16

Linear Algebra, Word Vectors, and Document Classification

Readings:

Final Exam

Extra Credit

Students wishing to earn extra credit can participate in creating Jupyter notebooks exploring the effects of air quality on health. Initial drafts of this material can be found at its GitHub repository

Course Resources

dbmi_6018_2018's People

Contributors

chapmanbe avatar doraemon918 avatar

Watchers

James Cloos 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.