University of Minnesota Duluth
 
 
MyU | Search | People | Departments | Events | News

CS 5521 -- Advanced Algorithms and Data Structures (Fall 2017)

Course Description

Survey of advanced data structures and algorithms 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: T Th 11:00-12:00 (and by appointment)

Teaching Assistant

Janna Madden
Office Hours: M 12:00-13:00, T 16:00-17:00, W 13:00-14:00
Location: 314 Heller Hall

Meeting Times and Locations

Day Time Location
Lecture T Th 09:30-10:45 MWAH 175
Lab T 18:00-18:50 MWAH 177

Moodle

We will use Moodle to assign reading and homework and for submissions, grading and other class-related activities.

Pre-requisites

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.

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) hone your abilities for data and procedural abstraction.

The following is a rough outline of the material that I hope to cover in the course.

Additional material may also be covered from the following set of topics.

Objectives and Student Learning Outcomes

  1. Students will gain knowledge of the core methods of advanced data structures such as use of appropriate data structures and algorithms, and analysis of their running times.
    Expected Outcomes:
    1. The students will demonstrate use of those data structures and algorithms in lab and homework assignments.
    2. The students will demonstrate knowledge of those data structures and algorithms on exam questions.
  2. Students will gain knowledge of key issues in advanced data structures, such as appropriateness of data structures and efficiency of their related algorithms.
    Expected Outcomes:
    1. The students will demonstrate use of those key concepts in lab and homework assignments.
    2. The students will demonstrate knowledge of those key concepts on exam questions.
  3. Students will gain proficiency in applying knowledge from the theory of advanced data structures to various application areas.
    Expected Outcomes:
    1. The students will demonstrate that proficiency in lab and homework assignments.
    2. The students will demonstrate that knowledge on exam questions.

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. The solutions must be written in C or C++ without using STL, as mentioned above. C++ is particularly appropriate for implementing data structures.

All assignments must be submitted by their stated due date.

Examinations

There will be a midterm exam, worth 100 points 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

ExamPointsDate and Time
Midterm Exam 100 points Tuesday, October 24 9:30 AM
Final Exam 200 points Tuesday, December 12 8:00 AM

Grading Procedures

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

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

Academic 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. Student are expected adhere to the Board of Regents Policy: https://regents.umn.edu/sites/regents.umn.edu/files/policies/Student_Conduct_Code.pdf.

Teaching & Learning: Instructor and 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 insure 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. Reference the full policy here: http://d.umn.edu/academic-affairs/academic-policies/classroom-policies/instructor-and-student-responsibilities.

Academic Integrity:
Academic dishonesty is taken seriously by the University. Cheating on assignments or examinations, plagiarizing, or any other act which violates the rights of another student in academic work or that involves misrepresentation of your own work may result in a grade reduction on the assignment/quiz/test or a grade reduction in the class (including the possibility of failing the class). If a student is found responsible for academic dishonesty, a report is filed with the UMD student academic integrity officer and is considered a violation of the Student Conduct Code. The UMD Student Academic Integrity Policy can be found at http://www.d.umn.edu/academic-affairs/academic-policies/classroom-policies/student-academic-integrity. The policy outlines what is considered prohibited conduct.

Final Exams:
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. Reference the full policy here: http://www.d.umn.edu/vcaa/FinalExams.html.

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 and verifiable circumstances that lead to excused student absence from the classroom. These are subpoenas, jury duty, military duty, religious observances, illness, bereavement for immediate family, and NCAA varsity intercollegiate athletics. Find complete information here: http://d.umn.edu/academic-affairs/academic-policies/classroom-policies/excused-absences.

Appropriate Student Use of Class Notes and 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. Find additional information here: http://d.umn.edu/academic-affairs/academic-policies/classroom-policies/course-notes-and-materials.

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 web site at https://umd-general.umn.edu/disability-resources for more information.


© 2017 University of Minnesota Duluth
The University of Minnesota is an equal opportunity educator and employer.
Last modified: August 2017
University of Minnesota Campuses
Crookston | Duluth | Morris
Rochester | Twin Cities | Other Locations