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

Video Reflections

These reflective written exercises connect computer science class material to everyday life experience of the students, illustrate interdisciplinary applications of computing and technology, and highlight the new issues that computing technology brings. Each exercise consists of a video to view and discussion questions to answer in writing (e.g. "How would your day-to-day life change if you had access to an affordable 3D printer and raw materials?" or, "How do algorithms shape our world"?).  Students are allowed to work solo or in pairs, and to use any resources available to them (internet sites and forums, classmates, family members, friends outside of class, etc.) No prior experience with computer science is necessary to complete the exercises, and no programming is involved.

TEACHING PAPER: Computing and the Digital Humanities

This paper introduces three assignments—each with their own “starter kits” for students—for those with a love of the written (and digital) word. These assignments are part of a ‘Computing for Poets’ course that exposes students to leading markup languages (HTML, CSS, XML) and teaches computer programming as a vehicle to explore and “data mine” digitized texts. Recent advances in computer software, hypertext, and database methodologies have made it possible to ask novel questions about a poem, a story, a trilogy, or an entire corpus. Programming facilitates top-down thinking and practice with computational thinking skills such as problem decomposition, algorithmic thinking, and experimental design, topics that humanities students in our experience rarely see. Programming on and with digitized texts introduces students to rich new areas of scholarship including stylometry (i.e., the statistical analysis of variations in literary style between one writer or genre and another), applied to, for example, authorship attribution.

The three assignments highlighted are:

Reading Poetry Backwards 

Image Processing (Warhol Pop Art Filter)

This is the eighth lab for computational art (CS1) using Processing where students practice creating an Andy Warhol silkscreen image filter. The goals for this lab are:

  1. Practice creating an Andy Warhol silkscreen image filter
  2. Practice using images in Processing
  3. Practice manipulating pixels of an image
  4. Practice using arrays and writing for loops
  5. Practice indexing a 1D ray with 2D coordinates
  6. Practice using boolean logic to control which parts of an image are modified (including implicit circles) 
Engagement Excellence

Animating Multiple Elements with Arrays

This is lab for computational art (CS1) using Processing where students create a program that animates multiple characters in a scene using loops and arrays.

The goals for this lab are:

  1. Practice writing methods
  2. Practice writing loops
  3. Practice using an array data structure
  4. Practice using animation variables
  5. Practice using arrays

Image Processing: Interactive Self-portrait

This is the third project for computational art (CS1) using Processing where students create a self portrait using a digital image of themselves as the starting point. In this project, students learn about 2D to 1D array mapping and indexing as well as practice using loops via the plotting of a shape using a parametric equation. The objectives for this project are:

Spatial Games and the Prisoner's Dilemma

This is a programming assignment given in the middle of an introductory class aimed at non-CS majors. The assignment is to simulate repeated rounds of the Prisoner's Dilemma where there are many prisoners situated in cells on a grid, and neighboring prisoners interact with each other. Since the location of prisoners matters, these are called "spatial games". Each student works alone to write a program to do this simulation and produce an image of the final configuration of strategies. The CS goals of this assignment are to introduce reading files (since the initial configuration of the prisoners is supplied in a file), to practice working with 2-dimensional arrays and structs, and to gain additional practice with control structures (loops, if). Since we provide a template, an additional goal is to understand a partially written program by reading it.

Art Nouveau Curves and Generative Elements

In this assignment students create an art nouveau style sketch using Processing which includes both animated curved elements and repeated ’tile’ like aspects. This is the second project for computational art (CS1) using Processing. The objectives for this project are:

  1. Practice using a loop to control structure to generate patterns/scenes
  2. Use functions to re-draw parts of a scene
  3. Use random to produce desirable colors and design layout
  4. Use structured layout
  5. Use parametric curves to control curved patterns in a sketch
  6. Apply repetition of drawing certain elements in a sketch
Engagement Excellence

Animated and Remixed Blexbolex

In this project, students merge their lab 2 code and add animation to explore the use of variables (and explore the process of merging two code bases together). The objectives for this project are:

  1. Practice using Processing
  2. Practice using simple primitives and shapes in Processing
  3. Practice using methods to encapsulate parts of your code for re-use
  4. Practice integrating two student’s code
  5. Practice scaling and translating shapes into a single coordinate frame
  6. Practice animating via transforms and variables
  7. Practice developing your aesthetic
  8. Make an interesting ‘story’ combining two existing designs and adding animation

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

Generative Art Using Loops

This is the fourth lab for computational art (CS1) where students write a program that creates two different images using Processing each of which are generated by an algorithm when the program is run. Each of the two different images must use repetition (that is, some visual elements that are repeated, but that may be slightly different) using loops and a function to draw the repeated element. The goals for this lab are:

  1. Practice using a loop control structure to generate patterns/scenes
  2. Practice using functions to re-draw parts of a scene
  3. Practice using random to produce desirable colors and design layout
  4. Practice using structured layout in 2D space
  5. Consider the role of repetition in art
Engagement Excellence
Subscribe to Make Interdisciplinary Connections to CS