Disagree too. These courses were also known as “weeder” courses so less students do the major, which can’t support all the interested students, so they’re overly difficult. Anyone learning, I would start with JavaScript and make small fun stuff.
They weren't overly difficult. They were just the same difficulty as the rest of the CS classes at Cal. If you couldn't pass these you wouldn't pass any other CS course.
I don’t think they were the same difficulty at all as some of the upper divs. Classes like CS 170 (Efficient Algorithms), Cs 189 (ML) and CS 182 (Deep Neural Networks) were all significantly more difficult than any 61 series class.
Of course a computer scientist would call out my imprecise language. :)
What I meant was that it's difficulty was in line with expectations for a lower division course given the difficulty of the upper div courses in the same major.
The CS61 series was excessively difficult compared to the upper-level material, and it was absolutely because it was intended to weed people out of the major.
I got A's in all of my upper-level CS courses at Cal. Cryptography and compilers were a breeze compared to the CS61 courses. My average grade in the CS61 series was a B-. The semester I took CS61B (data structures), my grade on the final was 21, out of 100. The average grade was 16, and the highest score was 35. (The 35 is a VC now and is fairly active on HN.)
They aren't intended to weed people out through difficulty, they weed people out through honesty. They don't dumb it down or make it easy just because it's the intro course.
It's very clear in the catalog that the course is not for non-majors.
It sounds to me like you learned how to study after you did the 61 series, which is why you did better in upper div (I also did better in upper div for that reason).
Also, 61B was graded on a curve, and you did better than average. The tests were hard so that the people who truly grasped the material could demonstrate that. Profs hate it when a bunch of people get a perfect score, because then they don't know who the best is (and so do the top students). It's done that way not to be hard and make you drop, but so that talent can be truly differentiated.
1) I took several upper-division classes before I took the 61 series, which I took in my 3rd year. (For my CogSci double-major, I didn't take the pre-req until my final semester, long after I had taken all of the upper-division classes.)
2) It is my understanding that most of the weeding classes (CS61 and their counterparts in other majors) are now graded on a curve, but they weren't back then: your grade was your grade. Hilfinger and others like him are the reason for the change. Quite ironically, several of their colleagues noted at the time that these professors would not have passed their own exams if they hadn't written them. (The story making the rounds back then for the reason that Hilfinger agreed to curve his class: after arguing for a week that students deserved the grades they earned, he took a test prepared by a colleague trying to demonstrate that his test was too difficult, and failed.)
I took CS61B with Hilfinger in '96. That guy was a character. In one lecture he didn't let a person answer a C++ question because he said "no, you already learned C++ in highschool. I want a virgin". People tried to avoid his classes, but you learn a lot from Hilfinger.
I avoided his classes like the plague. His name was already a verb in the 80s.
Which is not to say that I ever held that against him personally. It was kinda cool that you’d be in Evans at 2am and he’d still be randomly wandering the halls.
I once saw a young lady in the lab in Soda hall getting obviously frustrated. A few moments later she exclaimed, "Why is it so f**ing hard!" and then as if in a cartoon slammed her forehead into the lab computers keyboard repeatedly before a TA noticed and came over to help. It was like something out of a cartoon.
I've taken CS/Programming courses at a few institutions and never seen quite that level of despair/frustration. Maybe its just a CAL thing, I didn't end up transferring to CAL in the end so CS61A was the only class I did on campus, so can't really say.
I personally had a blast and absolutely incredible time in both CS 61A and 61B. That they're "weeder" classes can be considered true only from the perspective that they're challenging classes but note that almost all CS/Math classes in Berkeley are highly challenging and these weren't outliers at all.
Before coming to college I had tons of programming experience and two interships. I wrote websites, backends, real life applications shipped to customers, school club websites, I even taught C++ in my high school's IEEE chapter. CS 61A completely changed my perspective on how to think about code, I found it so valuable that I could graduate just with 61A, study everything else (algorithms, data structures etc) myself and be fine with it (this is likely an exaggeration of course, there is some value to finishing a traditional CS curriculum).
This. I went into the CS program cold, no prior programming experience at all. After CS3 and CS61A/B/C my relationship with my brain changed entirely. My approach to deconstructing and then solving problems, of any kind, radically improved.