This article caught our eye over our long holiday weekend:
Should Computer Education Cover More Than Just Coding? (NPR | Education)
At first blush, the answer is “Of course!” — but this presumption forces us to look again at the calls and initiatives for computer education in grade schools as well as the proliferation of coding “bootcamps” that operate outside the traditional higher education curriculum. Looking more closely at this presumption also suggests a complementary role for Saylor Academy’s computer science courses, as well as our offerings in physics and math.
Grade school programs and the bootcamps focus heavily on coding for a variety of reasons, among which:
- coding in itself promotes different ways of thinking and of approaching problems, if not explicitly
- coding can be very easy to teach and brings quick results, just as learning some vocabulary and phrases can give one a satisfying and useful introduction to a foreign language;
- coding is relatively easy to teach, so it is more affordable and achievable for schools;
- the skills at coding bootcamps are typically oriented specifically to the needs of the job market; students produce a portfolio of work that demonstrates discrete skills much better than a degree or grade can.
Another way to phrase the central question in the NPR article is this: should practice precede — or even supplant — theory?
How you answer this question may depend very much on your perspective. For an adult learner who needs specific, practical, demonstrable skills toward expanded employment opportunities, acquiring the underpinnings of theory may be an insupportable luxury. For a classroom with limited time, resources, and students with widely varying interests and skills, the instant gratification of a coding-first (or coding-only) approach is obviously attractive.
One critique of the theory-laden traditional higher education approach comes from someone with one foot in the academic world and the other in the business world. From the article:
Gene Chorba, a student at Georgia State University, works full-time for a Georgia-based startup.
“In the traditional collegiate learning experience,” he says, “you sit in a classroom, you’re given a book you spend hundreds of dollars on, and most of the information you learn is never used.”
He says his company has stopped recruiting at career fairs. Instead Chorba does recruiting at hackathons, where students code applications and gadgets they can show prospective employers.
In short, for this particular company, applicants who show up at career fairs, resumes in hand, get nothing; applicants who can demonstrate creative, practical problem-solving skills at a thirty-six hour hackathon, often in collaboration with others, take the cake.
Others, however, point to the possibilities for serendipity that arise from a more diverse, less laser-focused (and typically more time-consuming and expensive) approach to learning that includes computer science theory, practice, and more:
“There’s so many things that you learn in your classes that you wouldn’t have otherwise gone to find,” [University of Maryland sophomore Jenny Mandl] argues. “That’s one of the main things that creates creativity.”
(This debate is not limited to computer science; cf. Building a Bridge Between Engineering and the Humanities from The Chronicle of Higher Education)
So, how do we at Saylor Academy answer the question posed by the article? Although some of our computer science courses do include basic coding and introductions to various languages (Java, for example, in CS101), we do not do what a high-priced coding bootcamp or some of the wonderful free alternatives (Khan Academy, Codecademy, Free Code Camp, et al.) do. Our CS program is consciously modeled on a bachelor’s degree curriculum, diverse in topic and relatively heavy on theory/context. We operate in the middle ground between traditional higher education and the more fast and furious learning you can get from a typical MOOC or a coding bootcamp. But we do not deny the value of a coding-first or coding-only approach; we do believe that deeper, more comprehensive learning is to be preferred whenever it is possible but also that “merely” sufficient learning is better, any day of the week, than none at all. Learning computer science does not have to be an either/or proposition. Saylor Academy is in a position to both complement and extend the pure-coding practice that has become so ubiquitous in the past several years. Add in our physics and mathematics courses (and some arts and humanities…why not?), and Saylor Academy is one of the few places around where anyone can get a college-level, professor-built computer science foundation for free.
Independent of one another, intensive coding practice and the Saylor Academy computer science curriculum provide value to students, but there is likely still more value to be had from a combination of the two. Even considering limitations of time and energy, students looking to build upon theory can and should be building their own software, however modest; students building their own software can and should be building up a diverse and sustaining theoretical framework, even just one sub-unit at a time.