CS2100 - Data Structures and Algorithms I

Introduction | Repository contents | Contributing to this repository | Course description | License


The repository contains content for CS2501 - Data Structures and Algorithms I at the University of Virginia. This course was originally part of the Computer Science department’s curriculum pilot. Starting in the Spring 2022 semester, it will become a new core course for all Computer Science Majors at UVa.

Repository Contents

Note that the links below will not work correctly if you are viewing this online at github.com – you will need to clone (download) the repository first

Contributing to this Repository

Updates to the repository are restricted to approved individuals only, to prevent anybody from messing with the slides right before a lecture. However, others can still contribute to this repository – to do so, take the following steps:

  1. Create a github account, if you do not have one
  2. Fork this repository: you can click on the “Fork” link in the upper right, or just click here
  3. Clone your forked repository on to your local machine
  4. Make any changes you want to your forked version, then commit and push your changes back to your forked repository
  5. Create a pull request, following the instructions here

At that point, I will receive a notice that a change has been submitted, and I’ll look at it and hopefully accept it into the main repository.

When you want to bring in the updates from the main dsa1 github repository into your forked repository, you will need to follow the instructions here.

Course Description

A second course in computing with an emphasis on foundational data structures and program analysis. The course provides a comprehensive look at the Java programming language including object oriented programming, concurrency, inheritance / polymorphism. Additionally, foundational data structures and related algorithms / analysis are studied. These include Lists, Stacks, Queues, Trees, Hash Tables, and Priority Queues.

The ABET course objectives are:


The material in this repository is released under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).

Copyright (c) 2022 by Mark Floryan and Nada Basit