Equipping Algorithm Engineers

Ensure Success in Algorithm Analysis
Published

January 13, 2025

Exploration

Activities

  • Tuesday and Thursday: Course introduction
    • Introduction to algorithm engineering
    • Overview of a course on algorithm analysis
    • Prepare for an algorithm engineering project
  • Friday: Algorithm engineering project one

Project

Goal

To build and use a Python program, called systemsense, that makes it possible to “sense” the characteristics of an execution platform and characterize its performance with microbenchmarks, thereby setting the stage for future algorithm engineering projects.

Steps

  • Click the link provided in Discord to get started on this project
  • Leverage System Sense as your template repository
  • Install the project’s dependencies using devenv and/or poetry
  • Follow the instructions to complete the project
  • Schedule office hours if you have questions
Student Insights

Students who completed this project shared these insights:

  • “If a function is not fully tested, any number of bugs could come up during the process of running and evaluating it, muddying the performance results.” Mordred Boulais

  • “Operating systems each store and reference their own diagnostic information in distinct ways. Although some operating systems and computer architectures are obsolete from the perspective of a developer, it is important to note that each operating system and processor architecture was built for a specific purpose, just like we as humans are made with a specific purpose.” Simon Jones

  • “The way modules, files, and function were written ensured that students with different computers would have comparable results. This is important so that going forward we can accurately compare our results. Metaphorically speaking, we need to compare apples to apples and oranges to oranges and not apples to oranges.” Rebekah Rudd

Slides

Full Screen: Week One: Introduction to Algorithm Analysis

Back to top