Home CPSC 470

CPSC 470B: Algorithms

Meeting Times:TR 11:00 am – 12:15 pm, JFRM 022
Instructor:Ian Finlayson
Email:ifinlay@umw.edu
Office:Farmer 043
Office Hours:TR 8:30 am – 11:00 am, or by appointment
 

Course Description

Prerequisite: CPSC 340. Covers a repertoire of algorithmic problem-solving techniques including greedy algorithms, divide and conquer approaches, dynamic programming, and graph and network algorithms. Covers canonical problems that arise within computer science and standard algorithms to solve them. Emphasizes practical application through coding exercises, problem solving, and collaborative algorithm design.


 

Course Goals & Objectives


 

Student Learning Outcomes

After completing this course, students will be able to:


 

Class Structure

This class will be a flipped classroom with lots of in-class time spent working in teams on programming problems. When we begin a new topic, you will be assigned a reading or video to watch. The schedule below has links to what you should read or watch before each class period. On the days in which these are assigned, we will have a brief quiz on the material. If you miss a quiz, you can make it up during my office hours, or the next class period. We will then go over it together in class, and work on example problems and concepts together.

You will then get into your teams where you will work on programming problems based on the material we cover. These will be stored in the Domjudge programming contest software, so you can submit them in class as many times as you like and they will be evaluated automatically. These do not have a specific due date, but your team should try not to get too far behind, as new problems will be added each week.

This class is structured this way to maximize our time working together on the problems, which most closely works the way computer scientists work together in industry and academia.

This class has no final exam. The final exam period will be reserved for your team to work on any problems they haven't finished yet.


 

Grading Policy

This class will used an XP-based grading scale. Each quiz is worth 15 points. Each day you attend class and actively participate is worth 10 points. Each problem you and your team correctly solve is worth 15 points. Based on the number of class days we have, and the number of quizzes and problems I expect we'll have across the semester the maximum XP available will be at least 800. I may add additional XP opportunities at my discretion.

Your final grade will be calculated using the following table:

GradeXP Threshold
A750
A-725
B+700
B675
B-650
C+625
C600
C-575
D+550
D500
F0

 

Student Conduct


 

Honor Policy

Students are expected to conduct themselves in a manner consistent with the letter and spirit of the Honor Constitution and CPSC department honor policy

For this class, you should not receive unauthorized help on the quizzes. For the team programming problems, you should work together within your team only. You can search the web or use AI for small pieces of a problem (like "how to split a string into a list with Python"), but not for entire programs (like "how to solve the coin row problem in Python").

If you have any questions or need clarification, please don't hesitate to contact me!


 

Accessibility Statement

The Office of Disability Resources has been designated by the university as the primary office to guide, counsel, and assist students with disabilities. If you receive services through the Office of Disability Resources and require accommodations for this class, please provide me a copy of your accommodation letter via email or during a meeting. I encourage you to follow-up with me about your accommodations and needs within this class. I will hold any information you share with me in the strictest confidence unless you give me permission to do otherwise.

If you have not made contact with the Office of Disability Resources and have reasonable accommodation needs, their office is located in Seacobeck 005, phone number is (540) 654-1266 and email is odr@umw.edu. The office will require appropriate documentation of disability.


 

Title IX Statement

University of Mary Washington faculty are committed to supporting students and upholding the University’s Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence. Under Title IX and this Policy, discrimination based upon sex or gender is prohibited. If you experience an incident of sex or gender based discrimination, we encourage you to report it. While you may talk to me, understand that as a “Responsible Employee” of the University, I MUST report to UMW’s Title IX Coordinator what you share. If you wish to speak to someone confidentially, please contact the confidential resources found below. They can connect you with support services and help you explore your options. You may also seek assistance from UMW’s Title IX Coordinator, their contact information can be found below. Please visit http://diversity.umw.edu/title-ix/ to view UMW’s Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence and to find further information on support and resources.


 

Recording Statement

Classroom activities in this course may be recorded by student's enrolled in the course for the personal, educational use of that student or for all students presently enrolled in the class only, and may not be further copied, distributed, published or otherwise used for any other purpose without the express written consent of the course instructor. All students are advised that classroom activities may be taped by students for this purpose. Distribution or sale of class recordings is prohibited without the written permission of the instructor and other students who are recorded. Distribution without permission is a violation of copyright law. This policy is consistent with UMW's Policy on Recording Class and Distribution of Course Materials.


 

Tentative Schedule

Date Class Topic Viewing / Reading Problem Assigned
August 26 Course Introduction, Stable Marriage Problem
August 28 Stable Marriage Problem continued, Domjudge Setup
September 2 Greedy algorithms Activity Selection Problem
September 4 Greedy algorithms continued
September 9 Divide and Conquer
September 11 Divide and Conquer continued
September 16 Graph Search
September 18 Graph Search continued
September 23 No Class
September 25 Decrease and Conquer
September 30 Simulation
October 2 No Class
October 7 String algorithms
October 9 String algorithms continued
October 14 Fall Break
October 16 Disjoint sets
October 21 Dynamic programming
October 23 Dynamic programming continued
October 28 Dynamic programming continued
October 30 Dynamic programming continued
November 4 Election Day
November 6 Backtracking
November 11 Network flow
November 13 Network flow continued
November 18 Combinatorics
November 20 Computational Geometry
November 25 Randomness
November 27 Thanksgiving Break
December 2 Distributed algorithms
December 4 Distributed algorithms
December 9 Final Exam Period, 12:00 – 2:30

Copyright © 2025 Ian Finlayson | Licensed under a Creative Commons BY-NC-SA 4.0 License.