personal projects


Remapping – Ch. 1 Reflection

The first book I am reading for the summer research project is all about the pedagogy: Remapping the Foreign Language Curriculum: An Approach through Multiple Literacies  by Swaffar and Arens. Here are my thoughts on everything through Ch. 1.

A question to think about: What will my site offer that other language learning sites do not? My initial response if of course the emphasis on learning through games, and its unique purpose of language retention, but keeping this question in mind when developing a new feature will be valuable to its effectiveness, I think.

The book brought up that culture is something that isn’t always included in language classes, especially when first teaching the language. I, too, have not though much about culture beyond the stories in the interactive fiction games. Perhaps I will be able to find ways to include it in other games and exercises as well.

Integrative language learning: an emphasis was placed on exercises with practical applications and multiple solutions. The multiple solutions will be easily covered, but practical applications is something that can be applied. “Why am I doing this?” and “What am I learning here?” are questions that adult learners want answered in order to feel motivated. The games being hopefully fun would also be an incentive, but every game must be made with a specific learning goal in mind.

It also talked about mixing language elements, context and content. This is perfect for things like detective or other point and click story-based games.

Those are all the ideas I’ve pulled from the first chapter. Some heavy questions, already. I’m interested to see what else the authors have in store.


Exciting Things

So for all of this year and particularly the last few months I have been hoping for a research idea of mine to get funded for the summer and it finally went through! This summer I will be mixing my two disciplines in the creation of an online language retention module. In short, it will be an online website that exists to help language students remember stuff in between courses by playing games and having custom progress trackers. This means I will have to both create a website with games (CS part) and these games all have to contribute to language learning and retention (French part). Obviously, I will be designing the games with French language learning in mind, but the site as a whole will be created with the idea of adaptability for other languages in mind.

I will be posting more frequently now, as I will commence research before the summer actually begins. I will post with reflections on the research materials I will be reading, as well as occasional progress updates on the site work itself.

This is a huge project for one person, but I am determined and also thrilled!


CraftyJS in JavaScript

As a computer science student with an active interest in web development, it’s about time I learned how to program with JavaScript. JavaScript is one of the major languages used for websites, alongside HTML and CSS. It is supported by every modern site, and is used by almost all of them.

I already had plenty of experience with HTML and CSS, but almost none with JavaScript. There are a couple reasons for this, one being that the websites I worked on had little to no JavaScript at all, let alone any that needed to be changed. The other reason is that the need to learn it simply never came up. I enjoy learning things in my free time, but I had heard many a horror story about using JS, and as such was in no rush to learn it.

But then, as it happens, the opportunity to learn it came up. For my current Computer Science course, our over-the-block projects were to design a web application. “Hey,” I thought to myself. “This is the opportunity to learn and build something with JavaScript, and you really should learn it sooner rather than later.” Since I had no idea whatsoever what to build for the web, I figured I might as well default to making a game. I had already made some pixel images for a spaceship game my friend was working on, so why not make a similar Galaga-type game?

I decided to look for a framework or library that would make the whole process easier, and JS has a LOT of those. I ended up going with a beta framework that was specifically designed to help make games with JS.

CraftyJS

CraftyJS is in active development, and all of the code for it can be found on their Github. They actually released a new beta version about 2 weeks ago. I chose it because it looked intuitive and easy to use, even for someone with no prior JS experience. Turns out I was right – it is fairly intuitive. There are, however, some drawbacks and challenges that I faced during the creation of this project.

Problems with JavaScript

JavaScript is an interpreted language, meaning it has no compiler, but also meaning that it will always run, no matter how horribly broken the code is. To quote W3Schools, “Normally, errors will happen, every time you try to write some new JavaScript code.” This makes debugging more difficult, as one tiny change can make nothing show up on your webpage, and without the kind of error throwing and debugging tools that exist for compiled languages, it can be difficult to find the problem. Less obvious errors might go completely unnoticed by developers for long periods of time.

Because JS is such a popular language, though, not all is lost. Tools like JSLint and JSHint can help in resolving errors and adhering to conventional formatting (though JSLint is a little too strict about some conventions, in my personal opinion), and IDEs like WebStorm will catch syntactic errors and provides support for other libraries and frameworks. It is still a step more difficult to debug than compiled languages, though. It is no surprise why there are so many frameworks and libraries that exist to solve many of its annoying quirks.

The Good of CraftyJS

By far the best things about Crafty besides its general ease of use is its documentation. It is well-written, and best of all, it provides examples of how to use it. There are multiple demos on the website whose code is also on GitHub, which was useful for some problem-solving when the documentation was insufficient. Overall, I’ve found Crafty’s simplicity to be a great and pretty fun thing to use, which is not what I expected at all.

Problems with Crafty

Even though its demo code is on GitHub and it has great documentation, Crafty otherwise has a pretty small community. This means it’s harder to find help for specific issues. Additionally, a recent issue has come up where directional keys don’t work in the newest version of Firefox, so I will have to come up with a workaround. However, I have been able to work through every other issue or challenge I’ve faced thanks mostly to Crafty’s great documentation, which will point out potential issues and how to solve them (ex. “the shared object trap“).

I will post a link to the working version of the game and my final thoughts once it’s completed, though you can see the in-progress code on my GitHub.