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

Iteration

In this assignment students are asked to respond to "customer requests" such as writing a program which shows the effects of compounded interest as well as developing an algorithm for the number of times a digit appears in different numbers.

Fun with Functions

In this assignment students individually or collaboratively use recursion to write Python functions. Students compare the assigned recursive functions with those that were previously written (and are included with the activity). As an added support the assignment includes information about an online Python visualizer that can be used to help create a visualization of the recursive calls to facilitate deeper understanding of this fundamental CS topic. This activity is particularly useful for students who have some experience with creating functions and are interested in getting more experience and exposure to recursion.

Garden 2

In this project students work independently or collaboratively to calculate the area and volume of an ornamental garden. Using standard mathematical formulas in Python to calculate the area and volume of a pre-defined square plot, the students must build a program that calculates information such as the side length of the finished garden and the recommended spacing between plants. The students must use a variety of functions (such as input(), round(), and print()) to evaluate the user's input and return the proper results. As a project for primarily CS1 students, the problems outlined in the activity are suited for those with experience implementing functions and some level of comfort with implementing basic arithmetic in a programming environment. For students with limited mathematical experience this is a great way to add context around math and programming.

Engagement Excellence

RNA Folding

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.

Revenge of the Groodies!

In this assignment students work individually to write functions that find the longest common subsequence (LCS) and sequence alignment of two given strings. First, students must modify a given function that uses recursion to find the length of the LCS of two strings to find the actual LCS. They then modify their LCS function to return the sequence alignment of the strings, strings with dashes wherever the original strings mismatch. This assignment reviews both recursion and string manipulation.

Engagement Excellence

Sounds good!

In this lab students work either in pairs or individually to write five functions dealing with list recursion and six functions dealing with sound manipulation. As a warmup, students must perform various operations on lists using list comprehension, such as scaling and replacing certain elements. They then manipulate sound files to play in reverse, at different volume, with static, overlaid with another file, and echoed. This lab requires students to work on list comprehension and file i/o. It is particularly useful for students who are new to Python lists.

The authors of this material were awarded a 2015 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.

Engagement Excellence
Subscribe to Make Interdisciplinary Connections to CS