If you want CS in High School, Require CS in College

May 17, 2011 at 7:51 am 20 comments

Getting high-quality computer science education into high school would likely smooth out undergraduate enrollment. Rather than the spikes that we get when a new computational technology makes waves, and the lulls when students realize that they don’t know what computer science is, we would have better-informed students. Getting computer science into all high schools would mean that a more diverse population would get to try out computer science, and may discover that they like it. But how do we get good computer science education into high schools? Maybe we take a lesson from Calculus.

In 2010, 245,867 students took the AP Calculus AB test (to contrast with 20,210 AP CS Level A test takers.)  That’s evidence that there is a lot of calculus in high schools.  How did that happen?  Was there a drive to push calculus into all state’s curricula?  (I don’t remember ever hearing about “Calculus in the Core”? 🙂  Was there a national effort to convert existing math teachers into Calculus teachers?  Did the Colleges tell the high schools, “We need students who are calculus-literate”?

Here’s my take on how it happened, based on what histories I can find and the growth of Calculus II in high schools. Colleges and universities taught Calculus to undergraduates.  The best high schools decided that they would start to teach Calculus, to better prepare their high-achieving students (back in the 1960’s).  More colleges and more universities started requiring or expecting calculus.  More and more high schools tried to raise their prestige by preparing students to teach calculus.  Several organizations (College Board, NCTM, MAA) and universities today train teachers to teach calculus, because those teachers and their schools want it.

If we want high schools to teach computer science to college-bound students, colleges and universities must require computer science of all their students.  If not require computer science of all undergraduate students, require it for admission–but be prepared to offer remedial classes, since so few high schools do offer good undergraduate-level computer science.  If computer science is important enough for high school students, it’s important enough for undergraduate students.

Efforts like Computing in the Core and the new AP CS:Principles are great ideas, and I hope that they succeed, but they are top-down efforts.  A stronger effect comes bottom-up.  We want teachers and administrators to say, “My local college requires CS for everyone.  I want my students to be well-prepared for college by already knowing CS when they get in the door!”  The bottom-up effort is slower — it’s taken decades for calculus to infiltrate high schools to the level that it has.  But it’s less expensive and makes change happen pervasively.

If we can’t convince our peers in the colleges and universities that computer science is important, how are we going to convince the high schools?  And if we convince our colleges and universities, the high schools will likely follow. We can follow the Calculus lead.

Entry filed under: Uncategorized. Tags: , , , .

It’s in Science: Interaction beats Lecture Drill bits and Eclipse — it’s really all about the same

20 Comments Add your own

  • 1. iTec | Requiring computer science  |  May 17, 2011 at 11:25 am

    […] science by Amber Settle 17. May 2011 05:18 Mark Guzdial wrote yet another great blog entry today: https://computinged.wordpress.com/2011/05/17/if-you-want-cs-in-high-school-require-cs-in-college/  Now we need to just get all of the members of the DePaul Academic Program Review Scientific, […]

  • 2. Andy Kuemmel  |  May 17, 2011 at 12:54 pm

    As a high school teacher of AP Calculus and AP Computer Science, I agree completely. AP Calculus and mathematics courses beyond it are seen as a sign of prestige. Even students who do not plan to pursue science and math careers take my AP Calculus class because they have been told that selective colleges want to see it on their transcript.

    The exact opposite is true for AP Computer Science. Students in my AP Calculus course who know they are going into science or math are reluctant to take APCS because their primary motivating force in high school is to get into a selective college, and they are not being told by counselors and universities that APCS is valued.

  • 3. Steve Cooper  |  May 17, 2011 at 1:58 pm

    I have somewhat of a concern about this idea. From my experiences, teaching at both a small liberal arts college and now at a larger research university, required courses are put into place largely to provide departments with poorly taught service courses to have enough students in departmental courses to allow the department to hire more faculty, and to maintain full employment for existing faculty. (The faculty do believe that a student couldn’t possibly become an educated member of society without an adequate exposure to _________, where _________ is their discipline.)

    Of course, since many of the students hate the courses, the tenured and tenure track faculty then don’t want to teach those courses, and the department needs to hire adjuncts and one-year appointments to cover the courses. These leads to a more variable quality in the courses (not that tenured and tenure track faculty automatically make the best quality teachers in the first place, but this is a somewhat different issue), and a continued vicious circle.

    At a former institution, something like 23 of the 40 courses students needed to take for graduation were required as general education (the students’ “choice” was to take any history course between HIST 101 and HIST 110 or the like). At my current school, there are only a few courses that are required, but they meet with the same distaste by students.

    If we were to require all students to take a computing class in college, a college with 20,000 students would need to service approximately 5,000 students per year. Many of these students would not want to be there, and I think it would be hard to find 10 faculty willing to teach to collections of 500 disgruntled students at a time or 100 faculty willing to teach to collections of 50 disgruntled students at a time. (From my experience, having 10% of the students disgruntled is enough to leave a bad taste in an instructor’s mouth, and to otherwise disrupt the academic environment of the class – these students are often loud in their opinions about the course.) Thus, instead of having students want to take computing, I’d fear we’d see students having to take computing, taught by faculty who are likely going to be less excited by this “opportunity”.

    My personal view is to leave most/all of the general education requirements to the departments offering the majors/minors, and to the advisors of the students in those majors/minors. Most departments should want their students receiving an exposure to computing. Those who choose not to are at risk when their counterpart departments at neighboring universities who do include such a requirement have greater successes for/with their graduates.

    • 4. Mark Guzdial  |  May 17, 2011 at 4:20 pm

      Steve, are you implying that all required courses are hated by students? That there is no such thing as a high-quality service course? Or continuing the implication, the only good Calculus courses are those that are not required? It doesn’t follow, at least for me, that the act of requiring a course makes it a lower-quality course. I’d be happy to share course surveys with you on the required Media Computation course (where I haven’t taught for over five years now) — students still like it.

      Personally, some of my favorite courses were ones that I was required to take — I didn’t know enough to seek them out myself, but I found the experiences valuable. I didn’t choose to take the courses at U. Michigan in educational history, but if I hadn’t, I don’t know if I would have ever read Plato’s Republic, Rousseau’s Emile, and Dewey. That course has influenced my thinking my entire life.

      Your concern suggests to me a second sentence to my title: “If you want CS in high school, require CS in College.” and then, “College CS Professors, DON’T BLOW IT! Teach those students well!”

      • 5. gasstationwithoutpumps  |  May 17, 2011 at 7:23 pm

        I think that Steve Cooper’s concern is a good one.

        At UCSC, the general education requirements were revamped recently (so it will be about 20 years before they are touched again). There was considerable discussion about whether to include a CS requirement, but it was finally decided that a requirement general enough for everyone to satisfy would end up not being very meaningful. The revision was unusual for academia, in that the set of requirements got smaller and made more sense (I think that there are a couple that are there for the wrong reasons, but that is much better than the old system).

        The new requirements are at http://www2.ucsc.edu/advising/student/GenEdReqs.pdf
        Note that there is a (math and formal reasoning) requirement that is satisfied by many different computer science courses.
        There is also a separate (statistical reasoning) requirement, which is a hole in many CS programs.

        Because the new gen ed courses are not “in addition to” a major but can overlap substantially with the major, there is more room in the standard 36-course degree for electives and more advanced courses.

      • 6. Stephen Cooper  |  May 17, 2011 at 7:46 pm

        I think that your media computation was a great solution to really help those students for whom the traditional Matlab or Python CS1 was not going to be appealing. But I think that if you hadn’t created the Media Comp course, it would have been (and I believe was) tough on the students who’d have been stuck in the more traditional CS1 courses. And, you have it “easier”, being at Ga Tech, where there is more likely an expectation of engineering-courses than had you had the requirement added while teaching at the University of Georgia, say.

        Not all required courses are bad, of course. I took a couple required courses as an undergrad where I thought the TA was fantastic, and I got a great deal out of the course. But from what I’ve seen (more as a faculty member than as a student), the ratio of well-taught to poorly taught required courses falls far more on the side of the poorly-taught required class.

        I just am not sure we’re ready for such a requirement for all students to need to take a computing course. I fear that there are not enough Media-Comp-like courses and not enough quality instructors to make a computing course successful at scale. (And I speak as someone who teaches at a school where most undergraduate students do take either an introductory CS class and/or CS1 — and I believe we’re successful with our offerings.) I fear that without both we’ll be setting up generations of students to hate computing as they do ***** (discipline blanked out to protect me 🙂 )

        As an aside, I love your proposed subtitle.

  • 7. Leigh Ann Sudol-DeLyser  |  May 17, 2011 at 7:19 pm

    “If not require computer science of all undergraduate students, require it for admission–but be prepared to offer remedial classes, since so few high schools do offer good undergraduate-level computer science.”

    I am concerned by this statement. Especially the require it for admission. By requiring it or even prioritizing it at THIS time we are basically putting a large portion of our population automatically in the bottom part of the admissions pool just because they did not go to a school with CS. My high school had no AP classes. (or IB) We were a small, rural school in upstate NY that graduated 52 students the year I graduated. Even with the CS 10K project, there are a large number of schools that will not have CS teachers appropriately trained for those classes. If we start requiring CS for admission we may see schools “gaming” this system by labeling computer applications or even keyboarding as computer science, reinforcing a lot of the same misconceptions about our discipline that we are trying to dispel.

    I agree that having colleges value computer science more as a pre-collegiate course is important, but this must be a gradual change.

  • 8. Mark Guzdial  |  May 18, 2011 at 1:13 pm

    I just realized that I should have connected this blog post to the one on how Chemistry profs (because they teach required classes tend to care more about teaching than CS profs, at least as evidenced by seeking out professional development for teaching. It’s a chicken-and-egg problem: Do we improve our classes first so that we can handle a CS requirement, or do we have a CS requirement to force us to improve our teaching? In any case, there’s a need for a sea change.

  • 9. BKM  |  May 19, 2011 at 8:34 am

    At my last university, back in the 90’s, there was a requirement in place based on a state law of some sort that every student take a course in a “quantitative” subject. Computer science counted, so the majority of students took our CS0 to avoid having to take a math course. We were a small department, and were utterly overwhelmed by the number of sections we had to run each semester. The students hated the requirement even though we tried every trendy approach that was out there, including the variant of CS Principles which was in vogue at the time. I actually taught that variant. It was a sort of survey of Great Ideas in Computer Science. I don’t think any of the students ever really understood what tied the Great Ideas together. And getting them through the material on binary numbers and digital logic was rough, even though it was very watered down.

    I also really wonder about this push to get high school students into computer science courses. Back in my day, it was extremely rare to have any kind of computer science course in a high school, but it didn’t prevent lots of kids from majoring in computer science in college. This was the late 70’s/early 80’s, back when a third of CS majors were women, so clearly the lack of high school CS didn’t discourage them. I myself was one of those women, and went into the major as a sophomore having NO background with computers of any kind. The big difference back then was the image of CS – people saw it as a good, stable, family-friendly career. Now everyone sees CS as a field of obsessed weenies who will lose their jobs on a cyclical basis. Fix the perceptions (and realities) and students will major in CS.

  • 10. Gilbert Bernstein  |  May 20, 2011 at 4:01 am


    I think this makes sense, but why not take this reasoning a step farther.

    Why did all of the colleges require Calculus? Or to put it a different way, why is it so important that everyone with a higher education should take Calculus?

    Arguably, in order to actually understand anything in Physics you really need to understand Calculus. Not only that, but if you want to study economics, you need Calculus to simply state some of the most basic models. If you want to study ecology, Biology and population dynamics, you need Calculus. Probably at least half of the disciplines in a university need Calculus to state some of their basic quantitative models, often in the form of systems of differential equations.

    Would colleagues in other disciplines agree that “programming is as fundamental to describing the laws of nature as differential equations?” I’m not sure they would.

    Until we have a broad cross-disciplinary consensus that programming and Computer Science are unavoidable *intellectual tools* in many/most disciplines, and until we teach intro service courses with that perspective in mind, I don’t think it makes that much sense to advocate for a general ed requirement for all college students.

  • 11. Mark Guzdial  |  May 20, 2011 at 4:54 pm

    I do think that we can argue that computing is as necessary today to understand the laws of nature, but from a process perspective. Most people would agree that writing and mathematics are critical for understanding the laws of nature today, as tools. Computing plays a similar role.

    But setting aside that argument — if we can’t convince our colleagues that computing is important enough for understanding the laws of nature, then what business do we have trying to put computer science into high school, where 55% of the students will never go on to College, let alone explore the laws of nature. It makes little sense to argue that CS belongs in high school first, then for all undergrads.

  • 12. BKM  |  May 21, 2011 at 11:25 am

    I don’t even think that the argument that computing is necessary to understand the laws of nature is very convincing. First, is that really true? Many scientists, including my physicist dad, would be appalled by that argument. True, he used computers as far back as the 60’s, but saw computing as something analogous to his old slide rule.
    Secondly, that argument is similar to the idea that everyone needs to take math in order to understand the laws of nature. Most college undergrads end up taking precious little math, and what math they take is more useful for business classes than science classes. I think that the argument that math is needed to solve everyday problems and to understand statistics in the media resonates more strongly with most people. Can we make a similar argument for computer science?
    I actually do believe that exposure to computer science is important for college students and am even arguing it in a proposal I am writing. I think the reason that college students need to know something about computing is because they are likely to end up in their future careers doing things with computers – often purchasing computing technology, overseeing teams that are developing computing technology, or acting as a stakeholder when IT systems and processes are being designed. It helps to understand a bit of computational thinking, and even more importantly, design of computing technology, when acting in those roles.

  • […] realized that he’s really making a computing education argument. He explicitly is saying that computing is necessary for understanding the natural world, and all scientists need to learn about computation in order to make the next round of discoveries […]

  • […] It’s a reasonable answer, in the sense that universal literacy makes the world of letters better.  But how does it make it better?  For me, I’m still attracted to the innovation argument: we use code as a medium to say, share, and test ideas that we can’t in other media.  That communication, sharing, and debugging of ideas leads to more and better ideas, which results in innovation — new ideas, new extensions of those ideas, new implementations of those ideas.  That’s why it’s important to strive towards near-universal computing literacy, at least with respect to knowledge workers, which is why it’s important to require computing in college. […]

  • […] is increasingly becoming a requirement at universities, says a piece in US News.  This is likely the most powerful way to get CS into high schools — require it in colleges and universities, to send the message that it’s valued and […]

  • […] years to be taught in secondary schools.  Want computing education to happen in high schools?  Require it or expect it for undergraduates.  Universities can show value by using programming across the curriculum, and expecting its use […]

  • […] an interesting and unusual strategy. The reality is that the top is the goal for everyone else, so education does get changed from the top down.  Udacity will likely change things, but I don’t think I can predict how. On the other hand, […]

  • […] in other departments.  Computing is a fundamental 21st Century literacy, and we have to explain why it’s important for everyone to learn.  ”Stuck in the Shallow End” suggests that making ubiquitously available can help to […]

  • […] NYC schools offer any kind of computer science, and less than 10% of US high schools offer AP CS.  I argue that we should require computer science in colleges and universities in the US first, and th… classrooms, so that the teacher come out of undergraduate already knowing how to program and use […]

  • […] In 2011, I argued that it makes more sense to require CS at universities before pushing into K-12, because then all pre-service teachers have some CS which makes later PD much easier and cheaper: https://computinged.wordpress.com/2015/11/30/require-cs-at-universities-before-k-12-computational-community-for-everyone/ and https://computinged.wordpress.com/2011/05/17/if-you-want-cs-in-high-school-require-cs-in-college/  […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

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

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,054,521 hits
May 2011

CS Teaching Tips

%d bloggers like this: