Course Level
Knowledge Unit
Fundamental Programming Concepts
Collection Item Type

In this assignment, students write a function that finds the maximum number of nucleotide matches on a folded RNA string. Using recursion, students must find the optimal folding for an RNA string by pairing up different combinations of indices in the string. They then optimize their function with memoization. This assignment requires students to work with recursion, memoization, and lists.


Group Students by Level of Experience with CS at the start of this lab to ensure students with less experience working with memoization are not isolated and intimidated by the various tasks. Create an Interdisciplinary Connection to CS by inviting a faculty member from the program in biotechnology to discuss how RNA folding is used by practitioners.

Engagement Highlights

Uses an example from biology to provide Interdisciplinary Connections to CS and Employ Meaningful and Relevant Content.

Materials and Links


Computer Science Details

Programming Language

Material Format and Licensing Information

Creative Commons License