Fall 2021
Lecture Times: Tues, Thurs 11am - 12:15pm
Note: All times mentioned throughout the Collab site and Syllabus are Eastern Time (US)
Location: New Cabell Hall 383
Professor
Adam Tashman
apt4c@virginia.edu
Teaching Assistant
Liz Thompson
et7gav@virginia.edu
When emailing the professor or TAs: Please remember to include "DS2001" in your email subject line.
Date of First Live Session: Aug 24, 2021
Date of Last Live Session: Dec 2, 2021
Semester Project Presentation Date: Dec 2, 2021
Semester Project Due Date: Dec 2, 2021 at 11:59 pm (final meeting day)
-
Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, 2nd Edition, McKinney. O’Reilly Media / ISBN: 978-1-4919-5766-0 Freely available through the library: https://learning.oreilly.com/library/view/r-for-data/9781491910382/?ar
-
R for Data Science: Import, Tidy, Transform, Visualize, and Model Data, 1st Edition, Wickham and Grolemund. O'Reilly Media/ISBN: 978-1-4919-1039-9 Free link to book: http://r4ds.had.co.nz
There are two options:
- Use your own machine
- Use the CEDS virtual environment
Access CEDS
Instructions for using CEDS
An introduction to essential programming concepts, structures, and techniques. Students will gain confidence in not only reading code, but learning what it means to write good quality code. Additionally, essential and complementary topics are taught, such as testing and debugging, exception handling, and an introduction to visualization. This course is project based, consisting of a semester project and final project presentations.
Week | Topics |
---|---|
Week 1 | Welcome, GitHub and Onboarding |
Week 2 | Python Introduction: Data Types, Variables and Expressions |
Week 3 | Python Introduction: Operators, Input/Output, Numpy |
Week 4 | Python Introduction: Pandas |
Week 5 | Pandas, SQLite Database |
Week 6 | Control Structures and Iterables |
Week 7 | Functions, Lambdas, List Comprehensions |
Week 8 | Python and GitHub Strength Training |
Week 9 | Recursion and Running From the Command Line |
Week 10 | Classes |
Week 11 | Unit Testing and Exception Handling |
Week 12 | R Programming I |
Week 13 | R Programming II, Group Project Presentation |
Upon completion of this course, you are expected to be able to:
- Confidently work in an appropriate programming environment (IDE)
- Find and utilize resources including online documentation
- Read code on GitHub
- Clone a repo on GitHub
- R: get started in RStudio and navigate around
- R: save code in an R script
- Perform simple mathematical calculations (Python and R)
- Identify and utilize primitive data types and data structures [Built in]
- Read and write to and from various data formats
- Confidently write and call functions in both Python and R
- Confidently write a class and call its methods to simulate a scenario
- Use and implement add-on numerical packages to augment existing data structures
- Select and apply an appropriate data structure based on the problem requirements
- Write robust code by implementing the basic principles of program testing and debugging
- Intro to GitHub
- Python Programming
- Intro to Spyder
- variables and expressions
- data types: int, float, bool, string, list, tuple, set, dict, range
- operators
- input/output
- numpy
- pandas
- sqlite database
- control structures
- interables and interators
- list comprehensions
- functions
- lambda functions
- running scripts at the command line
- classes
- unit tests, testing, debugging
- exception handling
- R Programming
- Intro to Rstudio
- R: essential built-in functions like head(), tail(), rbind(), table()
- R for math fundamentals
- Tidyverse verbs: select(), filter(), arrange(), mutate(), summarize()
- Tidyverse pipe operator
- functions
- elementwise operations
- In-person Live Sessions
- Students complete assigned reading before live sessions
- Live Sessions will consist of:
- instructor giving code demos
- students work on small and larger coding assignments, with assistance from instructor/TA/potentially their peers
- the instructor reviews coding solutions with the class
- students submit assignments through Collab
A weighted-average grade will be calculated as follows:
Component | Weight |
---|---|
Quizzes | 40% |
Homework Assignments | 35% |
Semester Project (+ Presentation) | 25% |
Range | Grade |
---|---|
[98,100] | A+ |
[93,98) | A |
[90,93) | A- |
[87,90) | B+ |
[83,87) | B |
[80,83) | B- |
[77,80) | C+ |
[73,77) | C |
[70,73) | C- |
<70 | F |
Email / Communication
- Email is the best way to get in touch with the instructor
- Please be sure to include the following in your email subject line: “DS 2001” when sending email to any of the course staff: professor and TAs.
Office Hours
- Office hours will be held through Zoom.
- If you cannot make it to my office hours we can arrange a mutually agreeable appointment time.
Homework Assignments
- There will be several homework assignments given throughout the semester. Specific grading criteria will be provided with each homework assignment. (See Collab for all homework details.)
- You are encouraged to first try to complete the homework by yourself. If you work with others, be sure you understand all of the work, and that your final submission is your own work.
- Unless stated otherwise, please type your homework assignments and submit through Collab in the requested format
- When submitting homework assignments, don’t forget to write the assignment title, your name, your UVa computing ID, and date at the top of each assignment.
- In submission file, please include your initials in the filename.
- No homework assignments will be dropped.
- Check Collab for due dates
Homework Assignment Lateness Policy
- Please submit HW assignments on time
- If an issue will prompt late submission, email the TA in advance to explain the situation
- If the HW is submitted late and it is not an excused lateness, 10% of the assignment total points will be deducted per day it is late
- After 5 days of unexcused lateness, it will not be accepted
Quizzes
- There will be several quizzes throughout the semester that will assess your knowledge of the various topics
- Quizzes are based on the Jupter Notebooks and R code files
- All quizzes are mandatory for all students to take
- The quizzes should be done “closed book:” please refrain from consulting any resources including notes, books, the web, devices, or other external media
- If you know in advance that you will miss any of the scheduled quizzes, you must make arrangements in advance with the instructor. (At least one week in advance if possible, or as soon as you are able if an unforeseen event occurs preventing you from taking the quiz.)
Semester Project
- Information about the project is provided on Collab.
- Project submission (write-up, code, etc.) is due in the final week of the course (see Important Dates near top of Syllabus). See Collab for submission details.
- Project presentations will be during the final meeting of the semester.
- If you know in advance that you will be absent for the project presentations, you must make arrangements in advance with the instructor. (At least one week in advance if possible. Or as soon as you are able if an unforeseen event occurs preventing you from presenting your final project.)
Students must attend live sessions and complete the final project as a team. For the programming assignments and quizzes, you must submit your own work.
All assignments must be submitted electronically through Collab by the specified due dates and times. It is crucial to complete all assigned work—failure to do so will likely result in failing the class.
UVaCollab: collab-support@virginia.edu
The School of Data Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University's Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the School of Data Science and in the future.
Students are expected to be familiar with the university honor code, including the section on academic fraud (https://honor.virginia.edu/). Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student's exam papers while working on an exam.) Sending, receiving or otherwise copying electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).
Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homework assignments.
If you have been identified as a Student Disability Access Center (SDAC) student, please let the Center know you are taking this class. If you suspect you should be an SDAC student, please schedule an appointment with them for an evaluation. I happily and discretely provide the recommended accommodations for those students identified by the SDAC. Please contact your instructor one week before an exam so we can make appropriate accommodations. Website: https://www.studenthealth.virginia.edu/sdac If you are affected by a situation that falls within issues addressed by the SDAC and the instructor and staff are not informed about this in advance, this prevents us from helping during the semester, and it is unfair to request special considerations at the end of the term or after work is completed. So we request you inform the instructor as early in the term as possible your circumstances. If you have other special circumstances (athletics, other university-related activities, etc.) please contact your instructor and/or TA as soon as you know these may affect you in class.