Make it matter for students by connecting computer science to other fields, such as medicine, the humanities, and media. By showing how computer science concepts and skills are used in other fields, you can engage students who may not have considered computer science as a major or career.

Some suggestions

Use interdisciplinary problems. Assign homeworks, labs, and projects that have students apply what they are learning to interesting problems in other fields. The EngageCSEdu collection has lots of examples!

Draw on the expertise of colleagues from other fields. Worried that you can’t make the interdisciplinary connections yourself? Ask around for colleagues who do computational work in their fields. Then have them come talk to your students or collaborate with them on some assignments.

Introduce students to cross-disciplinary computing fields. Highlight the contributions made by other disciplines to new interdisciplinary fields in computing. These are often referred to as 'x-informatics' (e.g., bioinformatics) and 'computational y' (e.g., computational linguistics).

Examples from the collection

Impressionism and Implicit Functions (Looping 2D Space)

This is the sixth lab in a course on computational art (CS1) using Processing (https://processing.org/overview/). In this lab, students write a program that creates an image using an implicit representation of geometry that is drawn using shapes to emulate paint strokes.

In this lab, students will:

  1. Practice using a loop control structure to create an image made of strokes based on implicit lines.
  2. Practice using implicit lines and implicit circles, and the distances from these equations, to create a scene or object.
  3. Create new stroke styles using patterns of points, lines, and ellipses that model the textures seen in many impressionist paintings.
  4. Practice translating mathematical functions into code. 
Engagement Excellence

Computational Creativity Exercise (CCE): Storytelling

In this assignment students work as a team to develop chapters of a story where the first and last sentence of the chapter is prescribed. Students first work independently developing their own chapter and then work collaboratively to identify and resolve logical inconsistencies in the chapters in order to produce a final coherent story.  This exercise will allow students to practice problem decomposition, abstraction, and evaluation, and also debugging and testing.

This exercise was developed as part of the NSF-funded Computational Creativity project at the University of Nebraska-Lincoln.

Engagement Excellence

Resources

5_DNA: Comparative Genomics via Genomic Signature

This is the last of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment requests a Python program to generate a report that serves as a preliminary study to compare and contrast certain features of sequences between multiple organisms. Comparative genomics is the analysis and comparison of genomes from different species. This assignment focuses on “genomic signature” to help infer if a region of DNA is “like” other regions of DNA. The genomic signature refers to the “characteristic frequency of oligonucleotides (e.g., motifs of length 4 bp are referred to as tetramers) in a genome or sequence. It has been observed that the genomic signature of phylogenetically related genomes is similar.

4_DNA: Motif Finder

This is the fourth of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment assumes that you have already located a specific gene (perhaps using some of the software written in the previous assignment) but now you want to investigate the regulatory DNA sequences “upstream” (just prior to or to the left of) that gene. Regulatory (or promoter) sequences in intergenic regions (between the genes) are vitally important in the process of protein production. Promoter motifs (DNA "words") often are repetitive and/or "fuzzy" (variable) DNA sequences upstream of genes. This assignment applies regular expressions to locate certain categories of repetitions (direct and mirror repeats).

3_DNA: Mini Gene Finder

This is the third of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics: the analysis of DNA within a single cell of an organism. Originally, the course targeted students in the life sciences but it now attracts students across the academy. The goal of these assignments is to prepare students to obtain enough confidence with scripting and associated scientific write-ups to conduct a small computational experiment in a final project.

This programming assignment requests a Python program to work the steps in a simplified view of the Central Dogma of molecular biology that relates DNA, RNA, and proteins. Briefly put, the DNA sequence (gene) provides instructions for the protein's production. The program produces all three reading frames of an mRNA and outputs the results of four elementary tests to help a human reader pick the “valid” protein.

1_DNA: Playing with (strings of) DNA

This is the first of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics. This assignment requests a Python program to perform an introductory analysis of a "snip" of DNA that includes some upstream (intergenic) sequence and the beginning (but not all) of a gene (genic sequence). A "Starter Kit" includes a template of a Python source file that shows, by example, good introductory and inline documentation, the use of good (camelCase) variable names, and a healthy dose of print statements that produce meaningful and neat output. 

2_DNA: Chargaff’s Numbers

This is the second of five programming assignments in a semester-long CS-1-like course named DNA to introduce students to programming within the context of genomics. This programming assignment requests a Python program to open and read a FASTA-formatted file filled with DNA and print a neat summary of Chargaff’s numbers, defined as: the number/proportion/percentage of A, C, G, T nucleotides in the file of DNA. Students are required to research and download the genome of an entire microbe of their choice. In addition to submitting source code, students must practice their scientific writing in a report of their program as applied to an entire microbial genome of their choice. The report must include the sections of Introduction, Methods, Results, and Discussion.

Digital Sound Processing

In this assignment, students implement some simple filters on sound objects, including reversing a sound, mixing arbitrary-length lists of sounds, and changing volumes of sounds. These functions can each be written in ten or fifteen lines of code, using objects that represent sounds and samples from our media module. Then, calling on these functions, students write a "song generator": a function that takes a string of note data (a notestring) and produces its representative sound object that can be played or saved as a wav file.

Stereo Sound Processing

In this 2012 Nifty assignment, students use fundamental CS topics to explore digital sound processing. Using variables, functions, conditionals, and assignment operators in conjunction with the Pygraphics library, students perform various manipulations on sound files. Vocals are removed from the wav files by using the vocal-removing algorithm to subtract channels and isolate the single vocal track along a particular frequency range. Additional manipulations on the sound files, such as fading in and out and panning, are covered so that students can examine the various capabilities of using Python to manipulate digital sound. This assignment is ideal for students with an understanding of implementing libraries and an interest in digital sound processing.

Engagement Excellence

Rabbits & Foxes Ecosystem

In this lab, students demonstrate their understanding of while loops and computation by simulating populations of rabbits and foxes in an ecosystem. Students are provided with formulas to compute populations from one year to the next, using previous populations of rabbits and foxes for each. This activity is a good simulation for students beginning to learn about while loops.

Tessellation, Problem Set 2

In this assignment, students will be creating mosaics in Python. Students will work to generate tessellations, such as Ring and Hex. Functions must be composed to generate the various images.

Engagement Excellence

Analyzing Debates- Creating Word Tags/Clouds of a Speech

In this assignment students use dictionaries, lists, tuples, and functions and then create a tag cloud of transcripts from one of the 2012 U.S. Obama-Romney Presidential debates. The program must parse the information and create a tag cloud in an HTML document.

Engagement Excellence
Subscribe to Make Interdisciplinary Connections to CS