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."
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."
Guest lecturers have even included Mark Zuckerberg and Steve Ballmer.
and some wouldn't have to waste the time on reading the whole thing
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
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.
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...
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.
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.
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.
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?
""Just a warning. Expect a generation of condescending ass-coders full of themselves"
Too late. We were here decades ago.
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.
Avantgarde Hebrew science fiction
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.