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

CPE123 (CS1) Syllabus

This course is one version of Cal Poly's CPE123, an introductory course targeting incoming freshmen. All sections of CPE123 have the goal of engaging students in "demonstrating the relevance of computing to the world around them" by challenging "students with creative, constructivist challenges that are relevant to their own lives.” It assumes no prior experience in computer science.

In this version of CPE123, computational art is used as a means for exploring beginning computer programming, logic and math. The course uses Processing, an open source programming language and IDE built on the Java programming language.

“The hidden agenda of the class is to make you fall in love with the ability to translate thoughts into reality—also known as computer science.” - J. Clements

[Unlike other collection items, syllabi are not peer reviewed.]

Computational Creativity Exercise (CCE): Marble Maze I

In this assignment students work as a team to build, using only specified materials, a structure through which a marble will travel,  Students first work independently developing their own segment of the structure and then work collaboratively to construct a final structure. Students are required to video tape the execution of a marble traveling through the structure lasting at least n seconds. This exercise will allow students to practice problem decomposition, abstraction, generalization, 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.

Dynamic Word Clouds

This project, the 4th unit in a year-long high school introductory programming course, teaches students how to write programs that draw text objects in an individually designed word cloud. It uses the programming language, Processing (www.processing.org), which is a simplified form of Java.

In the 1st section of the project, students learn these new text methods, and are introduced to the for-each loop. They learn how to isolate transformation operations [ translate() / rotate() ] - that are used to render each word - from having side-effects on subsequently drawn words by book-ending drawing commands between pushMatrix() and popMatrix() calls. In the 2nd section, students derive and implement the mathematics involved in animating the word cloud.

The Word Cloud program intertwines these new concepts with the major programming concepts revisited from the first 3 units: variables, conditional statements, Boolean expressions, arrays, classes, iteration and movement.

Summary of the objectives of this assignment:

Engagement Excellence

Ray Casting Project

This project is a series of 5 assignments which incrementally teach the students about Ray Casting. Ray casting is a simulation and approximation of light traveling from a virtual object (for this project, a sphere) to a virtual eye that can be used to generate a three-dimensional image.

The project emphasizes functional decomposition through the topics of data aggregation, loops, lists/arrays, conditional statements, and functions.

Weather Data Analysis

This assignment helps students gain experience and proficiency with the Python pandas package in order to learn how to visualize weather data.  Students use Python to get sample outputs and then graph weather data such as maximum and minimum temperatures as well as number of days with rain. 

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

Computational Creativity Exercise (CCE): Everyday Object

Students will be required to clearly describe the functions of an ordinary object they may use daily, as if they were the inventor of the object. This exercise will allow students to practice problem decomposition, abstraction, algorithmic thinking, and evaluation; as well as, modular programming and encapsulation. To encourage practice, this exercise fosters creativity; asking students to look at the objects in new ways, such as examining the object’s environment and considering its usage. Students work together to develop teamwork skills.

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

Voters Lab

This lab involves students coming up with a poll on a subject in which they are interested; administering the poll to students, faculty and staff on campus; and writing a program to calculate and manipulate poll results. The example provided uses a poll based upon the 2016 US presidential election, although any poll data will do. One goal of this lab is for students to learn how to use arrays of structures. Another is for students to create a program that uses most of the concepts covered in CS1 as a culminating project. Students may work individually or in pairs.

Mad Lib Haiku Lab

This resource is a lab assignment that creates a “Mad Lib™” haiku based on user input. It requires the use of strings and string manipulation functions. The lab can be assigned to individual students or to pairs. The outcome is for students to be able to manipulate strings. In order to make real world connections, students are also asked to list at least one program that uses the strings of data such as finding strings, replacing strings, etc.

Introductory EarSketch Assignment

In this tutorial, students will learn how to navigate the EarSketch environment, and begin to use Python commands through the exploration of a song. Students are then invited to create their own song(s). After this tutorial, students will be able to use EarSketch's full curriculum and acquire deeper knowledge about Python and music composition and remixing.

This exercise is appropriate for high school-level AP CS Principles courses and well as CS0 courses at the collegiate level. This exercise is derived from a tutorial developed for the Hour of Code. It can be completed by following the instructions in the attached documents and working in the EarSketch environment (earsketch.gatech.edu).

EarSketch is a free and online learning environment. No prior knowledge in music or Python are necessary to teach this exercise. With EarSketch, students code in Python to place samples from a vast sound library into musical tracks, arrange them, and add effects.

Engagement Excellence
Subscribe to Make Interdisciplinary Connections to CS