Skip to content

UVADS/ds2001

Repository files navigation

Syllabus: DS 2001 – Programming for Data Science

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

Contact

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.

Important Dates

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)

Textbooks

Compute Environments

There are two options:

Course Description

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.

Schedule of Topics

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

Learning Outcomes

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

Topics Covered

  • 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

Delivery Mode Expectations

  • 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

Assessment

A weighted-average grade will be calculated as follows:

Component Weight
Quizzes 40%
Homework Assignments 35%
Semester Project (+ Presentation) 25%

Grading Scale

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

Class Management

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.)

Spirit of the Course

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.

Electronic Submission of Assignments

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.

Technical Support Contacts

UVaCollab: collab-support@virginia.edu

Academic Integrity

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.

SDAC and Other Special Circumstances

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published