Have students design projects based on content from their other courses, and have them brainstorm how the code they write might be useful in a variety of fields. This broadens their understanding of CS’s many applications.
Give students assignments where students have to make their computational results understandable to their customer, an important skill for industry computation across fields.
Bring in real stories about software, specifically games, sometimes going wrong! It is important for students to learn that development usually takes more than just a day and there is no ultimately correct solution.
Give students a caesar cipher to reveal a picture or message in order to teach how characters can be treated as numbers and to reinforce string manipulation.
Teach hierarchical task analysis using Requirement Cards to sort through 100 requirements engineers have created for a robot cleaning up a nuclear disaster.
To integrate CS with other disciplines, have students write algorithms for activities they’re already doing for other classes.
Have students write end-of-unit reflections to review material, monitor their learning, and integrate writing into your CS course.
To appeal to students, assign interdisciplinary projects that allow them to combine programming with work from subjects that interest them.