Increasing Engagement and Enrollment in Breadth-First Introductory Courses Using Authentic Computing Tasks
The breadth-first approach to teaching introductory computer science is one way of dispelling the common misperception that programming is the sole task of the computer scientist. The breadth-first approach is particularly useful in courses for non-majors. Hands-on activities that make up laboratory assignments for these courses tend to focus on learning to program or simulations of program execution. These activities unfortunately fail to build on the foundations laid by a breadth-first approach, and serve to perpetuate the computer science = programming misperception. We have developed a set of laboratory activities which are based on what we call authentic computing tasks: everyday tasks that students want to know how to accomplish. Example tasks include image editing, operating system installation and configuration, and building home computer networks. Explicit connections are made between these authentic computing tasks and the computer science concepts being covered in the lecture portion of the course. The course has experienced dramatic increases in enrollment, and we have evidence that students see the connections, rather than coming to believe that performing computing tasks well is the essence of computer science.