CS2852: Data Structures

This course covers the organization of data and the algorithms that act upon them. The topics of arrays, linked lists, stacks, queues, trees, sets, and hash tables are introduced. Fundamentals of algorithm performance are also introduced, with an emphasis placed on time complexity analysis. Laboratory activities include implementation of data structures as well as the application of data structures from standard libraries. (prereq: CS-1021) (3-2-4)


On successful completion of this course, the student will:

General Course Policies

Please review the general course policies webpage.


Data Structures Abstraction and Design Using Java 4th Ed., by Koffman and Wolfgang, Wiley, 2021. ISBN: 978-1-119-70359-4

Lecture Notes and Group Participation (10%)

Pre-recorded lectures are linked from the schedule page and in Canvas. You must watch, take notes on all of the videos, and upload the notes in Canvas prior to class. Note: You may refer to your notes during exams, so it will benefit you to take good notes.

You will be assigned to a group. Each group will meet with me for 30 minutes during each class (except for exam days). This is a time to ask questions about the lecture material. If no one has questions, I plan to ask you questions to help reinforce the material. You should join the channel for your group prior to the scheduled meeting time. You are encouraged to use these meetings before I join and/or after I leave to study with each other.

Your grade for this component will be primarily based on your submitted notes but may be influenced by your engagement when we meet. An unexcused absence from the group meeting will result in zero credit for the notes assignment.

There are a total of 13 grades, the lowest two scores will be dropped.

Laboratory Assignments (30%)

All Lab assignments are worth 100 points per week. A 50% penalty may be assessed for all submissions that do not meet the coding standard guidelines. 1pm to 2:30pm of each class will be time reserved for group meetings. 2:30pm-2:50pm is time to work on lab. I plan to be available to answer questions from 2:30pm until 3:30pm each Tuesday/Thursday.

Lab assignments are due on Mondays at 11pm. I will have office hours 1pm - 3pm on Mondays. I'm happy to have you come in person to my office or contect with me through Teams.

Exams (40%)

An exam will be given on Thursdays of every even week. The lowest exam score will be dropped.

Final Exam (20%)

The final exam will be comprehensive and is scheduled for August 15, 2023.


Tentative Schedule