Approaching coding as literacy
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.
Providing optional curricular pathways to match people's optimal learning strategies
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.
Weaker Ideas
Learning functional programming as part of the core curriculum
I wish I had been exposed more to functional programming from the beginning! We touch on recursion in school, and I feel comfortable writing my own tree traversal functions, but outside of that it was hardly used. For example, I wonder why LISPs aren't taught as a core programming family alongside the normal ALGOL languages (C, Ruby, Python, Java, Javascript, etc).
Encouraging students to write tutorials based off what they learn
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.
Redesign of class structure
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.
More lab time
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.
Top comments (0)