  Algorithm design is a vital skill developed in most undergraduate Computer
Science (CS) programs, but few research studies focus on pedagogy related to
algorithms coursework. To understand the work that has been done in the area,
we present a systematic survey and literature review of CS Education studies.
We search for research that is both related to algorithm design and evaluated
on undergraduate-level students. Across all papers in the ACM Digital Library
prior to August 2023, we only find 94 such papers.
  We first classify these papers by topic, evaluation metric, evaluation
methods, and intervention target. Through our classification, we find a broad
sparsity of papers which indicates that many open questions remain about
teaching algorithm design, with each algorithm topic only being discussed in
between 0 and 10 papers. We also note the need for papers using rigorous
research methods, as only 38 out of 88 papers presenting quantitative data use
statistical tests, and only 15 out of 45 papers presenting qualitative data use
a coding scheme. Only 17 papers report controlled trials.
  We then synthesize the results of the existing literature to give insights
into what the corpus reveals about how we should teach algorithms. Much of the
literature explores implementing well-established practices, such as active
learning or automated assessment, in the algorithms classroom. However, there
are algorithms-specific results as well: a number of papers find that students
may under-utilize certain algorithmic design techniques, and studies describe a
variety of ways to select algorithms problems that increase student engagement
and learning.
  The results we present, along with the publicly available set of papers
collected, provide a detailed representation of the current corpus of CS
Education work related to algorithm design and can orient further research in
the area.
