The second data exploration exercise introduces students to three dimensional crystallographic protein structures. The Jupyter notebook utilizes the python library py3dmol to upload protein structures from the Protein Data Bank (RCSB.org) and visualize them within the Jupyter notebook (Figure ). Students are able to use their mouses to zoom in and out of view on a protein and can rotate the molecule 360 degrees. This data exploration module was introduced to students after they had received three lectures on protein structure, function and folding (Supplementary Table ). Aside from visualizing proteins in three dimensions, the students are asked to label specific architectural components of proteins that they learn about in class. For example, the students learn about how the structure of hemoglobin is crucial to its functioning in the cells and in the organism as a whole. Using Jupyter notebooks, students visualize hemoglobin in 3D, label the alpha and beta chains, locate the heme-group atoms and label the amino acids that are in the Bohr positions. An additional exercise was created to give students practice with visualizing mutations on proteins and inferring what their potential functional effects are. In this case, a BRCA1 protein is co-crystallized with BARD1 and both proteins bind to zinc ions. Students in this exercise are asked to label the amino acids that have been mutated during a saturated mutagenesis experiment that impact the function of BRCA1 the most and infer why their positioning in the protein may explain this impact.