Dr. Shannon Quinn, reachable via:

Overview of the Course




Informatics, or “data science,” are rapidly becoming essential skills for scientists across fields; in addition to field-specific specializations, researchers require knowledge of and experience with quantitative analytical techniques for extracting knowledge from raw data.

This course aims to provide an introduction to concepts in scientific programming and data science using the Python language. Students are given hands-on opportunities to learn techniques applicable to quantitative analyses across a broad range of fields. These core techniques involve formulating solutions in terms of their inputs and outputs (functional programming), repeated operations (loops), branching operations (conditionals), different methods of organizing data (data structures), how to implement an optimal problem-solving strategy (algorithm design), and methods for visualizing and interpreting results.


The only hard prerequisite is MATH 1113 Precalculus.

This course assumes no prior programming or statistics knowledge. It is meant to be an introduction to these concepts in the larger context of data science and scientific programming through the lens of the Python ecosystem. The course is targeted at undergraduate students across fields who, irrespective of their ultimate career goals, are interested in a foundational understanding of programming and quantitative data analytics.

↑ Back to top


Yep, the part everyone pays attention to.

There will be 10 relatively brief programming assignments, each worth 7% of your total grade. These are intended to give you hands-on experience with the concepts being taught in the class and to familiarize you with the Python language and its ecosystem. There will be midterm and final exams, and a participation component. The latter takes the form of asking and/or answering questions in the Slack channel, leading study discussions in the Slack channel, or participating in Slack office hours.

↑ Back to top

Materials and Resources

This is the crux of everything. If you read one part of the syllabus, let it be this one.

1: Physical materials

As this course is online, there are few physical requirements in order to effectively participate: an internet connection (if you're reading this, you can probably claim success) and a modern web browser.

There are no required textbooks. If, however, you wish to purchase a reference textbook, I would highly recommend the following:

2: JupyterHub

This is the primary point of interaction for homework assignments and exams. Jupyter notebooks posted for lecture will be accessible from the general web (instructions to follow), but homework assignments and exams will be accessible through this link:

It's only accessible from on-campus, or with a campus VPN. Check out this EITS webpage on remote access if you need assistance.

3: Slack

This is the primary point of interaction for asking for / offering help. I will answer questions when I can, and will make myself avaialble at specific "office hours" during the week when I am guaranteed to be sitting in front of the channel, but otherwise I encourage everyone to help each other out, too!

I will send out invites to the Slack channel using your UGA email address.

4: GitHub

This isn't a requirement, but is here for your reference. I'll post all the Jupyter lecture slides here as I release them.

↑ Back to top

Lecture and Assignment Schedule

Lectures and assignments are both in Jupyter notebook format. Yes! No videos! Lectures will be released every Monday, Wednesday, and Friday, with assignments coming out every Tuesday and Thursday. Assignments are due 72 hours after their release.

Week Day Lecture Assignment
1 of 9 Wed, 6/10 Lecture 1 (L1): What is data science?  
Thurs, 6/11   Assignment 0 (A0) released
Fri, 6/12 L2: Introduction to Python  
2 of 9 Mon, 6/13 L3: Python Variables and Syntax  
Tues, 6/14   A0 due
A1 released
Wed, 6/15 L4: Collections and Loops  
Thurs, 6/16   A2 released
Fri, 6/17 L5: Advanced data structures A1 due
3 of 9 Mon, 6/20 L6: Conditionals and Error Handling  
Tues, 6/21   A2 due
A3 released
Wed, 6/22 L7: Vectorized programming  
Thurs, 6/23   A4 released
Fri, 6/24 L8: Array indexing, slicing, and broadcasting A3 due
4 of 9 Mon, 6/27 L9: Functions I  
Tues, 6/28   A4 due
A5 released
Wed, 6/29 L10: Functions II  
Fri, 7/1 L11: Q&A Session, Part I A5 due
5 of 9 Tues, 7/5 MIDTERM EXAM
Wed, 7/6 L12: Reading from and writing to the filesystem  
Thurs, 7/7   A6 released
Fri, 7/8 L13: Working with Text  
6 of 9 Mon, 7/11 L14: Introduction to linear algebra  
Tues, 7/12   A6 due
A7 released
Wed, 7/13 L15: Introduction to probability and statistics  
Thurs, 7/14   A8 released
Fri, 7/15 L16: Q&A Session, Part Deux A7 due
7 of 9 Mon, 7/18 L17: Working with images  
Tues, 7/19   A8 due
Wed, 7/20 L18: Data visualization  
Thurs, 7/21   A9 released
Fri, 7/22 L19: Data exploration  
8 of 9 Mon, 7/25 L20: Introduction to machine learning A9 due
Tues, 7/26   A10 released
Wed, 7/27 L21: Open data science  
Fri, 7/29 L22: Q&A Session, Part 3 A10 due
9 of 9 Mon, 8/1 Reading Day
Tues, 8/2 FINAL EXAM
Wed, 8/3

↑ Back to top


Kinda boring, but absolutely necessary. Please be familiar with these points so you and I don't have to have unpleasant conversations.



The UGA Academic Honesty Policy is the final word on these matters. Lack of knowledge of these policies is not sufficient justification for violations. If in doubt, ask me.

↑ Back to top