Skip to main content
  1. /classes/
  2. Classes, Spring 2026/
  3. CS 3221 Spring 2026: Course Site/

CS 3221 Spring 2026: Syllabus

·1709 words·9 mins·
Analysis of Algorithms

← Back to Course Site

Course Catalog:
Formal study of algorithms, including those for searching, sorting, and graph structure based ones. Addresses several algorithm design issues such as divide-and-conquer, greedy and dynamic programming. Defines, evaluates and analyzes the correctness, time, and space complexity of algorithms. Covers probabilistic, concurrent programming, and other topics such as P, NP, NP-Completeness and approximation algorithms. Springs.
Prerequisite(s): CS 2381 and (MA 3200 Or MA 2450 Or MA 2250).

Course Info
#

Student Learning Outcomes
#

Successful students will:

  • Be able to analyze algorithms for performance and correctness.
  • Be able to design algorithms to solve problems using common algorithm design techniques.
  • Be able to implement algorithms in an executable programming language.
  • Be familiar with a variety of commonly studied algorithms.

Texts
#

Students are not required to purchase a commercial textbook for this course.

Freely available textbooks:

Grading
#

Thing Weight
Problem Sets 25
Labs 25
Exams 15 + 15 + 20 = 50

The number of points available in an assessment may (or may not) exceed the denominator used in the grade calculation. For example, if the final exam offers 104 points out of 100, then a perfect score would count as 26% towards the final course grade.

Letter grades

≥ 93 → A, ≥ 90 → A-,
≥ 87 → B+, ≥ 83 → B, ≥ 80 → B-,
≥ 77 → C+, ≥ 73 → C, ≥ 70 → C-,
≥ 67 → D+, ≥ 63 → D, ≥ 60 → D-,
else (< 60) → F

Attendance

Attendance is required for all class meetings. You must check in to the online attendance tool within 5 minutes of the start of the period to receive credit for attendance. If you miss more than six meetings then each subsequent unexcused absence will reduce your final grade by 4 percentage points.

There are no makeups for unexcused exam or lab absences.

Problem Sets

Approximately each week there will be a problem set assignment to be completed outside of class. Problem sets will involve a combination of written question and small programming tasks.

Minimizing the use of external resources is recommended, and academic honesty rules will be strictly enforced.

Problem sets will be posted on Inkfish. Check Inkfish regularly for upcoming due dates.

Problem sets submitted after the deadline loses 1% per hour late (round up) to a maximum penalty of 100%.

Labs

We have a lab meeting each week, and in most lab meetings there will be a lab assignment to complete during the class period. Labs will only be accepted before the end of the lab period, and only when submitted from a lab workstation, unless alternate instructions are explicitly given.

The purpose of this course is to teach algorithm analysis. Students need to practice evaluating algorithms themselves. Therefore, the following rules apply to lab assignments:

  • Personal electronics may not be used. If they are brought to lab, they must be kept in a closed container like a backpack.
  • Only approved web resources can be used: Inkfish, the course site, provided lecture notes, the textbooks(s), the official programming language documentation, and anything directly linked from the current lab assignment.
  • That means no Google and definitely no LLM Chatbots during labs.
  • Students who intentionally or repeatedly violate this policy will be asked to leave and will not be able to complete that lab assignment.
  • These specific rules may be overridden by the instructions in individual lab assignments.

Exams

There will be three written exams, each potentially covering any material in the class although with extra weight towards material not covered on previous exams.

Exams will involve writing answers to questions on paper.

Exam rules:

  • Personal electronics may not be used. If they are brought to the exam, they must be kept in a closed container like a backpack.
  • Your written notes on paper are allowed, as are printouts of any provided course materials.

Inkfish and Script Grades

Labs and problem sets will be provided through an online web application called Inkfish and must be submitted through the same system. Any solutions for lab or problem set assignment sent by email will not be accepted and will incur a 5% grade penalty on the associated assignment unless the solution is sent as a direct reply to an email requesting it.

A portion of your grade for labs and homework assignments may be generated by an automatic grading script which runs when you submit your work. Unless there is a clear bug 🪳 in the script, the script output is that portion of your grade and will not be adjusted manually. You are being graded on getting the script to give you points. You should review the output, make corrections, and resubmit before the deadline if you are unhappy with the script results.

Script grades will be reduced if you submit work inconsistent with the text or spirit of the assignment, such as hard-coding outputs that should be calculated.

Teams

You may be assigned to work with a partner. In such cases, actually working together on each task is required. In assigning partners, sometimes there ends up being a team of one or (under rare circumstances) three.

All team members are responsible for and get credit for any work submitted as a team. Keep in mind that pair programming means you should not be doing work for team assignments on your own.

Grade Appeals

If you think you received an incorrect grade, send me an email describing why your grade is wrong and how you think it should be corrected.

If the grade isn’t clearly wrong, I will ask you to stop by my office hours so we can discuss the issue in more detail.

Any grade concerns must be raised within two weeks of the grade being posted.

Fair Grading Policy

All grading in this class is subject to the university Fair Grading Policy.

Excused Absences

Absences will be excused and make-up work allowed only for absences covered by the university Excused Absence Policy.

If you know you will be missing a class meeting in advance you must contact the professor before the meeting. For unforeseen and unavoidable absences, please contact the professor as soon as reasonably possible.

Late Registration

If you register late for the course please contact the professor to discuss completing any missed assignments as soon as possible.

Course Evaluations

Course evaluations can be a valuable tool to determine how the semester went. They’re more useful with a higher response rate. You should do your course evaluations.

Resources
#

Tutoring
#

There should be evening tutoring offered by the college. See the course website for more details. The PASS Office also offers individual tutoring.

Accommodations
#

Plymouth State University is committed to providing students with documented disabilities equal access to all university programs and facilities. If you think you have a disability requiring accommodations, you should contact Campus Accessibility Services (CAS), located in Speare (603-535-3300) to determine whether you are eligible for such accommodations. Academic accommodations will only be considered for students who have registered with CAS. If you have authorized CAS to electronically deliver a Letter of Accommodations for this course, please communicate with your instructor to review your accommodations.

Academic Integrity
#

Please carefully read and be familiar with the university Academic Integrity Policy. Especially don’t do any of the things in the list of examples of academic integrity violations. Make sure to review the penalties for repeated offenses.

The primary subject of this class is writing small computer programs. In order to learn that skill, you need to practice it by completing the programming assignments by writing code yourself (or with your team on team assignments).

Do not:

  • Submit stuff that was written for an assignment in this class by someone who is not on your team.
  • Share solutions code for any assignment in this class with anyone who is not on your team.
  • Post solutions for assignments in this class publicly.
  • Access unauthorized resources in a lab or exam.
  • Search the web for solutions to assignments in this class or similar classes.

Do:

  • Use starter code and small snippets from official documentation as a starting point for your solutions.
  • (On problem sets, not in labs) Ask LLM chatbots questions to clarify concepts and give short code samples to illustrate specifics.

Cheating will be handled as follows:

  • During an exam or lab, if you are caught cheating or acting in a way that appears to facilitate cheating (e.g. using unauthorized electronics) you will be asked to leave and will not be allowed to complete the assignment. In lab, you may get a warning first.
  • The default penalty for cheating on any assignment is zero grade on that assignment.

Partner assignment are expected to be done working together. If your partner cheated on an assignment and submitted it without you seeing, you still get a zero on that assignment.

Tentative Schedule
#

The initial plan is to have problem sets due at end-of-day Wednesday.

Week Date Topic
1 Jan 19 † Welcome, Lab Lab 01
2 Jan 26 Recursion Lab 02, Pset 01
3 Feb 2 Backtracking Lab 03, Pset 02
4 Feb 9 Dynamic Programming Lab 04, Pset 03
5 Feb 16 Greedy Algos Lab 05, Pset 04
6 Feb 23 Exam 1 Lab 06, Pset 05
7 Mar 2 Graph Algos Lab 07, Pset 06
8 Mar 9 MST Lab 08, Pset 07
-- Mar 16 ---- Spring Break ----
9 Mar 23 Flows and Cuts Lab 09, Pset 08
10 Mar 30 Exam 2 Lab 10, Pset 09
11 Apr 6 Parallel Algorithms Lab 11, Pset 10
12 Apr 13 P vs NP Lab 12, Pset 11
13 Apr 20 Even Harder Problems Lab 13, Pset 12
14 Apr 27 Wrap-Up Lab, Pset Redo
- May 4 Finals Week: Final Exam
  • † No class on Monday, Jan 19 (MLK Day)
  • Ski Day doesn’t hit us. We don’t have class Wednesdays.
Nat Tuck
Author
Nat Tuck