At the university I went to, it felt like a lot of the students who didn't know what degree they wanted, would pick CS because it "had to do with computers" and they had no clue what it would actually entail. Hence large amounts of them failing CS 1.
And as for some pre-CS1 course. I went straight into CS1 without any previous experience programming. I managed an A in it with ease. If you are dedicated, read the silly book, do the homework, it doesn't matter if you knew nothing coming into the class.