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