Why didn't the funding go to hiring more staff?
My experience in a state school had far more access to education staff than what you describe, and for less funding.
Harvard tuition is $54,269, says https://registrar.fas.harvard.edu/tuition-and-fees .
Assuming it's a 3 hour class with a 120 credit hours to graduate, that's 30 hours per year, so each student pays about $5,000 for what seems to be a horrible staff/student ratio.
FWIW, I found https://cse.engin.umich.edu/stories/popular-intro-cs-course-... as a comparison, the EECS 183 course at the University of Michigan.
Three professors (Dr. Dorf, Dr. Bill Arthur, and Dr. Héctor García-Ramírez), and 24 student instructors for the 870 students who finished the course. (It doesn't say how many started the course.)
Full-time tuition at UMich is $8,780/in-state and $27,663/out-of-state.
Without class size numbers for Harvard, I can't directly compare the two.
I can understand that the distance learning version of the course does need to scale. But chefandy was talking about the in-person version of the course. (Unless "in a giant hall waiting" means some sort of VR-based course. :)
The total tuition+fees for Academic Year 2023-24 from the same page, is $79,450/year, giving $317,800 for 4 years, and matching your number.
Instead, I think wil421 was asking about the difference between "tuition" and "tuition and fees".
Anyone in the world can take CS50 for credit via Harvard Extension [1], and if you happen to be in the Boston area you are welcome to come to campus and attend lectures, sections, office hours, etc (but they also have everything you need fully online).
Like other large classes at Harvard (Stat 110, etc), these operate just like the weed-out courses at the big state schools. Unlike the state schools the deadline to drop a course without it showing up on your transcript or affecting your GPA is really, really late in the semester. So it's not uncommon for 50+% of the kids to be gone by the final exam/project.
Does that mean Harvard Extension students get even worse access?
Surely paying twice as much in tuition should mean something more than getting to say "I graduated from Harvard."
An extension student doesn’t have access to the full course catalog, and doesn’t live in one of the undergrad houses, doesn’t develop the same network of friends etc.
But they do attend the same morning graduation exercises in Harvard Yard and get the same lifetime benefits (if they carry through to graduation, that is).
That would (to me) only make sense if the extra $3,000 for the CS course subsidizes the other courses.
> and doesn’t live in one of the undergrad houses
Which is why I only compared tuition, and did not include the housing fee.
However, your degree options are very limited, you don't get access to the same interaction with the big famous names (though you can usually work some magic through side channels for genuine collab interests,) you don't really interact with the Harvard College undergrads, you don't get the same internship opportunities, you can't join the sports teams or go to most undergrad-specific events, you don't live in the Harvard buildings or eat in the Harvard dining halls, your email address is extension-school specific... etc etc etc. Even if there are undergrad specific things you technically can take part in, nobody is going to make sure you know about them. You DO get the same access to the online resources, all of the clubs, and all SEVENTY TWO libraries (some are like office-sized.)
Harvard knows how much cachet a Harvard degree has, and with the extension school, they must walk the razor-thin line between marketing that to extension students, and making the Harvard College students feel like ubermensch. You actually get a different degree from the extension school— a "Bachelor of Liberal Arts (ALB) in Extension Studies concentrating in XYZ" rather than the "BA/SB concentrating in XYZ" to differentiate it even more. Lots of extension school students try to push it on their resumes because most employers don't know the difference, and lots of Harvard undergrads get mad about it and feel like that cheapens their degree. In reality, the connections, outlook, exposure, and experiences uniquely available to them in Harvard College are the real secret sauces.
Reading about how crappy their intro CS course it makes me downgrade their cachet.
I can't help but wonder if the richer students simply pay for a tutor, rather than depend on the school-provided services.
The system isn't perfect - it never will be. But seeing lots of kids at sections and office hours is a good thing. It shows that they are willing to ask for help when they need it, and are willing to put in the hard work to succeed. I'm sure that some of the richest kids pay for private help. But one thing you need to understand about the wealthy is that they are more likely to make use of the services that are available to them. It is very striking to see how many poorer people suffer in silence when help is available, because they don't want to be a burden or are embarrassed to be in need of help. I assure you that no rich person ever feels embarrassed by asking for help.
As for Harvard Extension, a lot of people will tell you that it is around 100 years old. But in reality, it is a lot closer to 200 years old. Harvard alum John Lowell Jr left half of his estate to provide educational opportunities to greater Boston. They paid the most accomplished academics they could find to present lectures for free or cheap at night so that people who worked jobs during the day could attend. It wasn't limited to Harvard professors, of course, and it continuously evolved to serve the needs of the day. The trustees at MIT were the first to organize lectures into a real curriculum rather than a set of ad-hoc topics. By the early 1900s it had transformed into an organized group of all of the colleges and universities in the Boston area. Depending on the subject matter you studied, you "graduated" from the school that specialized in that subject even if you took courses at a different school. All those schools dropped out, one by one, until Harvard was the only one left - which shows their commitment to the concept (no entrance exam, inexpensive, targeted at non-traditional students).
At the events, there were Facebook and Microsoft logos everywhere. I'm pretty sure corporate sponsorship took care of a lot of it.
I learned that they always have money for stuff but rarely for staff. The class seemed to have significant corporate support from Facebook and Microsoft, and probably others— both Zuck and Ballmer have given guest lectures— but I'll bet that Harvard's governance rules didn't let them hire academic staff with outside funding or something like that. They def could use it on regular staff positions— I spent years in a full-time, permanent staff position that was funded through a project partner.
The support academics in CS50 are all done by student TAs at the lowest level, or teaching fellows— grad students maybe— for lecturing or more advanced help. The staff are for things like video production, technical infrastructure, etc. There's only so many qualified students willing to do that work and no way you're getting existing faculty to do it. I'll also bet that they have rules about hiring staff to do anything resembling instructional work.
Like I said, though, I don't know what the situation is exactly but I'm pretty familiar with Harvard.
Why buy the cow, amirite?
(By "they," I mean Harvard, generally. I have no reason to believe CS50 is exempt from this, but I have no special insight, here.)
They've taken on debt that their (government-employed) guidance counselors insisted would pay for itself. Decent paying white collar positions for non-degree holders, like administrative assistant, now require them because of lazy recruiting. And income inequality is worse because you can't resolve structural economic issues with credentials.
So you have someone with an expensive English degree from BU answering phones in a CS pool for 35k, and the 'dumb' kids who went to trade school and became electricians have to turn away work at hundreds of dollars per hour because they're in such high demand.
It's been a while since I was an undergrad, and I didn't study CS when I was (I was in math -- we didn't even get the unit test to tell us we were wrong lol). I understand auto-grading like this is very common in lower level CS classes, but wouldn't it be possible to write these "test suites" in such a way that they could provide some hints on exactly what was wrong? I have to imagine, based on my experience as a graduate TA in math, that undergrads as a whole make mistakes that typically fall into certain classes, and that those classes could be reflected or captured in the pattern of which "unit tests" end up failing. It doesn't strike me as terribly difficult to analyze these patterns of failures, after running the course at least once, and come up with useful hints as feedback.
Does nobody do this? Or, perhaps more to the point, does nobody ask their TAs to do this?
> Totally legit philosophical debates aside, I think this is a great use of the technology. It's a very, very well-funded class (bigger dedicated full-time year-round staff than some entire departments,) so I'm sure it's not a half-assed effort.
I agree broadly with this. If you're going to do this experiment, in principle, a class like Harvard CS-50 sounds like the right place to start, for the reasons you've listed.
However, if this chatbot is just an equivalent of ChatGPT with the GPT-4 model and some additional training/fine tuning, I don't think the technology is quite there yet. We've seen a lot of examples already of how GPT-x has a tendency to give "confidently incorrect" answers, and that's the absolute last thing you want to be telling beginners. I've seen answers that could plausibly fool experts, yet be wrong enough as to be useless once you try to verify the details. The danger here is that beginners may not recognize this, and may not be able to verify the details.
That said, I think there is a future for this sort of technology in precisely this type of instructional environment. The "confidently incorrect" problem is something that can be mitigated with fine-tuning, proper prompt engineering, and other techniques, but, to my knowledge, can't be eliminated if the system is essentially a bare text interface into an LLM. I think the work being done with web search is a possible direction here, since I've seen GPT-4 essentially give up and go search the web when pressed for details or when the actual answer would become too complex. For a restricted domain like CS50, maybe even some kind of formally encoded knowledge base would help it (similar to how I mentioned analyzing patterns of failures to provided hints).
What I do know is that the gigantic "hall-o-TAs" is absolutely not a great user experience for undergrad learners, so anything that offers the potential for improvement on that UX is definitely something I'd like to see pursued and developed.
For example, I once copy pasted an OSS code base into ChatGPT and all hallucinations went away. I had to limit to the files relevant to my questions, due to the context window limitation, but worked really well.
Providing hints is a bit tricky, however. Often times, students fail the test case for unexpected reasons, and our hints actually mislead them. I've had students come to me (as a TA) saying that the test case is wrong because they take into account the hint.
Naturally, we could just give better test cases / give a broad disclaimer, which we try to. We do the latter, but the former is tricky, especially when we are trying to come up with novel problems.
The problem with first year CS students is that, unlike math, they’re allowed to have a huge range of possible prior experience in the subject. Some have zero programming experience whatsoever, while others started programming in diapers and competed in numerous programming contests (and even won) before enrolling.
Yes, we do offer an advanced version of the intro course that is far more challenging and would be appropriate for many of those advanced students. But the advanced course is optional so no student can be forced to take it. Many of the advanced students opt to take the standard intro course in the hope that it would boost their grades.
So the course is dealing with (essentially) a strongly bimodal distribution of student ability and the professors don’t want to give the advanced students a free ride. That means the course is actually somewhat challenging for all but the most elite programmers and therefore extremely challenging for total beginners.
What this meant was that Monday office hours (assignments were due Tuesday mornings) typically had several hundred students (out of a total of about 1800) scrambling for help from a dozen TAs. Of course, my school only has a tiny fraction of the funding of Harvard, but there you go.
I doubt that Harvard would want to spend proportionally more on TAs for their course (which would mean more TAs than students), so even though their course may be way more “well-funded” than ours, it’s not at all so relative to endowment.
HN readers: universities that teach a so-called "How to Design Programs" curriculum [1] have discovered a partial solution to this problem. Emphasizing a design process in a functional language removes the advantage that students with experience but not a deep understanding gain from knowing how to cobble things together the way they learned in high school AP CS A.
I'm not saying it's the only route, but it works well and develops important skills that are (ime) not learned by tinkering.
[1]: https://htdp.org [2]: https://course.ccs.neu.edu/cs2500/labs.html
We even hand-mark their design recipes in the course! The students just do them after the fact.
They also don’t want to allow the advanced students to “test out” of the intro course, as some schools do, because the advanced students may be highly skilled at programming but totally lacking in introductory CS knowledge.
Source: Am a high school programmer
Firstly, a big part of the allure of CS50 is the fact that it's one big ol' nerdy computer party and you're invited!
Secondly, and I'm not trying to sell the Harvard mystique, but considering that Harvard's acceptance rate is 4%, the students handle brick-wall challenges gracefully.
Additionally, they don't necessarily want students that are going to do poorly in CS50 to pursue computer science at Harvard, so I'm sure it also serves as an effective bouncer for all of the students who haven't decided on their concentration deciding that they'll do CS because tech is sexy right now. The lectures look pretty straightforward, but we had to write code involving basic data structures and memory management in C on our paper midterm exams, with no reference, administered in a lecture hall. It's probably tough for kids that are used to acing everything, but it's a lot easier to find out you don't like CS in CS50 than it is to find out after choking on discrete math or a compiler class.
And as my first-year expository writing professor said after assigning like 70 pages of close-reading Kant for a weekly assignment, "Will it be difficult? Yes. Reading Kant is like running in sand. But that's why you decided to go to Harvard."
Totally legit philosophical debates aside, I think this is a great use of the technology. It's a very, very well-funded class (bigger dedicated full-time year-round staff than some entire departments,) so I'm sure it's not a half-assed effort.
Malan is a great lecturer and his CS50 classes are all on YouTube. I sometimes send new coders to them but they're a fun watch, in general.