Language Gamification: Bullshit vs Bullshit

Gamification may be bullshit, but does that mean it might be just the tool to fight your own, personal brand of bullshit?

Screenshot of Duolingo

Learning foreign languages is hard. Really hard. Part of this has to do with complex neurological reasons, which can only be explained using words like neuroplasticity and monolinguals. Yes, some of the difficulty is hard-wired. But additionally, a part of you just doesn’t like learning foreign languages. It’s complicated and easy to forget, requires a lot of memorization, and you can still sound like an idiot after years of practice. Sometimes the linguistic variations are impossible to pronounce or hear, or the grammatical structures are completely foreign to your mental processes. So you make up bullshit: reasons to skip or skimp on practice, or give up altogether. Learning a foreign language is a constant battle against your lazier self.

Duolingo logo

But Duolingo, a site I’ve recently come to frequent, changes the game, so to speak. It gamifies the process of learning a foreign language, adding daily goals, streaks of meeting your daily goal, unlocking mechanics, currency and purchasing, and total progress towards fluency. Now, it’s not a particularly good way of learning a language. In fact, it’s terrible at teaching. But really, teaching isn’t the point of Duolingo. It’s just a way of defeating your bullshit by replacing it with a more benign type of bullshit.

Duolingo assigns tangible, meaningless progression to the real, intangible progress of learning a language. Without Duolingo as a external, concrete arbiter that says “Yes you are getting better”, learning a language can feel hopeless because no matter how much you master it, there are always more words to learn, faster sentences to parse, and structures you don’t understand. Now, the “percent fluency” that Duolingo feeds you doesn’t necessarily correspond to any real gains, but it affirms that the hard mental work you put in today actually paid off in some continuing educational journey. And that affirmation is what makes you come back the next day to learn more.


Introduction to Programming

Taking an introductory programming course this semester has been an interesting experience. Since I grasp the course material well, I’ve spent some time helping others with their work. As anyone who has taught math can attest, teaching even basic concepts requires you to understand the material far better than the student must. When it comes to programming, helping people is even more difficult because you can’t just tell them how to do it. You need to let them to figure it out on their own, otherwise they won’t have learned anything.

But leading someone along without explicitly telling them anything is really, REALLY difficult. Our professor is a master at this, and I respect him deeply because of it. A student will ask a question, and the professor will reply with an oblique statement that doesn’t seem to address the student’s question at all. Yet soon enough the student says “Oh! I get it!” and goes on their merry way. I try as hard as possible to emulate this method when I help those who are struggling, but it is nigh impossible to strike the correct balance. Help them too much, and they don’t learn. Help them too little, and they despair or begin to resent programming. And as much as I don’t like seeing it happen, many of the people in the class have come to resent programming.

This is as sad as a student resenting literature because of a bad English class experience, or resenting math because of a bad math teacher. Yet I don’t fully understand how to prevent it. If there was a good, standardized methodology for teaching difficult concepts without causing students to resent the field, I feel a lot of the problems in society today could be solved. Maybe that is just wishful thinking, though.

The second interesting observation from taking this class has come from observing a peer. The first language she learned was Python, and learning C++ this semester has caused some distress. There were many lamentations along the lines of “why is the computer so dumb?!” Of course, I found this hilarious because it mirrors a situation in the novel A Fire Upon the Deep. As the protagonists head towards the bottom of the Beyond, much of their advanced computer technology stops working, and they are forced to adopt more primitive methods. Needless to say, the characters who grew up with the advanced technology are indignant that they are forced to use such primitive technologies as a keyboard. Meanwhile, the character who grew up using primitive technology merely smiles.

In my mind, this helps clear up the argument of whether new students to the art of programming should be started on a high-level language, or a low-level language. Until such time as low-level programming is never needed except in rare circumstances, students should be started at a medium-to-low level. For example, it is easier to step up to Python from Java than it is to step down. I was originally of the mind that new students should start at a high-level as to learn common computing concepts without getting bogged down in obtuse technicalities and syntax, but getting a first-hand view of the results of such an approach has changed my mind.

Using Games to Educate

In the last few years we’ve seen the Internet playing a larger and larger role in education. Everyone seems to expect a revolution in education within 20 years. It’s possible, although I don’t think it will come from the direction that everyone thinks it will (see my post on online education). I want to give my two cents about an ancillary approach: videogames. Games don’t have to teach the students anything. In fact, I think they are much more useful as vehicles for the education. Games provide a background, a context, for new knowledge. For example, playing Deus Ex: Human Revolution (play chapters of a game as homework instead of reading chapters of a book?) could help spark discussion about the current situation of computers, implants, artificial intelligence, politics, etc. The experiences within the game outside of the lesson help students stay interested and apply the knowledge, even if subconsciously, beyond the classroom.

I’m going to focus on two games: Kerbal Space Program and Minecraft. Prmrytchr has a whole blog on using Minecraft (as well as other games) in the classroom, so I’m going to focus on the technical aspects.

the KSP splash

Kerbal Space Program (KSP) is an indie game currently under development with an open alpha available for purchase. In the game, you run the space agency of a particularly derpy alien race in their Sol-like system. In sandbox mode, you can throw together rockets, probes, rovers, space stations, planes, and planetary bases from a wide assortment of parts. Then you launch your constructions and control them to the best of your abilities.

KSP Screenshot KSP Screenshot 2

While hard to grasp at first, the game is incredibly fun. You do need a rudimentary understanding of kinematics to play well. This is the first step in its ability to act as an educational tool. While you can strap an engine onto a fuel tank and try to fly it, you quickly realize that doing anything impressive — such as putting an object in orbit — requires a bit of education. While you could watch tutorials, you could also get a lesson about basic kinematics and orbital mechanics from a present teacher. There’s an opportunity for lessons on engineering, as well.

As students become more proficient, more complex opportunities open up to them. Orbital rendezvous and gravitational slingshots get more involved physically. Spacecraft design, between mass conservation, fuel-mass ratio, reaction thruster placement, and properties of engines, is a great opportunity for springboarding into other physics. Other elements of spacecraft design that aren’t simulated in KSP, such as heat management, enter the realm of thermodynamics. Ancillary topics that arise when discussing space exploration can involve relativity and electromagnetic waves.

minecraft splashMinecraft, on the other hand, is about as physically unrealistic as you can get. However, it provides an awesome way to teach logic and economics. Even vanilla Minecraft has a growing arsenal of parts which allow rudimentary (or not so rudimentary) automation. Redstone is a powerful tool for doing any sort of logical manipulation — or teaching it. Watching your toolbox of gates and mechanisms grow out of a few basic ground rules is amazing. Creative minds are pushed to imagining new ways of using redstone, pistons, minecarts, and all the other machines being added in. While I’m not a fan, mods like Technic or Tekkit expand the array of basic parts at your disposal.

Multiplayer in Minecraft is an interesting case study of economic theory. Because the system varies so much from the real world, it provides an outside perspective on traditional economic theory. As you teach the basics of microeconomics, you can analyze why Minecraft’s multiplayer economy and identify how to restrict it. The ultimate goal of the class could be to establish a working economic system on a Minecraft server (perhaps through plugins/mods?).

Redstone Schematic Redstone Screenshot

Whether or not any of these are good ideas, it illuminates how games don’t have to be the primary vehicle of learning to be a useful educational tool. Games can merely be a springboard, a point of reference from which lessons emerge. The game keeps the students interested and grounded in the topic, while providing a useful outlet and vector of fortification for the knowledge they are getting in class.

A Forum for Original Thought

Nowadays, people hunger for original analyses and theses. Their pangs are reflected in the popularity of video series like The Idea Channel, Extra Credits, The Big Picture, and TED talks. Essentially, these are just spoken essays and presentations. They don’t really utilize the video medium, other than by coupling speech with a slideshow of images and (occasionally) video clips. Yet more and more these videos are supplementing written forms like blogs and columns. The intersection of unquenchable desire for consumable media (i.e. videos) and a veritable drought of mental stimulation makes spoken essays a desirable form of idea transmission.

Perhaps the number of quick-fact “educational” videos (e.g. Minute Physics, Smarter Every Day, CGPgrey, Vsauce, numberphile) stimulated the Internet’s interest in science. Indeed, there seems to be a vibe coursing through the tubes that “science is cool”, even if the way science is taught in schools isn’t. The realization that the scientific realm, learning, and, more generally, intelligent thought can be interesting has made people desire an influx of original analysis. It stimulates the brain, giving way to more thought in a way that other media has (mostly) failed to do.

In a world with an endless volume of consumable content, our brains may have become starved. Long periods of rumination can be painful and boring, so we flood it with cheap, throwaway media. Yet these times of inward reflection may serve an important purpose. Unfortunately, our over-stimulation by Internet videos, TV, movies, video games, and music has left us unable to focus on content-delivery platforms like text. We thirst for mental stimulation, yet cannot bear to gain it by taking a step backwards. This conundrum gave rise to the popularity of “spoken essays”. They inject creative, original thought quickly and painlessly. As we mull over this gem, we can further explore the subject in the video comments. Such discussion is evidenced by the considerable quality of comments on the aforementioned videos. Trolls, raging arguments over politics and religion, and insults have given way to (somewhat) thoughtful debates about the video’s analysis. Occasionally the next video in the series might make mention of some interesting points or surprising overall consensus concerning the previous video.

But is the classroom going extinct as a forum for intelligent discussion? Does it have a place in the furious online world? Perhaps. Although quick-fact videos give information, they very rarely delve into the depths of the subject and explain it in a way that lets the viewer solve entirely new problems on their own. They give the information top-soil, but hold back any sort of theoretical bedrock. A viewer might come out feeling smarter, but she will not have gained any tools in her arsenal of critical analysis and problem solving. This is partially due to the medium. Spending a longer amount of time to explore the subject drives off the initial appeal of the videos: quick learning.

However, some video series manage to seriously teach a subject while staying interesting. Crash Course has series on biology, literature, ecology, US history, and world history, served up by the eponymous vlogbrothers. They don’t necessarily go into the same depth that a yearlong course would, but that’s not really a problem here (it’s called “Crash Course” for a reason). The fact that dozens of videos are being spent exploring one subject is a start. Another faux-classroom video venue is Udacity. Udacity is a different beast; it is much more of an exploration into online courses than Crash Course. The physical classroom is woefully unfit to teach computer science. Udacity takes a stab at creating a classroom environment that takes advantage of its medium to deliver a more fitting CS education to a much greater volume of people, while still keeping a basic academic form.

Ultimately, I see a rise in the popularity of systems like Udacity, as well as series like Extra Credits and The Idea Channel. If educators want to truly grab the interest of new generations, they need to examine that which is already capturing attention. Rather than lamenting the advent of consumable, throwaway media, embrace it. There is a place for education in online videos and video games.

Programming Paradigms

Computer science is a relatively young field, and it has rapidly evolved ever since its inception. This becomes increasingly evident when you look at computer science being taught versus computer science being used. This is extremely apparent in the misnomer: computer science. CS is more technical art than science.

For a long time, computers had finite computational resources and memory. Today, our average consumer-grade computer is comparable to a super computer from 1985. Thusly, the twenty first century requires programming paradigms far different from those taught in the twentieth century. It no longer pays off to optimize the number of calculations or amount of memory your program uses, unless you are specifically performing mathematically intensive operations. This blog voices that sentiment much better than I can.

So programming now is about implementing an idea. Its easy to rise above the technical nitty gritty details and focus on the concept at hand. Then programming becomes a form of poetry, in which you express your ideas in a structured and rhythmic way. Programming, at a consumer level, is no longer about getting a machine to do what you want; its about empowering people.

Just like a poet spends many hours revising their verses and getting the words to say exactly what is meant, a programmer spends hours rearranging and improving code to fulfill their idea effectively. And like poetry, there are many genres and styles of programming. Unfortunately, programming is also like poetry in the way that many students get turned off to it by the experiences they have with it in school.

Programming should be taught with the main objective in mind: we are here to accomplish a mission. Writing mechanics are practiced and improved, but without an idea behind a poem or story, it is pointless. Algorithms are important, and so is project design and planning. But these are merely implements with which to express the programmer’s idea.

This is why the most successful software is easy to use, is powerful, or grants people an ability they didn’t have before. When you use a program, it doesn’t matter whether all the variables are global, whether the project was built top-down or bottom-up. The functional differences of some of the most disputed methods are miniscule. Optimization is a trivial concern when compared with the user interface. Is the parse speed of one file format more important than the support of a larger number of formats?

Kids want to be programmers because of coding heroes like Notch, the creator of Minecraft. But Minecraft isn’t well-designed. In fact, the program is a piece of crap that can barely run on a laptop from 5 years ago despite its simplicity. But the idea is gold, and that is what people notice. This is why Minecraft and Bioshock, and not COD, inspire people to be game developers.

However, functional programming is the CS taught in schools. Schools need to teach the art of computer science, not only the science. Imagine if writing was only taught, even up through college, in the scope of writing paragraphs. Essays and papers would just be a string of non sequiturs (kind of like this blog). Fiction would have no comprehensible story, only a series of finely crafted paragraphs. Only those who figured out the basic structures of plot, perhaps by reading books by others who had done the same, would learn to write meaningful stories.

In the future, everyone will be a programmer to some degree. At some point data will become so complex that to even manipulate information people will need to be able to interface with data processors through some sort of technical language in order to describe what they want. To survive in a digital world you either need software to help you interface with it, or learn the language of the realm.

Yet children are being driven off in droves because computers are being approached in education from completely the wrong angle. Computers are tool we use to accomplish tasks; the use of computers should not be taught just because “people need to be able to use computers in order to survive in the modern world”, but because children will be able to implement their ideas and carry out tasks much easier if they do have an expanded skillset on the computer. Computer skills should be taught in the form of “how would you go about doing X? Ok, what if I told you there was a much easier way?”

History is Cool

I’ve seen some talk about education pop up both on Twitter (Twitter is awesome) and in real life. It’s fairly apparent to many people that education ain’t what it used to be. Which is, to some degree, true. But the fact of the matter is that education hasn’t changed so much as the role that education needs to fulfill. I believe I’ve described in an earlier post the shift from industrial to post-industrial education, but I’ll reiterate.

After the industrial revolution, the demand for factory workers was high. Factory workers only need minimal education, about up to the elementary school level. These blue collar workers would become manual labor. Those who were smart enough went to high school, and became white collar workers. A select few of those people would go to college and become doctors, lawyers, scientists, judges, etc.

The parallax between then and now is obvious. As the demand for laborers has decreased and the demand for engineers has increased, more and more people are attending college. Unfortunately, the education system has not responded well to this influx. The collegiate system has become bloated as it tries to accommodate the new waves of people who need a college degree to get a decent job. The world has lost sight of the true reason for getting an education; although a person does get a certification as a result of attending college, their objective should be to learn.

Public education in elementary schools and high schools has also done a shoddy job of flexing its methods to prepare students for the constantly changing future. For example, children were discouraged from becoming artists 20-30 years ago, yet there is a high demand for creative people to create all sorts of digital media. As a modern example, elementary school curricula stress plate tectonics and other basic geology, drilling it into students’ heads year after year. That may have been necessary 40 years ago, when the theory was young and a majority of people still distrusted it, but now it is commonly accepted fact and there is no reason to stress it.

Not only is early education slow to change with the times, but it actively discourages children, intentionally or not, from learning some necessary skills. For example, the vast majority of people I talk to, even students at TJHSST (one of the top high schools in the country) haven’t seriously read a book (and certainly not for enjoyment) since the 3rd grade. The early grades have given them such a bad experience with reading that they dismiss all books as boring. This, quite obviously, is distressing. Disillusioned and lazy teachers teach interesting subjects like history and math in ways that turn children off, perhaps for life.

But history is cool. Yes, it’s also boring. But so is math, science, programming, reading, writing, foreign language, and sports. My point is, every subject has areas that are uninteresting to the uninitiated, and EVERY subject can be taught in a manner that makes you want to eat your own skull rather than listen to another second of it. The key to teaching a subject is show the student that it is awesome, and then start teaching the basics. Most importantly, though, make sure the student realizes that the field extends far beyond what they are learning right now.

Here are some examples of sweet historical events/times/people:
-The transition from Roman republic to empire
-The Battle of Agincourt
-The Fall of Constantinople
-The Mongols beating the crap out of everyone and being awesome
Nikola Tesla
Charles Babbage (way cooler than Tesla)

But not only are there examples of people who were incredible badasses, but even periods of history like the colonization of North America and the Middle Ages are inspiring. I find that whenever I read a textbook, my mind drifts off as I build a science fiction or fantasy universe which mirrors the status quo of that period in history.


Come on guys (yes, you). Step it up.

I’ll end with a quote from Saul Perkins: “My thesis is that 21st century parents should teach their kids three languages: English, Mandarin and coding. Software is so much a part of our lives to today that this is just a fundamental skill that people need.”


I was going to write this post a lot earlier, but I’ve had a lot on my plate recently; AP tests are coming up, track is coming to a close which means a slurry of meets, and I’ve been doing a Udacity course. Udacity is a site that offers free online courses in a video-lecture/machine-graded-homework format that allows thousands of people to participate in each course as it’s happening.


It was created by the professors who taught the Stanford AI online course, which pioneered the format. It was a huge success, so they decided to create a separate organization which offered a variety of these free classes. They also bring in different people to teach the different courses.

For example, the web programming course that I’m taking is talk by one of the cofounders of Reddit, Steve Huffman. The course is quite interesting. Of courses, I taught myself HTML and PHP, but there are holes in my knowledge, both basic and advanced. The course filled some of those in, but it also teaches an area I’ve never worked in before.

The course is mostly about building an app using Google App Engine. For those who don’t know, App Engine runs a Python environment. You upload code and other files which, given a request, generate a response. You can map out various directories to either query code or directly draw HTML or other documents. Within the code, you have to write one or more handler classes which extend the App Engine API. They have functions for GET and POST requests, which then build a response. Google App Engine also has other functionality, such as data storage.

Anyways, posting will get back up to speed after the AP World History test, which marks the end of a lot of my business. Next post will be more TF2, so stay tuned.

%d bloggers like this: