Archive for December 2, 2019

When computer science has to be a requirement if we want it to be available to everyone

Robert Sedgewick had an essay published at Inside Higher Ed last month on Should Computer Science Be Required? (see link here). He has some excellent reasons for why students should study computer science. Several of them overlap with reasons I’ve suggested (see blog post here). He writes:

Programming is an intellectually satisfying experience, and certainly useful, but computer science is about much more than just programming. The understanding of what we can and cannot do with computation is arguably the most important intellectual achievement of the past century, and it has led directly to the development of the computational infrastructure that surrounds us. The theory and the practice are interrelated in fascinating ways. Whether one thinks that the purpose of a college education is to prepare students for the workplace or to develop foundational knowledge with lifetime benefits (or both), computer science, in the 21st century, is fundamental.

So, we both agree that we want all students in higher education to take a course in computer science — but he doesn’t want that course to be a requirement. He explains:

When starting out at Princeton, I thought about lobbying for a computer science requirement and asked one of my senior colleagues in the physics department how we might encourage students to take a course. His response was this: “If you do a good course, they will come.” This wisdom applies in spades today. A well-designed computer science course can attract the vast majority of students at any college or university nowadays — in fact, there’s no need for a requirement.

Colleges and universities offer the opportunity for any student to take as many courses as they desire in math, history, English, psychology and almost any other discipline, taught by faculty members in that discipline. Students should have the same opportunity with computer science.

I have heard this argument before. Colleagues at Stanford have pointed out that most of Stanford undergraduates take their courses, without a requirement. Many colleagues have told me that a requirement would stifle motivation and would make students feel that we were forcing computer science down their throats. They would rather “attract” students (Sedgewick’s word above). I recognize that most students at the University of Michigan where I now work have the kind of freedom and opportunity that Sedgewick describes.

But I know many institutions and situations where Sedgewick’s description is simply not true. CS teachers can try attracting students, but they are only going to get them if it’s a required course.

  • In most Engineering programs with which I am familiar, students have relatively few electives. In most of the years that I was at Georgia Tech, Nuclear Engineering students had no elective hours — if they took even a single course out of the planned, lockstep four years, the degree would take them longer (and cost them more). Mechanical Engineering students had exactly one three credit hour course that they could choose over a four year program. These are programs where students are not allowed to take any course that they desire. Those two degree programs are extreme situations (but still exist at many institutions). Even here in Computer Science & Engineering at the University of Michigan, students are limited in the number of elective hours that they can take outside of CS and engineering classes. For many technical degrees, if you want students to take a particular subject, you have to convince the faculty who own that degree to include computer science in those requirements. At Georgia Tech, we had to sell a computer science requirement to the rest of campus. I tell that story here.
  • If students are paying by the course, then they take the courses that they need, not the ones that they might desire. I worked with Chattahoochee Technical College when I was in Georgia. They struggled to get students to even finish the requirements for a certificate. Students would take the small number of courses that helped them to gain the job skills that they needed. Completing courses that were merely interesting or recommended to them was simply an unnecessary expense. There are millions of students in US community colleges. If you really think that everyone should learn computer science, you have to think about reaching those millions of students, too.
  • Finally, there are the students who might end up loving computer science but, right now, they don’t desire it. First, they may simply not know what computer science is. In California (as an example), only 39% of high schools offer computer science, and only 3% of all California high school students take it (see link here). Alternatively, they may know what computer science is, but have already decided that it’s not for them. In my group’s research, we use expectancy-value theory often to explain student behavior — if students don’t think that they’ll succeed in computer science, or don’t see people like them belonging in computer science, then they won’t take it. That’s one reason for mandatory computer science in high schools — to give everyone the chance to discover a love in CS. So far, it’s not working in US high schools. I have argued that (see article here) we don’t know how to ramp up to that at the high school level yet. But we certainly could at the higher education level.

I understand Sedgewick’s argument for why he wants to offer the most compelling computer science course he can at Princeton, in order to attract students and motivate them to learn about computing. (I don’t agree with him that curated online videos are better than live lectures, but I think we mean something different by “lectures.”) I also understand why making that course a requirement might undermine his efforts to motivate and engage students. But that’s only a small percentage of students at the Princeton-like institutions in the US, and elsewhere. I’m sure he would agree that everyone deserves the opportunity to learn about computer science. His reasons why CS is important for Princeton students are valid for everyone. We are going to need different strategies to reach everyone. For some students, a requirement is the only way that we are going to make it available to them.

December 2, 2019 at 7:00 am 16 comments


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 7,099 other followers

Feeds

Recent Posts

Blog Stats

  • 1,709,355 hits
December 2019
M T W T F S S
« Nov    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

CS Teaching Tips