CS 4122/5122 - Algorithms and Data Structures (Spring 2023)


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: Tue, Thu 9:30-11am

Teaching Assistant

Nam Phung
Email: phung025@d.umn.edu
Office Hours: Wed 4-5pm, Thu 3-5pm, Fri 3-4pm
Location: 314 Heller Hall

Meeting Times and Locations

  Day Time Location
Lecture T Th 08:00-09:15 HH 306
Lab T 17:00-17:50 HH 306

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,2 Jan 12, 19 Introduction (no class on Jan 17)
3 Jan 24, 26 Asymptotic Analysis
4 Jan 31, Feb 2 Divide-and-Conquer Algorithms
5 Feb 7, 9 Randomized Algorithms
6 Feb 14, 16 ADS: Heaps, Fibonacci Heaps
7 Feb 21, 23 ADS: Red-black trees and Disjoint-set forests
8 Feb 28, Mar 2  
9 Mar 14, 16 Greedy Algorithms
10 Mar 21, 23  
11 Mar 28, 30 Dynamic Programming Algorithms
12 Apr 4, 6  
13 Apr 11, 13 Network Flow
14 Apr 18, 20 Advanced Topics
15 Apr 25, 27  
16 May 1-5 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. Solutions to programming assignments will be written in C++ without using STL.

All assignments must be submitted by their stated due date.

Students enrolled in 5122

If you are a graduate student enrolled in 5122, there will be an extra research project. You will need to complete the following steps.

  • Select a research paper on a particular algorithm. The paper must be approved by the instructor by the first midterm exam.
  • Submit a short report (5-8) pages outlining the paper by the second midterm exam.
  • Give a short (10-15 minute) oral presentation about the paper at the end of the semester

Participation

This is an upper division course, and therefore I will not make attendance mandatory. However, classroom participation will be graded and included as part of the assignment component for the computation of the final grades.

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.

Both 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

Exam Points Date
Midterm Exam 1 100 16 Mar
Midterm Exam 2 100 11 Apr
Final Exam 200 4 May

Grading Procedures

Final grades are based on total points distributed approximately as follows:

  1. Assignments and participation (approx. 200 points)
  2. Midterm Exams (200 points)
  3. Final Exam (200 points)
  4. Graduate research project (5122 students only) (100 points)

Grades are assigned based on a percentage of the total points.

  • The A- cutoff is 90%
  • The B- cutoff is 80%
  • The C- cutoff is 70%
  • The D cutoff is 60%
  • Below 60% is an F

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.

Mental Health and Stress Management Resources

Feelings such as anxiety, anger, depression, low self-esteem, or tension are a normal part of being human and can affect anyone. Sometimes these feelings are temporary and can be eased by rest, relaxation, exercise, good nutrition and the support of trusted friends. At other times, stressors, relationships or past family experiences cannot be managed so easily and become overwhelming. If this happens, and you find it hard to function, you may want to seek professional help. Counseling Services are available at UMD Health Services to assist you. If you are in need of mental health support when Health Services is closed, or in case of an emergency, please contact The Birch Tree Center's Crisis line at 218-623-1800 or go to the emergency room/urgent care at either St. Luke's Hospital or St. Mary's Hospital. If an ambulance is needed, call 911. If the emergency is non-life-threatening and you do not have a means of transportation, call Campus Police at 218-726-7000. If you have needs that Counseling Services does not treat, they have a case manager who helps connect students to referrals as well as navigating issues with insurance. You can learn more about the broad range of confidential mental health services available on campus at UMD Health Services.

Campus COVID Safety

Visit the the UMD Safe Campus webpage for up-to-date COVID information.


The instructor reserves the right to make changes to this syllabus or the course calendar at any time, and without prior notice.


Last updated: 2023-04-18 Tue 17:57