Georgia Tech’s new take on teaching computer science

It’s no secret that student enrollment in computer science has taken a sever downturn since the mid-90’s. Georgia Tech is hoping to address this problem by completely redoing the way in which computer science is taught at the university:

Fewer and fewer freshmen have been expressing interest in computer science. Some colleges have thrown up their hands, and pulled back on programs. Others have pushed to expand specialized fields — such as video gaming.

The Georgia Institute of Technology is today unveiling what some experts believe is a much broader approach to the problem. The institute has abolished the core curriculum for computer science undergraduates — a series of courses in hardware and software design, electrical engineering and mathematics. These courses, in various forms, have been the backbone of the computer science curriculum not just at Georgia Tech but at most institutions.

Instead, according to the article, a new curriculum called “Threads” is being introduced in which

  • Students choose two of eight possible instruction “threads”, each thread correlating to an application of computer science such as modeling or artificial intelligence.
  • Students will adopt a “role” — programmer, entrepreneur, communicator, etc. — and use the role to guide both curricular instruction and co-curricular experience.

Read the whole article here. Georgia Tech seems to believe that the main impediment to students studying computer science is the job market, specifically the outsourcing of computing jobs. The hope is that students who have a broader, less lock-step core education in the field will be more likely to hold a computing job that will not be outsourced. But from what I understand, computing jobs in the US aren’t outsourced because our programmers are too lock-step — it’s because there are people in the world around us who are better at programming and will work at a lower wage. Will removing a well-defined core curriculum really ameliorate that, or just make it worse? Certainly not having to take, for example, two semesters of calculus will appeal to those aspiring CS majors who want to do nothing but do video games (and who have next to nothing in terms of math and physics skills). But that’s hardly recouping lost enrollment for the right reasons.

[Update: I’ve had a chance to look at the Threads curriculum a little more closely, and there are a few technical requirements for any thread or role a student might choose — in particular, every combination requires three semesters of calculus, a course in discrete math, and a course in probability. So it’s not just anything-goes.]

Still, it’s a good idea to start thinking about what computer science really is from a curricular standpoint, and whether it’s best taught as a stand-alone academic major or whether — as conceived in the Threads program — it is really intended to be taken with something as a second major or even as a certification process. And leaving the hard-core study of computing as something more akin to a “computer engineering” major that deliberately focuses on the science and hardware side of things.

Technorati Tags: , ,



Filed under Education, Engineering, Geekhood, Higher ed, Technology

6 responses to “Georgia Tech’s new take on teaching computer science

  1. Pingback: 25 Useful Resources » Late breaking news

  2. I have very mixed feelings about this. I do tend to think that the rigid, more traditional, CS curricula tends to do a poor job of preparing programmers for a typical development job, I’m not sure the themes structure really helps either. If a student chooses “media” and “people”, for example, how many programming jobs will they truly be prepared for? It’s not that I think “compiler theory” (a staple of traditional CS curricula) is necessarily better, it’s just that this new curricula potentially allows students to do stuff that is either fun, or merely a fad, and and ultimately keep them from learning the few things that will truly make them a decent programmer.

    And what’s the deal with “Roles”? Don’t most developers need to ultimately fill multiple roles?

  3. Justin

    Students who choose CS to avoid math and physics and work on “fun” video games are in for a rude awakening. Modern video games rely on heavy-duty physics simulation, AI planning, and 3-D linear algebra. It’s not a field to go into if you’re weak in math and physics. Even ancient (now called “retro”) games like “Asteroids” require the mathematics to be able to move objects along mathematically-defined paths and have them detect collisions and react accordingly. If students don’t understand the math, they won’t have any success as a video game programmer.

  4. I think the “roles” concept is intended to personalize the major — to get students to feel somehow a part of the major and not just a walking student ID number taking a series of courses. It’s an interesting idea, if a little bit touchy-feely. It occurs to me that in emphasizing skills and roles, the GT people are actually borrowing from the world of role-playing and video games, a world often occupied by the sort of people who end up majoring in CS.

  5. Pingback: Computer science on the rebound? « Casting Out Nines

  6. Pingback: Wednesday morning links « Casting Out Nines