Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Taking CS50 feels similar to watching a movie that has an auteur’s fingerprints all over it. Every word in the lecture, every technology, and every problem set has been carefully crafted to fit together to create a cohesive experience.

College instructors everywhere should take the course to see what the zenith of multimedia online education looks like.



I've watched some of the lectures of CS50 in the past, and the one question that has always come into my mind is this: "How do these lectures help you learn at a deep level?" I already knew most of the material, so I found it to be an entertaining review, but that's different from a beginner needing to learn new material at a deep level. I kind of think it'd be a nightmare to take good notes while watching his lectures. I'm not bashing the lecture style, but if I were a student, I'd prefer a good textbook to those lectures.

In contrast, I watched all the lectures of Martin Odersky's functional programming MOOC. I learned a ton from that even when I'd already seen the material. His presentations were lower tech, with less razzle-dazzle, but my goal was to learn. His presentations are optimized (intentionally or not) to facilitate good note taking and later application.


1. There’s a companion C book for the course 2. The labs go into much more detail compared to lectures 3. The psets can be Nintendo-hard; you’ll be doing devilish pointer stuff by week 3 or 4.

The happy-go-lucky, flashy tone of the course is completely misleading. It is a challenging course, so much so that it’s been the subject of numerous cheating scandals from students caving under the pressure over the years.

As for depth, this is a first intro to CS meant not only for CS majors but for people from other domains (Econ, humanities, hard sciences, what have you). The style is meant to cater to people who might not be a priori fascinated by flipping bits. Still quite a bit of people decide to concentrate on CS after taking the class, so it must be doing something right in that sense...

The course is not mandatory for CS concentrators, so if you already know your fundamentals you can jump right into CS51 (functional programming) or CS61 (intro to systems), which are outstanding courses but much more terse in style.


You are conflating the pre-Malan intense weedout "I survived CS50" CS50 with Malan's kinder gentler easier more superficial CS50.

Malan's innovation was to change "Intro to CS" from "let's see who knew CS before they got here" to "Intro to CS"


Having watched a good number of people take the course, I think it's still extremely difficult for most students with no background in the subject. A number of classmates from other disciplines have told me that it was the hardest they took during undergrad.

It was definitely altered to be able to cater to a wider range of students, but that was mostly done with more approachable lectures and a _huge_ amount of support from the course staff rather than by simply making it easy.

If you already have a programming background then it is definitely very straightforward because, at the end of the day, it's an intro to programming course.


> The happy-go-lucky, flashy tone of the course is completely misleading. It is a challenging course, so much so that it’s been the subject of numerous cheating scandals from students caving under the pressure over the years.

It's hardly a "challenging course" by department standards, but perhaps to a broader audience. 161, 224, and even 124, 61 are much harder.


Word. The 1990's CS50/CS51 course enrolled both students who'd gotten a "5" in the CS AP and students who didn't know what a for loop was. It felt like learning to swim while simultaneously drowning.


The even sillier split-audience course in the mid 2000s was CS121, the intro CS theory course.

More or less a math course, but required for CS students, the audience included a mix of advanced math students (including e.g. some IMO winners) and programmers without any math background.

The result was that half the class felt it was incredibly easy and slow-paced (at least for the first month; later the problems got tedious and fiddly for everyone), and the other half was completely overwhelmed.


As referenced in sibling comment, I took 121 a bit earlier than that, with Prof. Lewis. Of course he taught from his "Turing's Face" textbook, which is widely touted as accessible to students with high school math. By the time I took 121 I had quite a bit more math than that so I can't recall whether that is true. I agree with your "tedious and fiddly" assessment, but I don't see any way around it. CS is a tedious and fiddly subject anyway, but the fiddly tedium in this case is related to foundational truths about computation rather than trivial details of particular algorithms (...or, at less ambitious schools, APIs). Frankly, I hope it's never the case that a student could graduate Harvard with a degree in CS (or applied math) without mastering the material that Prof. Lewis taught in CS-121.


CS51 in 1997 (to specify the version to which I was exposed) was a great deal of work, but it wasn't beyond the capability of the average Harvard student. After all, as mentioned ITT, the Great Pointer Winnowing had taken place in CS50. Maybe I'm speaking from privilege, since I had coded some BASIC in 8th grade...


This is still the case... most CS concentrators enroll in 50, of vastly different background.


My comments were focused specifically on the lecture style - I just don't see the CS50 lectures as particularly effective. The students are almost certainly doing their learning by reading the textbook, attending the labs, and doing the problem sets that you mention. I have trouble seeing how the lectures contribute to truly learning the material. They're designed for passive consumption.

I wasn't referring to depth of topics but depth of learning. The latter is how deep you understand a given set of material. Passive consumption of an entertaining lecture doesn't help much.

> Still quite a bit of people decide to concentrate on CS after taking the class, so it must be doing something right in that sense...

That means it's optimized for recruiting folks to the field of CS rather than optimized for student learning. The only reason I've ever taken a class is to learn.


> Passive consumption of an entertaining lecture doesn't help much.

I wholeheartedly disagree. It's said on a video linked in another comment, students can learn by associating the emotions they are experiencing with the content they are receiving. Specially if his classes are that outstanding.


This research, out of Harvard, disagrees:

https://news.harvard.edu/gazette/story/2019/09/study-shows-t...

That's certainly not the only evidence that passive lecturing isn't particularly effective:

https://www.sciencemag.org/news/2014/05/lectures-arent-just-...

It's not hard to find other papers showing the same thing.


You misunderstood me, I never said passive lecturing was better than active, what I said is that it is useful (as opposed to your "doesn't help much") and as an "entertaining lecture" (quoting you again), not as a boring one as the second article states. Clearly an active one has more chances of sticking with you but don't you remember any particular scene in a show that for whatever reason you can't never forget?


Passive lecturing is awful in general, but I'm not sure what the alternative is. At least with an online course you can pause, rewind, rewatch. With an in person lecture you are at the mercy of your note taking ability and the book. MOOCs were just becoming a thing when I was in graduate school and I really think my undergraduate experience would have been much better if they had existed then.


> I'm not bashing the lecture style, but if I were a student, I'd prefer a good textbook to those lectures.

I suspect you're in the minority here. The majority of students are more engaged by a good professor lecturing on material than by reading a textbook. This is especially true for introductory classes which CS50 is, because a lot of the students are from other majors and are being introduced to the entire field for the first time. It's hard to enter a new field just by reading a textbook.


> I suspect you're in the minority here. The majority of students are more engaged by a good professor lecturing on material than by reading a textbook.

Me too. I'm not saying that in general textbooks are better than lectures, I'm saying the lecture style of this class is sufficiently ineffective that I don't see how it's worth anyone's time to watch. In contrast, Martin Odersky's lectures are designed to effectively teach the material, and they absolutely are better than reading a textbook.

The difference might be that I've always learned by taking notes and working through the ideas during the lecture. For those that are into passive lecture consumption, CS50 is about as close to perfect as you'll find. The style definitely doesn't work for me.


> I'm saying the lecture style of this class is sufficiently ineffective that I don't see how it's worth anyone's time to watch.

Again, you're incorrectly extrapolating from your minority view and making global statements about how it's not worth anyone else's time. This lecture style is very effective for most people and is absolutely worth their time. Witness how highly rated the class is, and how successful it is at drawing people in to the major.

> The style definitely doesn't work for me.

That is a fair statement. But saying it's not worth anyone's time absolutely isn't, and is directly contradicted by the fact that this class is in fact highly successful, well-rated, and does a good job of accomplishing its goal of introducing people to the field.


> and does a good job of accomplishing its goal of introducing people to the field

That's exactly the point. The goal is not to help students to learn the material at a deep level. It's to recruit students to CS. I'm not even sure what the disagreement is at this point, so I'm going to step away.


but you were pointing out its flaws in achieving a different objective ("learning deeply")


When I took the course as a near-beginner (someone who had taken programming 101 classes before but struggled to make anything useful), I found that jumping between languages frequently was more frustrating than helpful. Ultimately I moved on to something else. CS50 had high production values but I didn't find it superior in any other way. None of the content is bad, but I didn't get the feeling that many seem to have that its the greatest intro to CS.

Definitely didn't seem super beginner friendly after the first week or so. Perhaps I'm too slow at picking this stuff up.


>I've watched some of the lectures of CS50 in the past, and the one question that has always come into my mind is this: "How do these lectures help you learn at a deep level?"

I learned basic programming by doing CS50x. The purpose of the lectures is to introduce the concepts in an engaging way, and spark interest in doing it yourself. Then the learning happens in the weekly assignments, where you have to actually implement the ideas and get your code past the automated testing. I'd say the assignments are 3/4 of the course.

It's a very nice introduction to programming for someone who hasn't done any before. And in the end that's what it is - an introduction, not a deep dive.


> I'm not bashing the lecture style, but if I were a student, I'd prefer a good textbook to those lectures.

There are supplemental textbooks listed for the course:

https://cs50.harvard.edu/college/2020/spring/syllabus/#books

Also, confused why you expect depth from something with "intro" in its title.


That's why it's called an intro course: it covers a lot but none of it too deep. From what I understand the course is taken not by those who've been doing programming since childhood but also by those in almost completely unrelated fields. There's plenty of courses that can be taken later that go very deep.


You are probably an exception: self motivated individual. The rest of us, which I assume is a big majority: prefer video over text, are more engaged by visual interactions, and still found big parts of this material hard to grasp, not to mention the preference for the free availability of the material.


Do you mind sharing the name or url to these MOOCs?


there is also lecture notes made already

more often that not, as a CS student for most core cs classes, i have barely written any notes.


One thing to keep in mind is that (according to the article) he took over the course in 2007.

I have been interested in pedagogy and talking with all the great teachers, the one thing I see in common is the ability to update, improve, and iterate. Constantly. Pretty much every time the course is taught there is something slightly different. There is risk there (sometimes changes are harmful) but that is how you make the course better.

My guess is that is the case here, and that the course 13 years ago was not nearly as refined. But he had a vision and stuck with it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: