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
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:
This assignment introduces the concepts of bio-computation and genetics and how programming is used to help solve current-day problems in those fields. Specifically this assignment looks at skin type, type-2 diabetes, exercise and diet. It includes references to a website with a diagram showing how the genotypes for exercise and diet interrelate and students need to develop code to implement the diagram. Learning objectives include: command-line arguments, data structure (python dictionary), if-else, loops, file input, writing user-defined functions.Engagement Excellence
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