Blogs (1) >>

The goal of teaching everyone computing (explicitly including programming) predates the definition of the computer science (CS) major. The rationale was not about becoming a software developer, since that job did not exist then in the same way. At our institution, we are creating courses for non-CS majors which are grounded in the computational practices of liberal arts and sciences faculty. These courses have no connection to the CS major curriculum or software development jobs. We focus here on two of the themes that those faculty valued (Computing for Expression and Computing for Justice) and the introductory courses that we designed around each theme. The courses emphasize gaining broad perspectives of computing, which serve the study of multiple disciplines. Student activities include readings, writing essays, classroom discussion, and open-ended programming homework assignments. This experience report describes our design process, the Creative Expression and Social Justice courses, and an initial evaluation of our design. Most of the programming assignments were written in the block-based programming language Snap!, with some in-class exercises using teaspoon languages. Several units ended with an ebook assignment to connect the Snap!~programming to equivalent programs in Python, Processing, and SQL. Interview and survey findings suggest that students found this sequence and the courses useful, despite not counting toward a CS major or focusing on early software development skills. Students described usefulness in terms of developing general computing knowledge, preparation for a range of future careers, and introducing them to other course choices.