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."

10 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

  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 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!
    3. 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
    4. 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
  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
  5. 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?