COMP 368.00 Applied Algorithms

Here’s the syllabus as clean HTML you can paste directly into WordPress:

“`html

COMP 368.00 Applied Algorithms – Spring

Instructor: James Skon
Office: Chalmers 428
Phone: 740-427-5369
Department: Computing

Class Location: Chalmers 320
Meeting Times: Monday, Wednesday, Friday, 1:10–2:00 PM


Office Hours

Times: Monday, Wednesday, Friday 9:00–11:00 AM (Chalmers 428)
Appointments: [Book Meeting Link]
Walk-ins welcome; appointments receive priority.

Class Tutor: TBA
MSSC Hours: TBA


Course Description and Learning Objectives

This course explores the design, analysis, and implementation of efficient algorithms for solving
computational problems. Students will develop mastery of core algorithmic techniques, including
divide and conquer, greedy design, dynamic programming, graph algorithms, hashing, and network flow.

The course emphasizes:

  • How to analyze algorithm performance using asymptotic notation.
  • How to reason about correctness, optimality, and edge cases.
  • How to translate mathematical insights into efficient implementations.
  • How to recognize when problems are tractable, hard, or provably intractable.

A major theme of the course is interdisciplinary application of algorithms. Students will connect classic
algorithmic methods with problems in the humanities, natural sciences, social sciences, arts, and community research.
Possible domains include:

  • Cultural heritage algorithms (text alignment, clustering variants, intertextual networks).
  • Summarization alignment and hallucination detection in modern AI.
  • Environmental clustering and habitat detection using ecological datasets.
  • Community health access modeling with shortest paths and facility-location methods.
  • Exhibition-layout optimization using constraint solving and greedy heuristics.
  • Philosophical decision modeling with decision trees.
  • Historical diffusion modeling using graph processes.
  • Economic optimization problems under constraints.
  • Musical structure modeling with trees and heaps.
  • Biological clustering using union–find and related methods.
  • Political districting as graph partitioning.
  • Archaeological spatial clustering and reconstruction.
  • Art and design: algorithmic generation and layout variants.

Students will work with real datasets, public repositories, and partner organizations whenever feasible.

Prerequisites:
COMP 218: Data Structures or equivalent.
MATH 112 (Calculus II) or higher.
This course does not count toward any mathematics major requirement.


Course Resources

Textbook:
Steven Skiena, The Algorithm Design Manual, 2nd Edition.
Algorithm archive and resources: https://www.algorist.com/

Programming Environment:
Students may use their preferred C++, Python, or mixed environment depending on the assignment.

  • Replit.com (quick start, browser-based).
  • VS Code with C++ or Python tools installed.
  • GitHub Classroom for assignment distribution and submission.

GitHub:
Use your Kenyon email and a name-identifiable username.
Assignments will be distributed via GitHub Classroom.
Join using the link provided on Moodle.

Moodle:
All assignments, labs, quizzes, and exams will be posted and submitted via Moodle.


Artificial Intelligence (AI) Use Policy

The purpose of this course is for students to learn how to design, analyze, and implement algorithms.
To ensure authentic learning, the use of AI tools is restricted.

Permitted Use:

AI tools may be used only when explicitly allowed in a particular assignment, such as:

  • Generating test data or scenario variations.
  • Producing small helper scripts to analyze datasets.
  • Reviewing student-written code after it has been tested.
  • Checking mathematical steps or verifying proofs for clarity.

Prohibited Use:

Unless explicitly permitted, students may not use AI tools or online code repositories to:

  • Generate or complete code for assignments.
  • Solve programming or mathematical problems.
  • Rewrite or optimize assignment solutions.

All work must reflect the student’s own reasoning. Using AI or online sources beyond what is allowed
constitutes academic dishonesty.

If you are uncertain whether a particular use of AI is allowed, ask the instructor before using it.


Grading and Evaluation Criteria

Component Percentage
Quizzes 20%
Interdisciplinary Labs/Projects 45%
Midterm Exam 10%
Final Exam 25%
Total 100%

Assessments

Quizzes

  • Short quizzes at the start of many classes.
  • Based on the reading and topics for the day.
  • Bring a laptop to every class.
  • Lowest quiz scores will be dropped.
  • No makeup quizzes except for documented long-term circumstances.

Labs and Interdisciplinary Projects

  • Weekly or bi-weekly algorithmic problem-solving labs.
  • Projects involve applying algorithms to real or semi-real datasets.
  • May include cultural heritage, ecological data, health access modeling, design optimization, or other interdisciplinary themes.
  • Collaborative coding is encouraged where specified.
  • Labs are the most heavily weighted part of the course.

Exams

Midterm Exam: Friday, February 28 (in class).
Final Exam: Friday, May 2 (Moodle test; details announced on Moodle).


Participation and Engagement

Students are expected to participate actively. Legitimate absences (illness, religious observances, athletics)
must be communicated in advance.

Participation includes:

  • Attendance.
  • In-class work and discussion.
  • Explanations of submitted code when called upon.
  • Engagement with Moodle discussions.
  • Collaboration etiquette during projects.

Programming Assignment Grading Criteria

  • Correctness: Meets requirements and handles edge cases.
  • Design: Modular, well-structured algorithms.
  • User Interface (when required): Clear and functional.
  • Style & Documentation: Readable, well-commented code.
  • Efficiency: Reasonable time/space complexity based on course expectations.

Programs failing to compile: maximum 50%.
Programs with runtime errors: maximum 75%.


Late Policy

Late submissions are accepted only with prior permission through the Request Form.

Options:

  • One-Week Extension: Request at least 1 week in advance.
  • Three-Day Extension: Request at least 3 days in advance.
  • 24-Hour Extension: Request any time before the due date.

No editing of submissions after the due date without permission.


Academic Honesty

All work must reflect your own understanding. Pair or team work must follow the course guidelines.
Violations will follow the college’s academic honesty policy.


Study Tips

  • Complete the reading before each class.
  • Come prepared with questions about the material.
  • Start labs early and work consistently.
  • Make use of office hours, tutoring, and peer support.
  • Practice implementing algorithms multiple times.
  • Work through examples by hand before coding.

Tentative Course Schedule

MWF, January 12 – May 1
Spring Break: March 2–13 (no classes)
This schedule will be updated as needed on Moodle.

<

Date Slides Examples Section/Topic/Reading Quiz Due
Jan 12 Intro Algorithmic Thinking Course overview; review of asymptotic notation; Skiena Ch. 1
Jan 14 Algorithms Review Growth rates Mathematical foundations; problem models 1
Jan 17 Divide & Conquer Merge Sort Skiena Ch. 2; recursion warm-up 2
Jan 19 D&C Applications FFT overview More divide-and-conquer; case studies
Jan 21 Engineering Algorithms Profiling Runtime measurement and instrumentation 3
Jan 24 Greedy Algorithms Interval scheduling Skiena Ch. 4
Jan 26 Greedy Failures Counterexamples When greedy fails; matroids intro 4
Jan 28 Interdisciplinary: Exhibition Layout Spatial heuristics Greedy and backtracking for layout optimization
Jan 31 Dynamic Programming Edit distance Skiena Ch. 6; DP introduction 5
Feb 2 DP Continued Text alignment Cultural heritage applications
Feb 4 DP Advanced Sequence segmentation Machine summarization alignment 6
Feb 7 Graphs I BFS/DFS Skiena Ch. 5; graph modeling
Feb 9 Graphs II Shortest paths Dijkstra, Bellman–Ford 7
Feb 11 Interdisciplinary: Community Health Facility access Shortest-path modeling on local geographic data
Feb 14 MSTs Kruskal, Prim Skiena Ch. 5; union–find deep dive 8
Feb 16 Environmental Clustering Habitat detection Real ecological network data
Feb 18 Network Flow Max-flow min-cut Skiena Ch. 7 9
Feb 21 Flow Applications Matching Stable matching; bipartite matching
Feb 23 Midterm Review Case studies Comprehensive review Lab 1
Feb 28 Midterm Exam In-class exam
Spring Break (March 2–13) – No Class
Mar 16 Approximation Algorithms Vertex cover NP-hardness introduction 10
Mar 18 NP-Completeness Reductions Skiena Ch. 8
Mar 20 Hard Problems SAT, Clique Reduction practice 11
Mar 23 Heuristics Local search Simulated annealing, hill climbing
Mar 25 Randomization Randomized quicksort Probabilistic analysis 12
Mar 27 Randomized Algorithms Universal hashing More randomness
Mar 30 Interdisciplinary: AI Hallucination Detection Summary alignment Ranking, clustering, and DP 13
Apr 1 String Algorithms Suffix structures Advanced text algorithms
Apr 3 Data-driven Algorithms Embedding graphs Real dataset practice 14
Apr 6 Geographic & Political Maps Gerrymandering Graph partitioning
Apr 8 Constraint Satisfaction Backtracking Applications in design and scheduling 15
Apr 10 Gallery Layout Optimization II Constraint solving Gund Gallery dataset
Apr 13 Biological Algorithms Clustering Ecosystem modeling 16
Apr 15 Approximation II PTAS concepts Skiena supplements
Apr 17 Wrap-up Topics Student-chosen case studies Course-wide integration 17 Lab 7
Apr 20 Review Algorithms panorama Preparation for final
Apr 22 Practice Mixed problems Targeted review 18
Apr 24 Course Synthesis Interdisciplinary reflections Conceptual wrap-up
Apr 27 Final Review Strategy and tips Final Q&A
May 1 Last Class Q&A Course evaluations and closing

Final Exam: Friday, May 2 (Moodle test; details on Moodle)

“`

If you’d like, I can also strip out the midterm/final dates or adjust them to your official registrar calendar before you publish.

Scroll to Top