This is bizarre to me. It's like someone signing up for a music degree having never played an instrument. Maybe you'll cram enough to pass a test on the theory, but it's useless knowledge. It's unanchored and will float away.
Engineering students are expected to have a strong maths background. If you can't do algebra and basic calculus then there's no chance of getting in.
It's completely reasonable to expect a CS student to have experience programming.
If you say so. I neither see the reason nor the advantage. Don't get me wrong: I had experience in programming before entering a CS program, but I had fellow students who never did any programming before and they did just fine, while others with programming experience failed. And I'm pretty confident that all of them who managed to stay through the introductory year were/are able to do FizzBuzz.
Recent undergraduate grad here. A lot of the algorithms I've seen on technical interviews were only covered once or twice in the curriculum. Basically, one such algorithm would come up in either the data structures or algorithms class, we would then work on it for the given assignment/exam, and finally we would move on from it. Subsequent course work would barely reference it.
These things are best learned through repetition. Unfortunately, with all of the other CS coursework topics that I was being educated on, it seemed like there was little room for the repetition to take place. (At least, not in the stereotypical four year timespan assuming that the given student enters a CS program with no prior programming knowledge.)