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

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

Intro to CS: Arduino Pumpkin Project

This lab is done in a course that teaches the basics of computational problem solving by exposing students to the building blocks of programming: variables, looping, branching, functions, arrays, etc. The goals of this assignment are (1) to reinforce CS concepts from class and (2) to introduce students to basic hardware components. Using an Arduino clone kit and ultrasonic sensor, students work together to build a pumpkin that flashes LED(s) and makes noise. This project is done in fall semester and is timed to align with Halloween. 

CS1510 (CS1) Syllabus

This is the first introductory computer science course at the University of Northern Iowa. It is a semester-long course with three one-hour classroom lectures and a two-hour interactive lab per week. It is required for computer science majors but non-majors also take the course. No prior programming experience is expected, but the class is designed to be engaging to those with and without programming experience. While a major goal of the course is to provide a good start to the development of programming skills (using Python), the course is not solely about programming.  

Upon successful completion of the course students should have gained the following skills and proficiencies: general computer and operating system usage, computer operation, a mental model of how programs are executed, machine capabilities and functions, general program design, standard approaches to common (simple) programming tasks, abstraction (data , procedural, thinking), data and problem representation, and elementary data structures.

Conditional If Statements Assignment with the SpaceSmasher Game

The purpose of this assignment is to let students experiment with conditional “if” statements while building features of an actual game in Java.  The features explored in this assignment include collision detection, sprite manipulation, mouse and keyboard controls, as well as advanced game mechanics such as power-ups and multi-balls.  Students will practice branching and gain proficiency with Selection Control Structures (“if” and “switch” statements) while producing a customized version of their very own block-breaking real time simulation. 

Subscribe to Make Interdisciplinary Connections to CS