Skip to content

BioData-Club/programming-fundamentals

 
 

Repository files navigation

Programming with Python

An introduction to Python for non-programmers using inflammation data.

About the Lesson

This lesson teaches novice programmers to write modular code to perform data analysis using Python. The emphasis, however, is on teaching language-agnostic principles of programming such as automation with loops and encapsulation with functions, see Best Practices for Scientific Computing and Good enough practices in scientific computing to learn more.

The example used in this lesson analyses a set of 12 files with simulated inflammation data collected from a trial for a new treatment for arthritis. Learners are shown how it is better to automate analysis using functions instead of repeating analysis steps manually.

The rendered version of the lesson is available at: https://biodata-club.github.io/python-novice-inflammation/.

Episodes

# Episode Time Question(s)
1 Python Fundamentals 30 What basic data types can I work with in Python?
How can I create a new variable in Python?
Can I change the value associated with a variable after I create it?
2 Repeating Actions with Loops 30 How can I do the same operations on many different values?
3 Storing Multiple Values in Lists 30 How can I store many values together?
4 Making Choices 30 How can my programs do different things based on data values?
5 Analyzing Patient Data 60 How can I process tabular data files in Python?
6 Visualizing Tabular Data 50 How can I visualize tabular data in Python?
How can I group several plots together?
7 Analyzing Data from Multiple Files 20 How can I do the same operations on many different files?
8 Creating Functions 30 How can I define new functions?
What’s the difference between defining and calling a function?
What happens when I call a function?
9 Errors and Exceptions 30 How does Python report errors?
How can I handle errors in Python programs?
10 Defensive Programming 30 How can I make my programs more reliable?
11 Debugging 30 How can I debug my program?
12 Command-Line Programs 30 How can I write Python programs that will work like Unix command-line tools?

Contributing

Travis Build Status

Maintainers

Lesson maintainers are Trevor Bekolay, Maxim Belkin, Anne Fouilloux, Lauren Ko, Valentina Staneva, Mike Trizna, and creator of Software Carpentry: Greg Wilson.

Authors

A list of contributors to the lesson can be found in AUTHORS.

License

Instructional material from this lesson is made available under the Creative Commons Attribution (CC BY 4.0) license. Except where otherwise noted, example programs and software included as part of this lesson are made available under the MIT license. For more information, see LICENSE.md.

Citation

To cite this lesson, please consult with CITATION.

About Software Carpentry

Software Carpentry is a volunteer project that teaches basic computing skills to researchers since 1998. More information about Software Carpentry can be found here.

About The Carpentries

The Carpentries is a fiscally sponsored project of Community Initiatives, a registered 501(c)3 non-profit organisation based in California, USA. We are a global community teaching foundational computational and data science skills to researchers in academia, industry and government. More information can be found here.

About BioData Club

BioData Club is an interdisciplinary community at OHSU dedicated to promoting a fun and supportive culture of co-learning in data science skills and open science principles. We host workshops and social events where attendees can learn and work on projects among friends and colleagues. Biodata Club welcomes everyone who wants to better their know-how in all things data, regardless of skill level. We want to replace statistics anxiety and code fear with inspiration and motivation to learn and share. BioData Club is supported by the OHSU Library and DMICE.

About

Programming fundamentals lesson based on the Software Carpentry Programming with Python lesson.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 47.2%
  • HTML 37.1%
  • CSS 8.2%
  • R 3.0%
  • Makefile 2.9%
  • JavaScript 1.2%
  • Other 0.4%