Equipping Algorithm Engineers

Ensure Success in Algorithm Analysis
Published

January 16, 2024

Exploration

Activities

  • Monday and Wednesday: Course introduction
    • No class on Monday
    • Introduction to algorithm engineering
    • Overview of a course on algorithm analysis
    • Prepare for an algorithm engineering project
  • Thursday: Algorithm engineering project
  • Friday: Continue the algorithm engineering project

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

  • Use System Sense as your template repository
  • Install the project’s dependencies using devenv
  • Follow the instructions to complete the project
  • Schedule office hours if you have questions

Insights

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