Course Home | Syllabus | Assignments | Schedule | Downloads | [print]

CS 3510: Advanced Algorithms/Data Structures

Spring 2021 Syllabus

Course Description

Required of students pursuing a Computer Science degree or emphasis. Covers the analysis and design of algorithms and data structures, including graphs, greedy algorithms, divide and conquer algorithms, and dynamic programming.


CS 2420 (Grade C- or higher); AND CS 2810 (Grade C- or higher); AND CS 3310 (Grade C- or higher)

Course fees

Course fee: $20, used to assist in maintaining department infrastructure.

Disability Statement

If you suspect or are aware that you have a disability that may affect your success in the course you are strongly encouraged to contact the Disability Resource Center (DRC) located in the North Plaza Building. The disability will be evaluated and eligible students will receive assistance in obtaining reasonable accommodations. Phone # 435-652-7516.


  1. TR 12:00-1:15 pm in Smith 116

    Final exam May 6 at 11:00 am - 12:50 pm


Instructor: Curtis Larsen


Phone: 435-652-7972

Office: North Burns 233

Office Hours: MTWR: 2:00-3:00 pm; or by appointment. (See Zoom link in Canvas.) (Spring 2021)


The student will be able to discuss the principles of:

The student will be able to:



There is one required text for the course. It is available from the campus bookstore. Additionally, there is a recommended text book for reference. It is not available in the campus bookstore.

  1. Algorithms by Dasgupta, Papadimitriou and Vazirani, ISBN: 978-0-07-352340-8 (required)

    This book is required and is the primary text for the course.

  2. Introduction to Algorithms, Third Edition by Cormen, Leiserson, Rivest, and Stein ISBN: 978-0262033848 (recommended)

Computer Labs

You may use the computers and software in the Smith Computer Center. Some lab assistants may be able to help with assignments and pass off homework assignments for introductory courses.

Course Web Site

Assignment submissions and grades will be managed in the Canvas System.

Assignments and Exams


The student is responsible for reading the material in the textbook. A reading schedule is provided with the class schedule on the course website. The student is expected to read the material before the class in which it is discussed. The book also includes material beyond what we will discuss in lecture, which you are encouraged to study on your own. Feel free to bring questions from the reading to lectures or to office hours.


A series of problem sets will be assigned. The number of points awarded per problem set may vary depending on the number and difficulty of the problems. The homework will consist of written problems, computer programming, and efficiency analysis. The assignments are designed to promote the course objectives listed above.

Written problems must be submitted via Canvas by the due date and time. PDF format is accepted. Program source code and analysis reports will be submitted via Canvas by the due date and time.

There will be homework due 3 times a week.


There will be three exams during the semester and one final exam as scheduled during finals week. The exams will be scheduled in the testing center to allow 110 minutes. The final will require the full 110 minutes scheduled for the exam time. The exam topics will be from the recently covered materials. The final exam topics will be comprehensive.


Your assignment group score will be a floating point number between 0 and 1, found by adding up the number of assignment points obtained, and dividing by the number of possible assignment points.

The three examinations during the semester are worth 100 points each. The final examination is worth 200 points. Your examination group score will be a floating point number between 0 and 1, found by adding up the number of examination points obtained, and dividing by the number of possible examination points.

Your course score will be a floating number between 0 and 1, found by multiplying your assignment group score and your examination group score.

Your course letter grade will be assigned based on treating your course score as a percentage and looking up the grade in the table below.

Minimum Percentage Letter Grade Minimum Percentage Letter Grade Minimum Percentage Letter Grade Minimum Percentage Letter Grade
94 A 84 B 74 C 64 D
90 A- 80 B- 70 C- 60 D-
87 B+ 77 C+ 67 D+ 0 F

Course Policies


Students are responsible for material covered and announcements made in class. School-related absences may be made up only if prior arrangements are made. The class schedule presented is approximate. The instructor reserves the right to modify the schedule according to class needs. Changes will be announced in class and posted to the website. Exams and quizzes cannot be made up unless arrangements are made prior to the scheduled time.

Occasional absences are acceptable as long as the student keeps up with assignment work. Students who miss more than two consecutive weeks of class or who miss more than 20% of scheduled classes during the semester without making prior arrangements will receive a failing grade. Students who miss any scheduled exam (including midterm exams and the final exam) or fail to complete a final project without making prior arrangements will receive a failing grade.

Time Commitment

Courses should require about 45 hours of work per credit hour of class. This class will require about 135 hours of work on the part of the student to achieve a passing grade, which is approximately 9 hours per week. If you do not have the time to spend on this course, you should probably rethink your schedule.

Late Policy

Assignments are due on the date specified in the schedule. Handing them in or passing them off after the specified time is considered one day late. You may turn them in up to two school days late with penalties as described below. After two days late, you receive zero points.

For example: if an assignment is due at noon on Thursday:

Saturdays, Sundays, and school holidays do not count as late days. Late days do not extend beyond the last day of class.

Each student is given five free late days to use over the course of the semester. The lateness of an assignment will be determined according to the rules given above, and the first five late days used during the semester will be forgiven. After that, each late day will result in a 10% penalty.

Important notes:


Limited collaboration with other students in the course is permitted. Students may seek help learning concepts and developing programming skills from whatever sources they have available, and are encouraged to do so. Collaboration on assignments, however, must be confined to course instructors, lab assistants, and other students in the course. Students are free to discuss strategies for solving programming assignments with each other, but this must not extend to the level of programming code. Each student must code his/her own solution to each assignment. See the section on cheating.


Cheating will not be tolerated, and will result in a failing grade for the students involved as well as possible disciplinary action from the college. Cheating includes, but is not limited to, turning in homework assignments that are not the student’s own work. It is okay to seek help from others and from reference materials, but only if you learn the material. As a general rule, if you cannot delete your assignment, start over, and re-create it successfully without further help, then your homework is not considered your own work.

You are encouraged to work in groups while studying for tests, discussing class lectures, discussing algorithms for homework solutions, and helping each other identify errors in your homework solutions. If you are unsure if collaboration is appropriate, contact the instructor. Also, note exactly what you did. If your actions are determined to be inappropriate, the response will be much more favorable if you are honest and complete in your disclosure.

Where collaboration is permitted, each student must still create and type in his/her own solution. Any kind of copying and pasting is not okay. If you need help understanding concepts, get it from the instructor or fellow classmates, but never copy another’s code or written work, either electronically or visually. The line between collaborating and cheating is generally one of language: talking about solutions in English or other natural languages is usually okay, while discussions that take place in programming languages are usually not okay. It is a good idea to wait at least 30 minutes after any discussion to start your independent write-up. This will help you commit what you have learned to long-term memory as well as help to avoid crossing the line to cheating.

College Policies

Click on this link: for comprehensive information on the Semester Dates, the Final Exam Schedule, University resources such as the library, Disability Resource Center, IT Student Help Desk, Online Writing Lab, Testing Center, Tutoring Center, Wellness Center and Writing Center. In addition, please review DSU policies and statements with regards to Academic Integrity, Disruptive Behavior and Absences related to university functions.

If you are a student with a medical, psychological, or learning disability or think you might have a disability and would like accommodations, contact the Disability Resource Center (652-7516) in the North Plaza. The Disability Resource Center ( will determine eligibility of the student requesting special services and determine the appropriate accommodations related to their disability.

Last Updated 01/08/2021