To ensure that our students have the skills they need to be successful in the program, we require all entering MSDS students — Residential and Online — to take programming assessments in Python and R. View the list of key topics assessed below. 

The assessments each have two parts: a knowledge test and a coding test, and both parts must be passed with an 80% or higher to be exempt from the modules. 

On the assessments:

  • If you earn 80% or higher on both the knowledge test and coding test of the assessment, you are exempt from the programming module(s). A certificate of completion will be sent to your UVA email if you achieve this score; upload this to your portal.
  • If you earn 79% or below on one or both portions of the assessment, you must complete the programming boot camp(s) by the deadline for your cohort. Python has five modules and R has three; you must pass all modules within the boot camp(s) to earn the certificate(s) of completion. 

You have one attempt to complete each assessment; however, you have unlimited attempts to pass the modules. Failure to provide a certificate of completion for both Python and R by the deadline listed below for your cohort will result in your admission being rescinded. 

Use Your UVA Computing ID & NetBadge to Access the Assessments

  1. Accept your offer of admission and pay your enrollment deposit; you will receive an email with instructions and access links within a few business days. The access links will also be posted in your portal.
  2. If applicable, complete any to-do items in your portal for the Office of Virginia Status to officially matriculate.
  3. Set up your UVA computing ID and NetBadge. You must use your UVA computing ID to take the assessments; personal email accounts will be deactivated and you will need to re-register with your UVA account.
  4. Go back to the email links to access Canvas Connect using your UVA computing ID to take the assessments; do not create a new account or use a personal email account.

The Assessments

Once you sign in, you have 30 days to complete the assessments. Most students take 1-3 hours to complete each section. The assessment results will be graded by the instructor and then posted to Canvas Connect within a few business days.

As a UVA student, we expect you to adhere to the University of Virginia Honor Code while completing these assessments. You may not access generative AI materials or outside help. Doing so not only betrays our community of trust, it puts you at a disadvantage in our fast-paced curriculum, where we expect you to have the prerequisite programming skills to be successful in your coursework. 

Certificates of Completion

You will receive a Python Certificate of Completion and R Certificate of Completion if you pass both portions of the initial assessment with an 80% or higher *or* when you complete all modules within the boot camp(s). All certificates will be sent your UVA email address as a .pdf; upload this to your portal by the deadline for your cohort.

Modules

If you earn a 79% or lower on one or both portions of the assessment, you will be required to complete free, asynchronous modules to earn the certificate of completion. Python has five modules and R has three modules; each module takes about 8 hours. After completing all modules, you will receive a certificate of completion that you must upload to your portal by the deadline for proof of enrollment.

Deadline to Upload Certificate of Completion

The MSDS Programming Assessment will be on the enrollment checklist in the Application Portal. You must upload your certificate(s) of completion to the portal by the deadline or your offer of admission will be rescinded. The deadlines below are by entry term:

  • Fall: August 1
  • Spring: January 5

We recommend you take the assessments at least two months in advance of the deadline to allow yourself plenty of time to complete the module(s), if needed.

If you have questions, use the "Inbox" feature of Canvas Connect to send a message to the instructor. If you have questions about deadlines or accessing your portal, email sdsadmissions@virginia.edu.

 

The following knowledge, skills, and abilities will be evaluated on the MSDS Programming Assessment: 

Python Close Icon Close

Basic Programming Concepts

Working from the Command-line

  • Distinguish between major operating systems.
  • Recognize the command line of a Unix-family operating system.
  • Use basic shell commands for navigating and modifying directories and files.

Git and GitHub

  • Distinguish between Git and GitHub.
  • Perform basic Git operations, such as clone, add, commit, push, and pull.
  • Perform basic GitHub operations, such as repository creation, fork, pull request, and fetch upstream.

Programming Editors

  • Be able to use a standard programming editor, such as VS Code or JupyterLab, for coding Python and RStudio for R. 
     

Python

Python Basics

  • Determine which version of Python you are using on a machine.
  • Locate where the Python interpreter is installed on a machine.
  • Use the print function.
  • Write a simple “Hello, World!” .py file.
  • Execute a Python program file from the command line.
  • Read and write files from disk within a program.

Variables, Data Types, and Data Structures

  • Describe and use Python’s basic data types: integers, floats, booleans, strings, and complex numbers.
  • Define literal representations of each data type.
  • Cast data from one type to another.
  • Inspect the data type of a variable.
  • Describe and use Python’s built-in data structures: lists, dictionaries, tuples, and sets.
  • Describe and use the basic operators associated with each data type and structure.
  • Initialize new data structures.
  • Define the difference between mutable and immutable data structures.
  • Add and remove data from mutable data structures.
  • Perform variable interpolation with Python strings.

Syntax and Grammar

  • Write valid variable names.
  • Assign values to variables.
  • Define expressions and statements.
  • Use proper indentation for code blocks.

Control Structures

  • Write for-loops, while-loops, and describe their general use cases.
  • Employ conditional logic statements that return boolean values and structure program flow.
  • Define exit conditions of for- and while-loops.
  • Use the proper keywords to break out of loops and skip iterations.
  • Use list, dictionary, and set comprehensions for compact looping.
  • Create and use iterators.

Functions

  • Access common built-in functions, such as print and open.
  • Import Common libraries, such as math and random.
  • Import and alias attributes (function, classes, variables) from a module.
  • Create user-defined functions.
  • Understand variable scope, including global, local, and nonlocal.
  • Create and use lambda functions.
  • Understand general design principles for functions.
  • Recognize and write a recursive function.

NumPy

  • Describe key features of NumPy array design.
  • Recognize NumPy data types.
  • Perform basic array indexing, slicing, and broadcasting.  
  • Perform boolean indexing.
  • Perform fancy indexing.
  • Perform basic arithmetic operations with arrays.
  • Understand and perform universal and vectorized functions.

Pandas

  • Describe key features of Pandas DataFrame and Series design.
  • Understand role of indexes in Pandas data structures.
  • Perform indexing using loc and iloc.
  • Perform column selection and creation.
  • Apply vectorized functions to Pandas data structures.
  • Reshape, transpose, stack, unstack Data Frames.
  • Summarize Pandas Data Frames with value counts and groupby.

R Close Icon Close

R Basics

  • Use RStudio to edit and run R programs.
  • Understand the essential differences between R and Python syntax.
  • Understand R’s rules for naming variables.
  • Describe and use R’s basic data types: logical, character, integer, float, and complex.
  • Assign values to variables with R’s assignment operator.
  • Understand the difference between R’s assignment operator and assigning values to parameters in functions.
  • Describe and use R’s basic data structures: vector, matrix, list, and dataframe.
  • Extract values from data structures with indexes, slicing, and boolean indexing.
  • Create for- and while-loops with conditional statements.
  • Produce scatterplots, bar graphs, and histograms with the plot function.
  • Summarize data in data frames with the table function.
  • Create user-defined functions.
  • Install and use libraries.
  • Understand how R handles namespaces.

The Tidyverse and Dplyr

  • Awareness of the Tidyverse and how it differs from basic R.
  • Define the expression “tidy data.”
  • Describe and use Tibbles.
  • Describe and use the basic data transformation verbs: select, filter, arrange, rename, mutate, and summarize etc.
  • Use the pipe operator to chain functions together.
  • Describe and use the split-apply-combine pattern for generating aggregate statistics on data sets.

Visualization

  • Understand the layered architecture behind the grammar of graphics approach to visualization.
  • Create layered graphics using the plus operator.
  • Create graphics that visualize data from Dplyr operations.
  • Create and render RMarkdown documents. 

FAQs Close Icon Close

How long do I have to complete the assessments?

30 days from the time you enroll. Most students take about 1-3 hours per assessment. 

How much do I need to study before taking the assessment?

Although it may be helpful to review the key topics listed above, the intention of an assessment is to evaluate your current skills, without studying, and without GenAI. 

Can I take the assessment more than once?

No. Carefully review your coding test files for errors (including spelling) before submitting them.

Can I skip the assessment and go straight to the modules?

No.

What if I pass just the knowledge test but not the coding test (or vice versa) with an 80%+, but not the other?

You must enroll in the boot camp modules. 

What if I want feedback on graded submissions for the assessments?

The assessment and its grading is automated; however, once you're in the modules, you'll have the opportunity to ask questions to an Instructional Assistant, as well as unlimited attempts to successfully complete the quizzes and coding assignments within the 90 days of your course enrollment.

What happens if I don't take the assessment within 30 days?

If you do not complete the assessment within the allotted 30-day period, you will receive a 0.0/0% on both portions of the assessment and must enroll yourself in the boot camp modules. At that time, go to the "Next Steps" module for enrollment information. 

How long are the boot camp modules?

They are self-paced and asynchronous; Python has 5 units and R has 3. Each includes a series of instructor-led lesson videos, notebooks, readings, quizzes, and coding assignments. You will have unlimited attempts to successfully complete the quizzes and coding assignments within the 90 days of your course enrollment. (Enrollment expires after 90 days.) Typically, one unit = one week of 2-5 hours of work. 

What if I don't upload both Certificates of Completion by the deadline?

Your offer of admission will be rescinded. 

Who can I contact if I still have questions?

If you have questions, use the "Inbox" feature of Canvas Connect to send a message to the instructor. If you have questions about deadlines or accessing your portal, email sdsadmissions@virginia.edu.

View All