Slashdot Mirror


How Harvard Teaches CS Students How To Code (kqed.org)

Harvard computer science professor David J. Malan "is pretty amazing!" says long-time education-watcher theodp. And he's sharing a link to the online version of Malan's famous CS50 class, "if you can't pony up the estimated $63,025-a-year sticker price to take 'the quintessential Harvard (and Yale!) course' on campus."

KQED's education site "MindShift" reports: Malan's class attracts students who have never taken computer science before, as well as kids who have been coding a long time. His goal with this diverse group of learners is to create a community that's equal and collaborative. One way he does this is by asking students to self-identify by comfort level. Those groups become different section levels, and they sometimes get different homework, but harder assignments are not worth more credit. Malan said recently that the "less comfortable" group has dominated his 700-person course. "At the end of the day all students are treated with the same expectations," said Malan, speaking at the Building Learning Communities conference in Boston.

Students are graded based on each individual's growth; Malan and his team of teaching assistants don't use absolute measures when assigning grades. Instead, they look at scope, how hard the student tried, correctness, how right the work was, style, how aesthetic the code is, and design, which is the most subjective. When it's time to assign grades, Malan and his teaching fellows have lots of in-depth conversations about how each student has improved relative to where he or she started...

The course includes a tool that rewrites error messages to make them easier to understand, plus a code-checking tool which they're planning to open source. There's also a cloud-based IDE which "allows students to access their code from multiple locations," though students can also submit their code through GitHub. (The original submission complains that Harvard's students are "coddled.") But Malan says the class works partly because there's an intentionally social aspect to it -- including numerous teaching assistants holding office hours in public spaces and "the human structure within the course." Guest lecturers have even included Mark Zuckerberg and Steve Ballmer.

But all these technical details don't really capture the wild flavor of the course and all of its multimedia bells and whistles. Malan's fast-paced lectures often close with relevant clips from movies -- for example, a lecture on cryptography which ended with video from a movie you'd see "if you turn on your TV on December 24th."

25 of 138 comments (clear)

  1. Should have started with by Begemot · · Score: 4, Insightful

    Guest lecturers have even included Mark Zuckerberg and Steve Ballmer.

    and some wouldn't have to waste the time on reading the whole thing

    1. Re:Should have started with by lgw · · Score: 2

      They likely provided relevant industry experience. Coding at university is very different to doing it in a commercial environment.

      We're talking about Ballmer and Zuckerberg here. Zuckerberg may have actually written some code while he was at university, but the closest Ballmer ever can to coding was throwing a chair at a developer. Neither has ever coded "in a commercial environment".

      But then, no one goes to Harvard to learn to code; you go there to meet people like Ballmer and Zuckerberg. Harvard is about developing your social network, not any skills that might let you contribute to society.

      --
      Socialism: a lie told by totalitarians and believed by fools.
  2. Western civilization is truly collapsing. by Nutria · · Score: 4, Insightful

    When it's time to assign grades, Malan and his teaching fellows have lots of in-depth conversations about how each student has improved relative to where he or she started...

    Because precious snowflakes can't handle the reality that computer programs are supposed to work?

    asking students to self-identify by comfort level.

    Comfort???? I think I'm going to barf.

    --
    "I don't know, therefore Aliens" Wafflebox1
    1. Re:Western civilization is truly collapsing. by alvinrod · · Score: 4, Insightful

      I think that's going a bit too far. If this is a course designed for anyone to take as a first programming course, I think this approach is ideal, or at least much better than many alternatives. There are a lot of classes like this (one example I remember was college vs university physics where the university physics course was still challenging, but designed around being accessible for people who weren't going to major in physics or eventually take upper level classes that demanded an even greater level of rigor) where it's more appropriate to grade on a more gentle slope instead of making the class hard as balls in order to weed out potential majors.

      On the other hand, that's why it would be a terrible idea for people who are going to major in computer science. Using this grading scale punishes someone who always tried the hardest material from the beginning and struggled with it and rewards someone who eventually made the jump from using their own shit as a crayon to managing to turn out the computer and submit assignments. There's something to be said for measuring growth as a part of a student's potential, but if the starting point is so low, I'm not sure how much it matters.

      This sounds like the kind of computer science class that everyone at Harvard has to take (given the class size of 700), so I think it's appropriate to build the class to get the maximum amount of student buy-in so that the students actually learn something. Grades at a place like Harvard are utterly useless since just having a degree already marks you as one of the elite, never mind the connections you'll make while attending. I'd also guess that most people who are going to major in computer science will test out of the course or take a much more rigorous course with a more stringent grading scale.

    2. Re:Western civilization is truly collapsing. by phantomfive · · Score: 2, Interesting

      If you pay 63k/year, expect an A.

      You are part of the problem.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Western civilization is truly collapsing. by whoever57 · · Score: 4, Insightful

      Subjective marking makes it easier to pass those students whose families give large donations to Harvard's endowment funds.

      --
      The real "Libtards" are the Libertarians!
    4. Re:Western civilization is truly collapsing. by Baron_Yam · · Score: 2

      There should be two grading systems in parallel - one to mark whether a standard has been met, the other to mark progress.

      That way you can evaluate both whether a student is ready to apply what they've been taught AND you can evaluate whether there is any point in continuing to teach them if they aren't.

      Traditional evaluation is done purely on the basis of 'did they meet the standard', and if you're going to use just one method, that's the way to do it (because that's what the real world will use when you're looking for work, snowflake). If you have the luxury of two methods, the second method allows you to identify which students can be brought to the standard with a little more effort.

      I would qualify that by saying if you're at a prestigious post-secondary educational institution... the time for 'we will help you catch up' has long since past.

    5. Re:Western civilization is truly collapsing. by Nutria · · Score: 3, Insightful

      I lacks rigorous nature necessary to truly show someone was CS really is.

      Because... rigor "(demonstrates) white male heterosexual privilege." STEM educators must "(look) to alternative conceptualizations for evaluating knowledge, welcoming diverse ways of knowing, doing, and being, and moving from compliance to engagement, from rigor to vigor."

      This is why Western Civilization is collapsing.

      --
      "I don't know, therefore Aliens" Wafflebox1
    6. Re:Western civilization is truly collapsing. by quantaman · · Score: 2, Insightful

      When it's time to assign grades, Malan and his teaching fellows have lots of in-depth conversations about how each student has improved relative to where he or she started...

      Because precious snowflakes can't handle the reality that computer programs are supposed to work?

      Remember the actual objective of a 1-st year introduction to programming course, it's not to assign jobs or decide grad schools, it's to teach the kids to program, give them good fundamentals in CS, and help filter them into the appropriate academic program.

      I don't care if they sing around a campfire or take kickboxing if it helps further those two objectives.

      As to your great offence at the idea that they're being too cuddly in a 4-month introduction to programming course. Well I think there's a term for that, something that rhymes with tecious mowblake....

      --
      I stole this Sig
    7. Re:Western civilization is truly collapsing. by Nutria · · Score: 2

      Grading programs has never been easy.

      --
      "I don't know, therefore Aliens" Wafflebox1
    8. Re:Western civilization is truly collapsing. by hey! · · Score: 2

      Well, there's two distinct populations an Ivy League school: the well connected and the really, really smart. In fact arguably the whole point of the Ivy League is for the social elite to borrow some of the prestige of the intellectual elite. For that to work, though, you have to serve both communities.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  3. Grading based on improvement: practice vs theory by Anonymous Coward · · Score: 4, Insightful

    IMO, grading on how well a student improves can be easily gamed. My son goes to a high school that does this, and he frequently gets lower grades, even if he performs better than others in the subject matter.

    The problem is improvement is not linear. For those who are more advanced, it is likely levels of improvement is less because the more you know, the less there is to learn. Therfore, those with a higher level of initial competence will not show the same amout of growth as those newer to the subject matter.

    Students aware of this method of evaluation can lie about there starting level to give the appearance of more improvement over the life of the course, therefore, getting better grades then those show more advanced knowledge and skills.

    I am all for praising improvement, but those with lesser knowledge and skills should not get higher grades than those who are better for the same course.

  4. God this is cringey by JMZero · · Score: 3, Insightful

    I'm involved in hiring new programmers quite often. Way too many of them have absolutely no idea what they're doing, despite making it through some kind of program.

    I guess maybe they made a lot of progress towards understanding the flavor of programming. Maybe they learned to leverage the "social dynamic" of programming to cobble together some garbage out of other people's code.

    I think it would be better if they learned how to program, and had to prove they could do it before someone gave them a certification. You can learn programming the same way you learn anything else, and there's no reason to teach it or evaluate it differently. It's not magic, and I think with time and a sane approach you could teach most people how to do it in a couple years.

    --
    Let's not stir that bag of worms...
    1. Re:God this is cringey by quantaman · · Score: 3, Insightful

      I'm involved in hiring new programmers quite often. Way too many of them have absolutely no idea what they're doing, despite making it through some kind of program.

      I guess maybe they made a lot of progress towards understanding the flavor of programming. Maybe they learned to leverage the "social dynamic" of programming to cobble together some garbage out of other people's code.

      I think it would be better if they learned how to program, and had to prove they could do it before someone gave them a certification. You can learn programming the same way you learn anything else, and there's no reason to teach it or evaluate it differently. It's not magic, and I think with time and a sane approach you could teach most people how to do it in a couple years.

      It's a 1st year intro to programming course, they have 3.5 more years to learn proper software development.

      Complaining that they aren't writing good programs after the CS50 is like complaining that grade 1 students are making derivative plots when they learn to write complete sentences.

      --
      I stole this Sig
    2. Re:God this is cringey by HornWumpus · · Score: 2, Interesting

      If someone is going into CS or EE they better be able to program by the time they _start_ college. They've had about 18 years at that point.

      Schools wouldn't accept an English major that didn't already know how to write, at least a little.

      A CS freshman that doesn't code is like a music major that doesn't play an instrument. Wasting his/her time.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:God this is cringey by 0100010001010011 · · Score: 2

      A CS degree is not a 'How to program' degree any more than a Mechanical Engineering degree is a 'how to be a mechanic' degree.

      "Programming" at this point is a voctech position.

      If you are hiring CS majors for programming positions you're going to end up as ill prepared as hiring a physicist for a plumbing job.

  5. The Purple Book by ebonum · · Score: 2

    Best CS101 course ever!
    https://en.wikipedia.org/wiki/...

    Love it? You have the heart and mind to succeed in programming.
    Confused by it? Go learn WordPress or pick something more in line with your talents.

    1. Re:The Purple Book by phantomfive · · Score: 2

      The course mentioned in the summary is not CS101, it's CS50. So presumably a remedial class to help people get oriented before they actually hit the CS curriculum.

      --
      "First they came for the slanderers and i said nothing."
  6. Worst new hire we ever had... by DeplorableCodeMonkey · · Score: 3, Interesting

    Was from a famous university with an over $50k/year price tag for tuition. Not Ivy League, but not far from it in prestige.

    - Couldn't use Google to answer truly dumbass questions like "derp derp how do I run duh script." (Answer it was inter-name script)
    - Couldn't pick up a new language to save his life.

    Dude quit his job like 2-3 weeks after starting.

    We could have gone down to a Northern Virginia Community College (very good CC, on par with most of Virginia's 4 year schools as much as a 2 year school can be), swung a dead cat into a filled CS room and every candidate it hit would have done better than this guy.

    1. Re:Worst new hire we ever had... by Oligonicella · · Score: 3, Informative

      He was talking about *that* guy. He didn't extrapolate at all. Nor did he say the comm college people were great, just better than *that* guy.

      English Comp is a good course, I hear.

  7. Completely agree. by Anonymous Coward · · Score: 2, Interesting

    I have also been involved in hiring new programmers. Once in a while we get a gem, fresh out of college, who can actually write code that solves problems they haven't seen before. They can figure it out, and they can make it work.

    Most of the candidates, with Computer Science or Software Engineering degrees, freeze up when given a problem that requires them to create their own data structure and write an algorithm to traverse it, in order to solve a business problem. Every piece of the problem is straight out of algorithms textbooks, and yet these A-students can't do it.

    It isn't that all of the candidates are stupid. Well, some of them may be, but many of them are quite smart; they have just been victimized by an education system that makes its money by dumbing-down the criteria to cater to a huge group of people who want the degree (presumably for the money) but don't want to get their hands dirty doing the work. It has created quite a challenge for us, since we are needing to try and use the interview to gauge intelligence and the ability to learn programming skills on the job, rather than a simple proof of existing abilities.

    Don't even bother asking green candidates about how to make their software secure. Just assume you will have to teach them all of that on the job.

  8. Have to have fixed standards by Roger+W+Moore · · Score: 3, Insightful

    There are a lot of classes like this (one example I remember was college vs university physics...)

    Exactly - the reason we have two courses is because we need to have fixed learning outcomes for the course and fixed standards against which students are graded because there are two levels of physics required by different programs. When I teach either the calculus or non-calculus course I assess students against a fixed set of standards which are lower for non-calculus than calculus.

    Having flexible standards based on how confident the student is when they start the course is utter nonsense. It's great if a student massively improves their understanding of the subject but if they fail to show that they understand the material in the course then they still need to fail because otherwise you are just setting them up to fail in subsequent courses which rely on them understanding the material in an intro course at a certain level.

    I already regularly have to explain to students that we reward performance not effort with grades. The reward for effort is putting in the best performance you can and getting the best grade you can. How many people would be happy seeing a doctor who qualified based on how hard they worked rather than how well they understood medicine? Who would want to live in a building or drive across a bridge designed by an engineer who did not understand basic physics but worked really hard at trying to?

  9. Re: Um ok? by nospam007 · · Score: 2

    ""Just a warning. Expect a generation of condescending ass-coders full of themselves"

    Too late. We were here decades ago.

  10. Privilege by lucasnate1 · · Score: 3, Informative

    The real purpose is to let privileged people connect with other privileged people so that they can get privileged VCs to fund their startups or hire each other. Harvard is just capitalist america's version of aristocracy.

  11. Harvard CS50 is a joke and a show by Anonymous Coward · · Score: 3, Interesting

    A mish-mash of random topics with no proper introduction nor depth. It's a show, where Malan is the star and only performer, every night, as the whole course is presented as such.

    Nobody who takes CS50 learns anything solid. It's just loose fragments of knowledge without any real theory or application to use it in.