Dr. Shannon Quinn, reachable via:
- Email: firstname.lastname@example.org
- Office: Boyd GSRC, Room 638A.
- Phone: 2-4661
- Website: http://cs.uga.edu/~squinn
Overview of the Course
- This course is an introduction to data science through Python.
- There won't be any videos; all lectures will be in Jupyter notebook format.
- All assignments will be submitted through Jupyter notebooks.
- Primary communication will be over the Slack channel.
- Don't copy code.
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.
- Participation: 5%
- Assignments: 70%
- Midterm: 10%
- Final: 15%
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:
- Grus, Joel. Data Science from Scratch: First Principles with Python (1 stst ed., 2015) ISBN-13: 978-1491901427.
- McKinney, Wes. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython (1 stst ed., 2012) ISBN-13: 978-1449319793.
- Shaw, Zed. Learn Python the Hard Way (3 rdrd ed., 2013) ISBN-13: 978-0321884916.
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.
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.
This isn't a requirement, but is here for your reference. I'll post all the Jupyter lecture slides here as I release them.
https://github.com/eds-uga/csci1360e-su16↑ 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.
|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
|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
|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
|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
|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|
Kinda boring, but absolutely necessary. Please be familiar with these points so you and I don't have to have unpleasant conversations.
- Assignments are due by 11:59:59pm on the noted date. Assignments turned in after this deadline will lose 25/100 points for every subsequent 24 hour-period they are late.
- The presence or absence of any form of help or collaboration, whether given or received, must be explicitly stated and disclosed in full by all involved, on the first page of their assignment ("I did not give or receive any help on this assignment" or "I helped [person] with [specific task]."). Collaboration without full disclosure will be handled severely; except in usual extenuating circumstances, my policy is to fail the student(s) for the entire course.
- DO NOT COPY CODE. I cannot stress this enough. Coding is a lot like writing: everyone has their own style that is very recognizable. It's not difficult to tell when students share their code. Don't do it.
- Any material covered in lecture or homework assignments is considered fair game for both exams.
- Both exams will be cumulative. I may even be lazy / clever and copy-paste midterm questions into the final.
- The exact format of both exams will be variable; previous years' exams have included a mixture of multiple choice, matching, true/false, and hand-coding. However, this being the first online course in CSCI 1360, it is not yet clear what the ultimate formats will be.
- Time permitting, "practice" versions of the exams will be released. I will make every effort, but it will depend entirely on my schedule when the time comes; as such, do not assume it will happen.
- Exams will be timed. You can complete them within the time frame allotted in under the maximum time interval. As this is an online course, it's viable for multiple people to take the exam while co-located; please resist this option. Collaboration in any form during either exam will be grounds for immediate failure of the course.
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