CS4122 – Algorithms and Data Structures (Fall 2026)


Course Description

Survey of advanced algorithms and data structures such as heaps and heapsort, quicksort, red-black trees, B-trees, hash tables, graph algorithms, divide and conquer algorithms, dynamic programming, and greedy algorithms. Methods for proving correctness and asymptotic analysis.

Instructor

Dr. Andrew M. Sutton
Email: amsutton@d.umn.edu
Tel: 218.726.7978
Office: 311 Heller Hall
Office Hours: Mon, Wed, Fri 11:00-12:00

Teaching Assistant

Shafat Rashid
Email: rashi147@umn.edu
Office Hours: Wed and Fri 2:00-3:00pm, Thu 5:00-6:00pm
Location: 187 MWAH

Meeting Times and Locations

  Day Time Location
Lecture M W F 9:00am-9:50am MWAH 177
Lab Th 6:00pm-6:50pm MWAH 177

Pre-requisites

  • CS 2511 - Software Analysis and Design
  • CS 2531 - Discrete Structures or Math 3355 - Discrete Math

A grade of C- or better is required in all prerequisite courses.

Important note: The computer science bachelor's degree program at UMD is accredited by CAC (the Computing Accreditation Commission). One of the CAC requirements is that all students must satisfy the prerequisites in order to be admitted to a course, so if you have not passed the prerequisite courses, you must drop this course (if you have any questions about this, please see the instructor after the lecture or during office hours).

Text

Cormen, T. H., C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms, Third Edition, 2009, MIT Press, Cambridge, MA, ISBN: 978-0-262-03384-8 (hardcover) or 978-0-262-53305-8 (paperback).

Web site: http://mitpress.mit.edu/algorithms and the list of corrections is here

University of Minnesota students can access a free version here

Course Content and Objectives

Content

Advanced computer programming requires an understanding of both the objects on which programs work, the data structures, and the sequences of steps driving the programs themselves, the algorithms. In order for data structures and algorithms to be generally useful, they often must overcome memory and speed limitations of the underlying machine. Thus it is important for the programmer to be able to analyze algorithms for their efficiency in execution and use of space for data.

This course will improve your skills as a programmer by (1) teaching you the mathematical language for talking about program behavior, (2) develop your skills for algorithmic thinking, and (3) sharpen your abilities for data and procedural abstraction.

Below is a tentative schedule for the semester.

Week Dates Topic
1 Aug 31, Sep 2, 4 Introduction
2 Sep 9, 11  
3 Sep 14, 16, 18 Asymptotic Analysis
4 Sep 21, 23, 25 Divide-and-Conquer Algorithms
5 Sep 28, 30, Oct 2  
6 Oct 5, 7, 9  
7 Oct 12, 14, 16 Randomized Algorithms
8 Oct 19, 21, 23  
9 Oct 26, 28 ADS: Red-black trees and Disjoint-set forests
10 Nov 2,4,6  
11 Nov 9, 11, 13 ADS: Heaps, Fibonacci Heaps, Amortized Analysis
12 Nov 16, 18, 20 Greedy Algorithms
13 Nov 23, 25 Dynamic Programming Algorithms
14 Nov 30, Dec 2, 4 Network Flow
15 Dec 7, 9, 11 Advanced Topics
16 Dec 14-18 FINAL EXAM WEEK

Objectives and Student Learning Outcomes

This course addresses UMD campus student learning outcomes (SLOs), as well as CS education outcomes specified by the UMD Department of Computer Science and aligned with the standards put forth by the ABET accrediting board.

  • SLO 1: Demonstrate competence in a major field
    • The students will gain knowledge of the core methods of

advanced data structures such as use of appropriate data structures and algorithms, and their running times.

  • The students will demonstrate competent use of data structures and algorithms in lab and homework assignments.
  • The students will demonstrate knowledge of data structures and algorithms on exam questions.
  • SLO 3: Think critically and creatively in seeking solutions to practical and theoretical problems.
    • The students will be able to recognize different types of

algorithmic problems and identify the best approach of how to solve them

  • The students will be able to determine the most appropriate data structures to utilize, or be able to design their own

Assignments and Grading

Assignments

There will be weekly assignments which will consist of both programming and non-programming problems. Programming assignments will be based on algorithms written in a generic pseudo-code presented in lecture and in the text.

All assignments must be submitted by their stated due date.

Late work policy

All labs and assignments must be submitted on time. Generally, we do not accept late work. If you have some extenuating circumstances, please contact the instructor before the due date.

Participation

Part of your final grade will include a class participation component. You can earn participation points by contributing to classroom discussions, answering questions, coming to office hours, etc. To allow a fair chance for everyone to participate, I will sometimes draw names at random to ask questions about the material. Don't worry about getting the answer right! Research suggests that answering questions incorrectly can be valuable for moving information from working memory into long-term memory.

Examinations

There will be two midterm exams, worth 100 points each and a final exam worth 200 points.

All exams are closed book, and the final exam will be comprehensive. Exams will not be given early, and makeups must be justified by dire circumstances described to the instructor before the time of the exam. It is Department of Computer Science policy not to return final exams, however they are kept and you can look at your exam in the instructor's office. The UMD Final Examination Policy web page explains the UMD policy about having more than two final exams on a single day, among other things.

Exam Schedule

In order to adapt the exams to the pace of the class, the following exam schedule will be updated with specific dates as the semester progresses. Please check back here for exact dates.

Exam Points Date
Midterm Exam 1 100 TBA (~Week 8)
Midterm Exam 2 100 TBA (~Week 13)
Final Exam 200 TBA (Week 16)

Assessment Components (undergraduate)

Labs and Assignments (30%)
Participation (10%)
Exams
Midterms (30%)
There will be two midterm examinations, in approximately weeks seven and twelve of the course. The dates of the midterms will be announced at least one week beforehand.
Cumulative Final (30%)
The final exam will take place during finals week. The date and time will be announced beforehand. Please confirm the time before the exam, as the schedule may change. The final exam policy can be found here.

University Policies

Student Conduct Code

Appropriate classroom conduct promotes an environment of academic achievement and integrity. Disruptive classroom behavior that substantially or repeatedly interrupts either the instructor's ability to teach, or student learning, is prohibited. Students are expected to adhere to the Board of Regents Policy.

Student Academic Integrity

Academic dishonesty tarnishes UMD’s reputation and discredits the accomplishments of students. Academic dishonesty is regarded as a serious offense by all members of the academic community.

Appropriate Use of Class Notes & Course Materials

Taking notes is a means of recording information but more importantly of personally absorbing and integrating the educational experience. However, broadly disseminating class notes beyond the classroom community or accepting compensation for taking and distributing classroom notes undermines instructor interests in their intellectual work product while not substantially furthering instructor and student interests in effective learning.

Excused Absences

Students are expected to attend all scheduled class meetings. It is the responsibility of students to plan their schedules to avoid excessive conflict with course requirements. However, there are legitimate circumstances that lead to excused student absence from the classroom. These are subpoenas, jury duty, military duty, religious observances, illness, bereavement, and NCAA varsity intercollegiate athletics.

Final Examinations

All 1xxx-5xxx courses offered for undergraduate credit should include a final graded component or end of term evaluation that assesses the level of student achievement of one or more course objectives. All final graded components are to be administered or due at the time and place according to the final exam schedule and not during the last week of class.

Teaching & Learning: Instructor & Student Responsibilities

UMD is committed to providing a positive, safe, and inclusive place for all who study and work here. Instructors and students have mutual responsibility to ensure that the environment in all of these settings supports teaching and learning, is respectful of the rights and freedoms of all members, and promotes a civil and open exchange of ideas.

Sexual Harassment, Sexual Assault, Stalking and Relationship Violence

Sexual harassment means unwelcome sexual advances, requests for sexual favors, and/or other verbal or physical conduct of a sexual nature. Such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance or creating an intimidating, hostile, or offensive working or academic environment in any University activity or program. Such behavior is not acceptable in the University setting. See also: Board of Regents Policy.

Equity, Diversity, Equal Employment Opportunity, and Affirmative Action

The University provides equal access to and opportunity in its programs and facilities, without regard to race, color, creed, religion, national origin, gender, age, marital status, disability, public assistance status, veteran status, sexual orientation, gender identity, or gender expression. Equal Opportunity and Affirmative Action and the Office of Student Conduct & Conflict Resolution are both available to all UMD employees, students, and participants in University-related activities to discuss issues or concerns regarding University policies or practices involving potential bias, discrimination, harassment or retaliation that an individual may have experienced or observed.

Academic Freedom and Responsibility

Thoughtful dialog is a cornerstone of higher education. This expectation is upheld in the University of Minnesota's Board of Regents Policy: Academic Freedom and Responsibility, which says in part:

SECTION II. ACADEMIC FREEDOM. Academic freedom is the freedom, without institutional discipline or restraint, to discuss all relevant matters in the classroom, to explore all avenues of scholarship, research, and creative expression, and to speak or write on matters of public concern as well as on matters related to professional duties and the functioning of the University.

Resources for Students with Disabilities

It is the policy and practice of the University of Minnesota Duluth to create inclusive learning environments for all students, including students with disabilities. If there are aspects of this course that result in barriers to your inclusion or your ability to meet course requirements such as time limited exams, inaccessible web content, or the use of non-captioned videos, please notify the instructor as soon as possible. You are also encouraged to contact the Office of Disability Resources to discuss and arrange reasonable accommodations. Call 218-726-6130 or visit the Disability Resources website for more information.

Last updated: 2026-09-28 Mon 10:42