As many people have remarked (especially in this twitter thread), teaching people to read code before writing it could be a way forward for many CS students. Having students work through coding literacy problems during class would not only prepare them for certain kinds of interviews, but also establish a healthy paradigm of reading existing code that might prevent things like "not invented here" syndrome and a desire to scrap existing contributions to a project and re-write it all yourself.
Different people learn in different ways. I didn't really understand functions in programming until I understood that they were (ideally, and ignoring side-effects) equivalent to functions in math (i.e. that they were a mapping). Lesswrong's Screwtape wrote a great essay about why presenting the same concept in a variety of ways is important and effective.
It would give students experience with real writing that other real humans might read (versus things only your TA will read), and help you internalize what you've learned in a class.
I learned far more in intensive classes that only took a few weeks but occupied all my class time than I did in semester-long classes that only met for a few hours per week. Juggling 5 disparate classes becomes a meta-task of figuring out how to do just enough work in each to stay afloat, because you don't have the time or energy to fully devote yourself to more than one or two courses at a time.
Having one class at a time (with breaks frequently throughout the day) means you can really invest yourself mentally and emotionally into the material, and it prepares you much more for most jobs.
The only way you can guarantee that a student is learning something is by giving them time in a space where they have to be working on it. As a recent grad, I always felt I learned much more quickly in a lab, with access to a TA or two, than I did on my own or in lecture. I also got work done at a much faster rate.