Here are three good reasons why every college student should take an introductory computer science course.
First, computing has become an inextricable part of our lives. Understanding how computers and software work, what they can and can't do, and their impact on society is, therefore, an important part of a modern liberal arts education.
Second, computing is a creative endeavor at the crossroads of engineering, mathematics, psychology, and the arts. A well-conceived computer science course can integrate problem solving, logic, human factors, and artistic creativity. It's hard to imagine a domain that bridges more of what we hope to teach in college.
Third, computing is a valuable skill. While most people who take a single computing course -- or even a few courses -- won't end up at Google or Microsoft, it doesn't take a lot of computing background to develop a useful and highly sought-after skill set. In some introductory courses, students write their own smart phone apps, educational games, powerful web applications, and DNA analysis tools. A single computer science course can provide students with skills that they'll use in later courses, projects, senior theses, and even internships and jobs.
But, it's not just on the students. Colleges and universities need to reimagine computing courses that are meaningful and compelling for undergraduates who are not already predisposed to computer science and for whom a first computer science course may also be their last computer science course. In many cases, existing computing courses for non-majors teach students to use spreadsheets, presentation software, and maybe write a webpage. Those are useful skills, but lack both the intellectual depth and the creativity of a real introductory computer science course. Other introductory courses discuss the history of computing, its impact on society, and some computing concepts, but do not provide students with actual programming experience.
I believe that a first course in computing should certainly teach big ideas, discuss the fascinating history of the field, end explore the applications and implications of computing in society, but should also give students rich and meaningful experiences writing their own programs. And not just programs that the student will write, submit, and forget about, but programs that students are genuinely excited about and will spend at least as much time using and showing their friends and family as they did writing the code itself.
I'm encouraged by an increasing number of innovative introductory courses that provide students with these rich experiences. And, I'm very excited to see students voting for these courses with their feet. At my institution, Harvey Mudd College, we developed a set of introductory courses that are not only required for all Harvey Mudd students but are now immensely popular among non-majors at our four sister institutions in the Claremont Colleges consortium. At a college of 800 students, we are teaching introductory computer science to all of our first-year students, regardless of their ultimate major. And, we are attracting hundreds of students each from our sister colleges in Claremont. They are literature, economics, and sociology majors - among many others. And Harvey Mudd does not have a monopoly on innovative introductory courses. A number of other institutions including the University of Washington, Harvard, and others have pioneered their own successful courses in a similar spirit.
Compelling first courses can have a large impact in attracting traditionally underrepresented groups to computing. The most recent CRA Taulbee Survey of over 100 major computer science departments in North America reported that under 15 percent of bachelors degrees in CS go to women. Until 2007, Harvey Mudd's numbers were -- if anything -- lower than the national average. In 2007, we implemented our new introductory courses and saw an immediate increase in the number of women choosing to major in computer science. Over 40 percent of our majors are now women and that has held steady for several years. While our numbers are too small to discern the impact on other traditionally underrepresented groups, we see some evidence that these courses are drawing more Hispanic/Latino and African-American students to the major as well.
Finally, universities and colleges should include appropriately designed computer science courses as part of their general education curricula. At many schools with undergraduate distribution requirements in mathematics and the sciences, a computer science course isn't included as an option. While I can't argue that computer science is more important than calculus or statistics or a physical or natural science course, it's becoming extremely difficult to argue that it shouldn't be an equal player in that array of extraordinary human achievement.