Data Structures

CSCI 3400

December 10, 2025

Basic Facts

Course: CSCI 3400 - Sections B (24470), Fall 2025.

Instructor: Dr. Clément Aubert, https://spots.augusta.edu/caubert/#contact

Meeting Time: Tues./Thurs., 5:30–6:45pm in Hull McKnight GA Cyber Center, Room 2301

Course Description

A study of the techniques for representation and manipulation of structured data within a digital computer. Programming assignments illustrating a variety of data structures.

Prerequisites

To enroll in this course, you must have a minimum grade of C in CSCI 1302.

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Explain the principles of algorithmic analysis and efficiency.
  2. Understand the purpose and benefits of different (abstract) data-types.
  3. Design and implement fundamental data structures including lists, stacks, queues, trees, hash tables, heaps and graphs.
  4. Understand how to perform simple cost analysis of various algorithms.
  5. Implement and evaluate sorting algorithms.

Textbook

This course does not use a traditional textbook; instead, it uses a collection of open-source learning resources available at https://princomp.github.io/, where content will be added through the semester.

An excellent C# reference is C# 12 in a Nutshell: The Definitive Reference by Joseph Albahari (978-1098147440). AU students can access this resource using Safari Books Online.

Resources for algorithm analysis and data structures include:

Past Exams

Solutions can usually be found at princomp.github.io/solutions/ by looking for relevant keywords or browsing by theme.

Getting Help

Tutoring is offered on the Summerville Campus, in University Hall, room 129, on

You can inquire on discord about extended office hours or tutor availability. The tentative planning for CSCI 3400 is the following:

Name Mon Tue Wed Thu Fri
Benjamin Diaz Posada 2:30pm - 5:00pm 9:00am - 12:30pm 2:30pm - 5:00pm 9:00am - 12:30pm 10:30am - 2:00pm
Haydn Karamath   9:00am - 10:00am   9:00am - 10:00am  
–“–   11:15am - 12:00pm   11:15am - 12:00pm  
Francis Tropea     4:00pm - 6:00pm    

Practical Information

Computer Requirements

Since this is a computer programming class with online resources, you will need to have access to a reliable Internet connection and a computer on which you can install software. It can be either a PC running Windows, a Mac running MacOS, or a PC running Linux (most major distributions); notably, however, Chromebooks are not supported. Please, find more details (e.g., on the hardware requirements) at https://princomp.github.io/docs/programming_and_computer_usage/computer_requirements if needed.

Class Attendance

This class will be conducted face-to-face, unless there are unforeseen changes during the semester. You are expected to attend all classes and complete all assignments. We recognize that sometimes you will need to miss class due to unexpected circumstances (illness, injury, etc.). Understand, however, that you are still responsible for all course material, whether or not you attend class, and missing class may make it easy to fall behind. Note that students that stop attending may be withdrawn by the instructor.

Announcements

Important class information will be shared in class and over email. Note that Brightspace/D2L/LMS will primarily serve as a platform to share your project and access your grade, but that no major announcements will be made exclusively on Brightspace/D2L/LMS.


Grades

Students will be evaluated by the following measures:

  1. Projects and quizzes: Throughout the semester, students will have to return C# projects following precise prompts and instructions shared at https://princomp.github.io/projects/submission, and to take short (5–10 min.), in-class quizzes.

  2. Exams: There will be two in-class exams, held during the regular class periods. They will require you to write programs on paper, without the help of any reference material, as well as answer questions about programming concepts.

  3. Final: The final exam will be similar in content to the midterm exams, except that it will be 2 hours long.

Refer to the planned schedule for estimated dates, and to Brightspace/D2L/LMS to get your current grades.

Your grade will be computed as follows:

Projects & Quizzes 10%
In-class Exams (×2) 50%
Final Exam 40%

using the following course grade scale:

Below 65 65–70 70–79 80–89 90–100
F D C B A

Refer to the Course Policies for information about late or missed evaluations.

Planned Course Schedule

Date Topic Assignments (project & quiz timeline tentative)
Tue, Aug 12 Syllabus & Introduction – Abstract Data Types  
Thu, Aug 14 Complexity  
Tue, Aug 19 Complexity (contd)  
Thu, Aug 21 Linked List Quiz #1
Tue, Aug 26 Refresher on interfaces and Linked Lists as ICollection  
Thu, Aug 28 Doubly Linked List  
Tue, Sep 2 Doubly Linked List (contd) and Stacks  
Thu, Sep 4 Stacks (contd)  
Tue, Sep 9 Queues Quiz #2
Thu, Sep 11 Binary (Search) Tree  
Tue, Sep 16 Binary (Search) Tree (contd) “AList” Project
Thu, Sep 18 Binary (Search) Tree (contd)  
Tue, Sep 23 Exam # 1 review  
Thu, Sep 25   Exam #1
Tue, Sep 30 Exam #1 return  
Thu, Oct 2 AVL Tree  
Tue, Oct 7 AVL Tree (contd)  
Thu, Oct 9 Fall pause - no class  
Tue, Oct 14 Dictionaries  
Thu, Oct 16 Dictionaries (contd) Quiz #3
Tue, Oct 21 Dictionaries (contd)  
Thu, Oct 23 Priority Queue  
Tue, Oct 28 Priority Queue “AVLtree” Project
Thu, Oct 30 Priority Queue  
Tue, Nov 4 Dictionaries (chaining) Quiz #4
Thu, Nov 6 Insertion sortign & Heap Sorting  
Tue, Nov 11 Bubble Sorting, Shell Sorting & Actions  
Thu, Nov 13 Course Review  
Tue, Nov 18   Exam #2
Thu, Nov 20 Course Review  
Tue, Nov 25 Quick Sorting  
Thu, Nov 27 Thanksgiving Holiday – no class  
Fri, Dec 05 Final Exam (08–10pm) “Sorting” Project due

Time allows, we will also discuss graphs and their representations (adjacency list), topological sort, shortest-path problem and Dijkstra’s algorithm.

If there are any major changes, an announcement will be made in class and via email.

Dates are just estimates (the pace will be adjusted to the class as necessary), but exam dates will not change.


Course Policies

Late Policy

Projects are (generally) due at 11:59pm on the assigned due date, and no late assignments will be accepted. There will be plenty of time to complete the projects, so plan ahead for the possibility of illness, car malfunctions, power outages, or other setbacks.

Exams must be taken in person on the date of the exam. In extenuating circumstances, such as unavoidable work commitments or the need to quarantine due to COVID-19 exposure, the instructor may give permission to make up the exam on an alternate date or to place the weight of the missed exam onto the weight of another exam.

Any request to miss a scheduled exam must be made prior to the exam and accompanied by documentation of the extenuating circumstances, unless of course it is an emergency, in which case the student is asked to inform the instructor as soon as they can, preferably over email. Missing an exam without making prior arrangements nor submitting documentation proving the nature of the emergency will result in a grade of zero.

Withdrawals

It is the student’s responsibility to initiate a withdrawal before midterm in order to receive a grade of W rather than WF. Although instructors have the right to withdraw a student who has stopped attending class or submitting assignments, you should not assume that you will automatically be withdrawn if you stop attending.

Any student not withdrawn from the course who misses the final exam without a documented excuse (as described in the Late Policy section) will receive an F. In case of an documented emergency at the time of the final, the student may be allowed to receive a grade of I.

Classroom Behavior

You are expected to come to class on time and stay until the end of the lecture: late arrivals and early departures disturb the learning experience for everyone. No cell phones or other visible distractions are allowed during lectures. Paying attention to the lecture, taking notes, and participating in in-class activities will help increase your retention of the material and improve your confidence on the exams. Asking questions in class is encouraged; your instructor would much rather stop the lecture to answer a question than continue on while the class is still confused.

Academic Accommodations

Augusta University believes academically qualified individuals with disabilities should have equal opportunity and access to a quality education. We have been actively involved in fostering an environment that encourages full participation by students with disabilities in every segment of the University. https://www.augusta.edu/tds/disabilityservices.php

Accommodations for students with disabilities are made on an Individual basis. Students must register and request services from the Director of Testing and Disability Services. In order to receive services, students must provide current documentation of their disability from a qualified health professional. (visit https://www.augusta.edu/tds/criteria.php for documentation criteria)

Appointments can be made by calling The Office of Testing and Disability Services at (706) 737-1469 or by emailing . It is the student’s responsibility for initiating an appointment and following “How to Receive Service” instructions found at: https://www.augusta.edu/tds/accommodation.php

The Office of Testing and Disability Services is located at 2500 Walton Way Galloway Hall Room 101 Augusta, GA 30904.

If the student does not obtain academic accommodations through The Office of Testing and Disability Services, it is assumed no special accommodations or modifications will be necessary to meet the requirements of this course.

Academic Honesty

Honesty and integrity are essential to an academic community if the honors and credentials it awards are to receive respect. The responsibility for the practice and preservation of honesty must be equally assumed by all of its members. Any type of dishonesty in securing those credentials therefore invites serious sanctions, up to and including a WF or F in the course, and expulsion from the institution. Augusta University’s academic regulations, as well as the student’s manual, provide specific definitions of cheating and plagiarism and describe the consequences for engaging in this kind of misconduct.

Unethical behavior of students in any form is not acceptable and will not be tolerated in the School of Computer and Cyber Sciences. Academic dishonesty – cheating on exams, plagiarism of the work of others, unapproved collaboration on graded work, and the like – will be dealt with immediately and with clear consequences. Depending on the nature and severity of the problem, a student who is guilty of any such violation may be: 1) withdrawn from the course with a grade of WF (counted as an F in the GPA); 2) given a grade of zero on the assignment; 3) given a grade of F in the course; or 4) otherwise penalized, at the discretion of the faculty member. Two occurrences of a WF grade for academic dishonesty will result in a student being expelled from the University, per current University policy as described in the University Catalog.

In general, all work you submit for this class must be entirely your own and must not be shared with anyone else. If you are unsure about whether or not certain kinds of collaboration are permissible, please ask your instructor.

Generative AI use

Any text-generating software (such as ChatGPT, Claude, Microsoft Copilot) cannot be used for graded material, and their use will be treated as plagiarism. Any use of these or other text-generating software constitutes a violation of Augusta University’s Academic Honesty Policy, and the institution’s policy will be followed to the letter in those instances.

However, students are allowed to use those tools to test their programs, i.e., to generate test cases, but not to generate their answers or to review their answers before submitting them. Students are also allowed to use those tools to look for guidance or additional resources, or to generate multiple-choice questions, or study guides.

Campus Carry Legislation

Please be aware of the USG guidance on House Bill 280. Note that you may not carry a handgun if high school students are enrolled in the class, and that it is your responsibility to visit the registrar to determine whenever this is the case or not.