Expanding Participation in Computing: Including Programming Principles in a Non-Majors Course
Paul M. Leidig, Roger Ferguson, John H. Reynolds · 2015
Computing has created new ways for people to connect, research, create, and express themselves, and has changed the world in profound ways. However, simply being proficient in computer use often misses the greater power of computing. An empowering experience begins when one learns how to translate new ideas into computer code, thus becoming a producer of information or minimally a much more knowledgeable user of that information. Recent efforts to introduce non-computing majors to these concepts focused either on non-programming computer use skills, or straightforward computer programming languages. Previous research has shown many general education programs offer one of these choices, but few require any programming, nor introduce programming within the larger view of computing. Recent publications seek to stimulate discussion about whether computing courses for non-computing majors should have a programming component. This paper proposes what is most relevant are the big ideas of computing, such as programming fundamentals, using abstractions and algorithms, working with very large data sets, and issues of cybersecurity. The primary purpose of a non-majors course should be to introduce a wider range of students to the expansive world of computing. Recent programs designed to introduce these skills, such as those by code.org and Advanced Placement Computer Science Principles, have been successful and provide a model for university level efforts. To assist in these efforts, this paper proposes creating and delivering a successful non-major, or general education computing course, at the university level patterned after the AP CS Principles course.