It depends on the class. Many "intro to OO programming" classes are really "intro to programming" that happen to use OO. There are no or low-level prerequisites, so the class often has to accommodate learners who have never so much as written a hello world script. (There is also pressure for higher level classes to dumb things down so the students from the lower level classes don't reach an insurmountable cliff, even if it's only insurmountable because the school's earlier classes have failed them.)
That's what is wrong! It's like starting an English degree as an illiterate person and expecting the intro courses to make you literate; worse, the programs are designed with this expectation in mind.
-There usually isn't a prep course available, nor are there other prerequisites.
-When there is a prep course, it is usually called remedial as if being failed in high school, being an older student who left high school years ago, or just never being exposed to a subject makes you, as a person, deficient. (And, of course, these legally have to be included in a person's transcript.)
-Universities are under pressure to push people through quickly, so they don't want students taking extra prep courses early on.
-Universities/parents/students all want to see good grades and frequently prioritize this over education (which is probably the fundamental problem of education: how to evaluate and what to do with those evaluations)
-There are no ways, difficult ways, or arbitrary ways to drop out of an intro course.
-A syllabus is fundamentally a contract, but you (usually) don't get to see it until you have registered, paid, and been to the course.
...
etc.