“Science” was dubbed the word of the year in 2013. And though this may an impressive achievement for the human race, especially considering that the runner ups were “snuffalgapus” and “bieberlicious”, one cannot commend ourselves too generously. We still have a long way to go.
For example, let us go on a short walk from MUSC to BSB. Once there, realize you are in the science sector: chemistry, biology, physics. But yet, there is a lingering feeling that something is missing, Geology? Perhaps, but I argue there is something else, something deeper.
These science students, McMaster’s finest in the most pragmatic of arts, will not have the science that allows all what they learned to become possible. It is the magic glue that holds things together. Okay, it isn’t mathematics, which is the basis for what I am arguing, but instead computer science. Software and hardware are behind every innovation. You want some nuclear magnetic resonance, read the software output. You like polymerase chain reaction, try automation. Computer science, and the principles that underlie it, lay the foundation for much of modern science. It is not a difficult concept to debate then that digital literacy has never been more important. It empowers you to make what you want, and have the necessary skills to contribute positively in your field.
Yet most science students – not even to speak of the humanities, social sciences, or health study students – lack programming skills. Even our math majors can barely string together a valid function.
What is worse, the computer science students who are learning how to code are doing it perfunctorily. They worry only about output, rather than the language. The current paradigm for computer science in university is not different for any other program, do what they want, do well, and don’t be creative in your approaches. Such terrible practices are then translated to industry.
These habits also permeate through the online learning of CodeAcademy and the like. They teach you the basic format and language constructs, and that is all. You complete the exercises, all in a daze, and then wonder what is next. It is like learning the alphabet and thinking you can write a book.
The fact of the matter is that most students don’t know how to program, and those that do only know it robotically. This author does not evade these categorizations. To know how to program well, to appreciate the beauty of a language, to use its syntactic sugar well, is an art. To have great test coverage, to be efficient and write simple code is an ever expanding hallway in your worst nightmare.
Is there a reason most students do not learn how to code? Yes, because they believe it to be hard. If this is any counterpoint, I was able to learn. Secondly, as to why students who do know how to code, code poorly, I can only proffer the argument of patience. The art is long, and time is short. Most students think once they learn the alphabet they can put together Brave New World, yet the same is not for “Hello World.” The only solution I offer is teach computer science early, teach it well with as many different ways as possible, and wait.
Good stuff is waiting behind our semicolons.