Data Structures

MAT 3710

4 credits
Spring 2025

Meeting Times: Mondays and Thursdays, 10:30 - 12:10
Location: Library 1004B
Instructor: Professor Abdul-Quader (or just “Athar”)
Email: athar.abdulquader AT purchase DOT edu
Office Hours: Mondays and Thursdays, 9 - 10 NSB 3003

Course Description

Prerequisite: Computer Science II
Covers standard data structures (e.g., lists, stacks, heaps) and object¬-oriented algorithms important to software development. Tradeoffs between time and space are examined. Includes programming as well as theoretical assignments. Examples are often taken from technical interview-style questions.

Learning Outcomes

Upon completion of this course, students should be able to…

Required Textbook

Clifford Shaffer, Data Structures and Algorithm Analysis, 3rd edition. This text is available for free online.

We will be using parts of the OpenDSA CS3 textbook as well.

Recommended textbook: Mark Allen Weiss, Data Structures and Algorithm Analysis in Java, 3rd Edtition. This text should be on reserve at the library.

Java / IntelliJ / VSCode

All programming assignments will be completed in Java. You will need:

  1. Download and install Java Development Kit.
  2. Download and install the Ultimate Edition of the Jetbrains IntelliJ IDE and apply for a free full license using your Purchase email address.
  3. Download and install Visual Studio Code.
  4. Install the “Extension Pack for Java” extension for VSCode.

For in-class exercises, we might use IntelliJ, the Terminal (on Mac), or VSCode. For projects that need to be submitted, most likely we will require the use of VSCode, as it works better with GitHub Classroom.

GitHub Classroom

We will be using GitHub Classroom to submit projects and possibly some classwork / homework assignments. More information will be found on BrightSpace.

PURCHASE COLLEGE ACADEMIC INTEGRITY POLICY

The Purchase College academic integrity policy explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution. Violation of any of the above may lead to formal disciplinary action.

Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.

ACCESSIBILITY STATEMENT

The Office of Disability Resources collaborates directly with students who identify documented disabilities to create accommodation plans, including testing accommodations, in order for students to access course content and validly demonstrate learning. For those students who may require accommodations, please contact the Office of Disability Resources as soon as possible, 914-251-6035, ODR@purchase.edu (Student Services Building, #316A), www.purchase.edu/odr.

MENTAL HEALTH AND WELL-BEING

University faculty and staff recognize that mental health and stress can impact college performance and interfere with daily life activities. At Purchase, Counseling & Behavioral Health Services can provide support if you’re struggling with feeling overwhelmed, anxious, depressed, lost, stuck or in a crisis. Please call (914)251-6390 or visit our website for more information. CBHS services are free and confidential.

We support all students experiencing emergencies. Services include therapy, support groups, stress reduction at the Harbor Center, and other activities.  The Counseling Center in Humanities Lower Level is open M-F, from 9:00a.m.– 5:00p.m. for appointments and walk-up scheduling, or call (914) 251-6390.  The Harbor Center Sanctuary in Fort Awesome is available for stress reduction, mindfulness and meditation training, free drop-in classes and support groups, and relaxation.

STUDENT CONDUCT

All students are expected to conduct themselves in accordance with Purchase College’s Student Code of Conduct.  Any repetitive or disruptive behavior, including but not limited to outbursts, intoxication/drug use, personal or physical threats, damage to property, etc., may result in the professor requesting the student to leave class, contacting University Police, and/or notifying the Office of Community Standards.

Attendance

My expectation is that students come to class whenever possible. Given the ongoing nature of the pandemic, I understand when this may be difficult or outright impossible. In particular, please do stay home if you feel sick at all. I will do my best to make sure notes, readings, and other materials are available online for those who need them.

That said, please do come to class as much as you can. This will allow me to see how well students understand material, and you to work through problems and questions with each other (and me).

Grading Policy

Late Homework Policy

Programming projects may require a lot of time and I plan to give you plenty of time to complete them (at least 2 weeks). However, things do happen, and so I will make an allowance of up to 48 hours of grace time for you to use among all the projects. (That is, if your first project is 48 hours late, then the rest of your projects need to be handed in on time.)

This policy does not apply to the weekly homework and class exercises, which must be submitted on time.

Collaboration Policy

You are encouraged to discuss homework assignments and projects with other students. You must complete the assignment on your own, however. There is a clear difference between copying someone else’s work and discussing a problem with another person. The latter is encouraged. Plagiarising another student’s work can lead to academic sanctions as per Purchase College’s Academic Integrity Policy

Course Outline (Tentative)

Week Topics Readings / Projects
1 Introduction to Big Oh, review of Java, Generic Types Chapters 1, 3, OpenDSA Ch 4
2 Lists, Stacks, Queues Chapter 4 / OpenDSA Chapter 5 (Project 1 assigned)
3 Trees Chapter 5 / OpenDSA Chapter 7
4 Self-balancing Trees Section 13.2 (Project 1 due)
5 Hashing OpenDSA Chapter 10 (Project 2 assigned )
6 Heaps / Heapsort Section 5.5 and 7.3
7 Graphs, Shortest Path Algorithms Chapter 11 / OpenDSA Chapter 14 (Project 2 due)
8 Graph Searching, Graph Coloring and NP Completeness Chapter 11, parts of Chapter 17; OpenDSA Chapter 14 (Project 3 assigned)
9 Sorting Chapter 7, OpenDSA Chapter 8
10 Greedy Algorithms (Project 3 due)
11 Concurrency / Concurrent Data Structures Supplements
12 Producer-consumer pattern, other programming paradigms, Dynamic Programming Chapter 16
13 Project work  
14 Project work  
15 Project Presentations