E.g., start with a minimal implementation of the Unix 'wc' command in Python, walk through it explaining how it works, and then assign as homework adding the '-l' line counting option. As a professional it's trivial, but if you know nothing about a programming it can be very difficult to get started doing anything. It's too easy for us professionals to forget how much we know now.
Focus more on the performance characteristics and design trade-offs of core algorithms and data structures (e.g., binary search, quicksort, dictionaries, vectors, lists) and less on the nitty gritty of implementing them.
Starting with interactive languages like Python that handle garbage collection and have high-level containers built in is also useful. Noisy stack traces when something goes wrong are also much more accessible than a C or C++ core dump.
Another thing that irked me was the expectation that we were already emacs or vi experts! For beginning programmers, Notepad or Gedit is perfectly adequate.
Personally I had the benefit of having done a fair bit of programming in high school and on my own (Amiga AMOS FTW!) so I survived but I know it was very difficult for students who hadn't had any programming experience prior to university, and the drop-out rate from the CS program was very high (> 50% IIRC).