Saturday 22 December 2012

My Second Completed Course

Apologies, the titles are getting a bit samey. Maybe I'll be feeling a little more creative when I write my next post.

Anyway, this will be a post giving a brief summary of the second Coursera course I completed (An Introduction to Interactive Programming with Python) and some of my views of the course; a review as it were. This time, I'll try to be a little more brief. I won't go into the more general aspects of how Coursera courses run; if you want to read about that please take a look at my previous two posts (Part 1 and Part 2).

What's the course about?

This course was an introduction to programming in Python, using the idea of building simple video games. It taught us the basics of using Python to write event-driven, object-oriented code by getting students to build a new game every week.

This idea sounded daunting at first (I have quite a bit of programming experience in other languages, but I'd never built any games before) but after the first mini-project was completed I felt confident enough to get through all of the projects and finish with a nice version of the classic arcade game Asteroids.

The teaching of Python involved using a web-based development environment, created by the teaching team at Rice University, called CodeSkulptor. This was a really good platform to experiment with Python coding and is available to anyone. It also made submitting the mini-projects very easy, requiring you to simply submit a URL to your completed project. It is a very good system that I will certainly be keen to continue using to play with Python in future.

So, what games did I build? And how difficult were they to finish? Here is a short summary of each week's mini-project.

Week 1 - Rock-Paper-Scissors-Lizard-Spock

If you don't know the rules of this game, watch the video below:

This project involved coding the logic behind this game and having the computer play 5 games against the player. It was to be a very simple implementation, testing our ability to work with simple Python code and output results to the console. The template given for the project made everything easy to understand and made the whole project very straightforward. Overall, a nice easy introduction to the mini-projects, and my first game :)

Week 2 - Guess the Number

Guess the Number was a simple implementation of the Higher-Lower guessing game where you have to try and guess the number within a certain number of turns. This project involved us learning how to work with input boxes, buttons and local and global variables. Again, it was a very simple implementation that used the console to display results. It was quite easy to complete with the given template but did show an increase in complexity over the previous game.

Week 3 - Stopwatch: The Game

Sounds like fun, right? This game involved using the canvas to draw a stopwatch (just text), while the game was to try and stop the stopwatch on a whole second. This project was the first to move away from using the console to display outputs and focus on just using the canvas; a gateway to producing all those fancy games with their graphics and whatnot. It was also a good test of our event-driven programming skills, involving the use of a timer to keep track of the stopwatch. This was a bit of a leap from the previous weeks, but was nothing that was out of reach of anyone who had watched the videos and completed the quizzes. Once again, a very handy template was provided and the instructions of what to do for the project were clear and laid out everything that needed doing.

Week 4 - Pong

Now this was a project I was looking forward to doing. Pong is one of those classics: one of the first ever video games and, as it turns out, really quite easy to build. This project was a big leap from the previous week, involving drawing multiple objects, controlling some of them with the keyboard, and calculating collisions on the canvas. By following the instructions and the template though, it was pretty straightforward to create and boy, it felt good when I completed it and had produced my own implementation of the classic Pong.

Week 5 - Memory

Remember that game where you turn cards over trying to find matching pairs? No? This game probably isn't for you then. For everyone else, this week's project was that game, teaching us to deal with mouse inputs on the canvas and managing game states. The increase in complexity from last week to this week was a little less but there was still quite a bit of work to do. This project highlighted how important it is to test as much as possible. I thought I had tested every possible action and outcome but one of my peers in the assessment phase commented that they found a bug in the game that I had missed in my testing. It was something rare, but was still a bug, and I was grateful for the comment from my peer.

Week 6 - Blackjack

The biggest thing that we learned doing this game was how to use tiled images (I won't go into it here, you're probably bored of reading this post now anyway). This project involved a lot more work than the previous ones because of all the different things that were going on: dealing cards, displaying the cards correctly, keeping hand totals correct and checking game states, working out who won the hand. I was very pleased with my attempt and that I managed to get it done in one evening.

Week 7 - Spaceship from "RiceRocks" (Asteroids)

This was the start of the final game. The project involved creating the spaceship from Asteroids in their version "RiceRocks". This was a big leap from the other projects, it involved dealing with changeable velocity, wrapping around the screen, momentum and friction. The tutors gave good instructions for it and lots of help was available in the discussion forums. Although it appeared daunting, once you got over the initial hump of making the spaceship appear and move, everything else fell into place. I had a few minor issues that I spotted before submitting, thankfully, and overall produced a pretty good effort.

Week 8 - "RiceRocks" (Asteroids)

The final project, and easily the most complex. This one involved adding to the previous project (we could use our own or use the template provided, I went for the template) by including multiple asteroids and multiple missiles to destroy the asteroids. We had to handle all of the possible collisions and keep track of lives and score. The instructions still helped but didn't go too far in telling you what to do. We also had the opportunity to add a bit of animation with explosions for the asteroids; it wasn't part of the grading but I had a go at it anyway, and it worked :)

Final Thoughts

Completing the final project, and so completing the course was great. I felt like I had a good, solid foundation in programming with Python, and I felt a lot more confident about being able to create games. When it is broken down the way the course did, it is much easier to understand and is clear to see that games are actually quite straightforward to create if you think about it carefully.

I very much enjoyed this course and would strongly recommend it to anyone interested in learning to program. There were no prerequisites for the course; so no programming experience was necessary. I found my experience helped me to get the projects done a little quicker but I don't think the course would be impossible if you hadn't done any programming before. The quizzes were very good at testing our knowledge and made good use of text answers rather than just multiple choice answers, requiring us to do a bit more work, rather than pick the right answer. As also mentioned above, CodeSkulptor was great and a pleasure to use.

Finally, I'd like to say thanks to the tutors of the course, and I look forward to seeing what they offer in the future. They put on a fantastic course and ran it really well, well done guys.

Wednesday 28 November 2012

My First Completed Course - Part 2

So What Did I Learn?

So, part 1 gave a brief description of the structure of the Coursera Gamification course. All of the Coursera courses that I have participated in so far tend to follow the same sort of structure, with a few differences between courses.

What I will now try and do is write some words about what I learned on the course each week and how I felt the course structure helped/hindered the learning of the subject.

Week 1

The first week of the course focused on explaining what gamification is (and isn't) and why it's worth studying. There was also a brief history of the term gamification and its use, along with some examples of gamification in use at the moment. Having never heard of the term gamification before this whole section was very interesting. Professor Werbach gave interesting lectures, making use of the various slideshow functions available within the Coursera videos(I have no idea what they use but it makes the videos a lot more engaging and makes it difficult to get bored), along with making good use of the mid-video quizzes to aid understanding of the subject. The second set of videos looked at what games are and how they are defined; if you want to gamify a process you need to understand what a game is after all. To finish the week we had our first homework quiz to complete. This consisted of 5 multiple choice questions to answer. You were allowed to attempt the quiz 5 times, so if you didn't do very well the first time you could try again to get a better score. Looking at the scores I achieved in the quizzes, it appears that your effective score for each quiz is calculated using your highest score in the first 2 attempts of the quiz, so any further attempts are simply there for you to prove to yourself you can answer the questions correctly. Having an effective score worked out this way is a good way to make sure the scores reflect the understanding of the student (although it is still possible to abuse the system using the feedback given to the quiz to assist you with future attempts at the quiz).

Week 2

The topics covered in week 2 of the course started with how to think like a game designer and how to implement the rules game designers use when making games. The videos also looked at something very important for games and gamified systems - fun. Without fun, games wouldn't be games. Speaking of fun, the videos attempted to introduce a game into them by encouraging all students to work out the hidden message described by the items in the background of the videos. A prize of a mention in the final video was being offered to the first person to work out the message (spoiler: it wasn't me). We then moved on to game elements and how they can be used in a gamified system. Things like points, badges and leaderboards that you may have seen some websites use. The week ended with another quiz, along with the first written assignment. I had been looking forward to getting stuck into the assignment. I hadn't written an essay for a good few years and never really enjoyed them when I did, but I had a feeling that this would be different. Trying to keep such a large number of students from many different walks of life engaged with the course and completing the assignments must be a very difficult job so I figured they would probably structure them in such a way to make students want to complete them.

I have to say, I very much enjoyed the first assignment. They only wanted 300 words out of you, which can be done surprisingly quickly. The assignment involved giving a short explanation why gamification would be good for the business scenario described in the assignment. This allowed you to apply the knowledge gained from the videos to a real world example, albeit in quite an abstract way initially for this assignment.

Once the assignment was completed and submitted, then came the peer assessment. The variety of answers to the assignment was surprising (at least to someone who hasn't had to mark assignments before). You could tell that a large number of students were participating in the course despite English not being their first language and the grading rubric mentioned that this shouldn't have an impact on the marks you give to work. The grading rubric had 3 sections. The first section asked for a points score for the quantitative measure, looking at how many relevant points were made. The second section asked for a points score for the qualitative measure, asking you to decide how well the points were made. Finally, the third section asked you for some feedback using 2 boxes; one for what you liked, and one for what could have been improved.

Once you had graded 5 students' work you had to grade your own work, which I found very enlightening. I usually read through my work before submitting to make sure it makes sense and has no spelling mistakes and then I never look at it again. However, looking through it again after marking other peoples' work gave me a better insight into my work and how it could have been improved. For the first assignment I actually marked myself lower than my peers marked me because I felt I could have done a lot better.

With the first written assignment out of the way I was now completely engaged in the course and was looking forward to the next two assignments.

Week 3

Week 3 looked at psychology and motivation. This was a very important topic because gamification is used to motivate customers/employees/society into doing what the system is aimed at making people do, therefore it is very important to understand the idea of motivation and how different people can be motivated in different ways. We were also given assignment 2 to start working on in this week. The second assignment was a little harder than the first (they wanted 500 words this time) and also involved describing, in general terms, a gamified system that could be used for the given scenario, making sure we included how it would incorporate the different sorts of motivation.

This assignment required a little more work, obviously, but it also allowed you to get a little more creative than the first assignment, which was nice.

Weeks 3 - 6

The second half of the course looked at the three main areas where gamification can be used (external business, internal business, and social behaviour change). It also looked at the critiques and risks of gamification and gave brief talk about looking beyond the basics of gamification.

During the second half of the course we were also given the final written assignment. This one was my favourite because you had to be a lot more creative than for the other two assignments. The assignment involved you writing a design document for a gamified system for the scenario you were given. They wanted 1500 words out of me this time (quite a leap, but I wasn't fazed). It took me about three days to come up with my idea for a gamified system and flesh out the details. Then it was just a case of writing it up, which I just about managed within the word limit. I got some very nice comments for this assignment and was very pleased with my idea, to the point where I think it could actually be implemented in the real world (I wish).

Final Exam

The last thing to do for the course was to complete the final exam. This was very similar to the weekly quizzes, except there were 20 questions. As with the quizzes, you could have 5 attempts, but it appears that your highest score from the first two attempts was what was used for the final score.

Final Thoughts

Taking part in my first MOOC was very interesting and a lot of fun. At times I found it a bit of struggle to devote the time to the video lectures and assignments, but I stayed engaged all the way to the end (and got a certificate of achievement to show for it). The courses are structured so that you can watch the videos and not submit any of the assignments or quizzes if you want, but you wouldn't get a certificate of completion at the end if you just watched the videos. One thing I haven't talked about with the courses is the discussion forums. These forums allowed students to communicate with each other and share ideas and experiences. I didn't use these forums during the course as I didn't feel confident enough to contribute (but writing this blog may give me the confidence to get involved with the forums for other courses in future). I do feel that I lost a little something from the course by not using the forums but not enough to dampen my enjoyment of the course.

Overall, I really enjoyed the gamification course, it was well put together and well delivered. I also liked the system Coursera has in place for running courses. I was very much looking forward to starting my next Coursera course, which was lucky because it started as soon as the gamification course ended.

My First Completed Course - Part 1

A Summary of my First Coursera Course

My first course on Coursera was not the first one I signed up for. It was not a programming course either, which is what attracted me to MOOCs and Coursera in the first place. No, my first course was a business course on the subject of Gamification.

If you know me then you know I love playing video games, so when I saw the word gamification it piqued my interest. I read the synopsis for the course and learned that it wasn't what I thought it would be, but sounded interesting anyway so I clicked the sign-up button.

The course started on August 27 2012 and was run by Kevin Werbach from the University of Pennsylvania. As this was my first course of this type I had no idea what to expect. Thankfully, it was the first course of this type for Professor Werbach as well so it was a learning experience for all of us.

The course structure involved a weekly schedule of video lectures (5-15 minutes long) that included questions and exercises within the videos to check comprehension of the topics, followed by a weekly quiz that covers all of the topics discussed in the video lectures. In addition to the video lectures and the weekly quizzes, there were also three written assignments set during the 6-week course. These assignments gave a scenario and asked you to write a short report using the knowledge you have gained from the course.

When studying a course at an institution, or an online course through someone like the Open University, assignments are marked by the course tutors, who also provide you with feedback. this is possible because the courses have a limited size, giving the tutor(s) time to mark all of the assignments. With MOOCs, this is virtually impossible because of the way MOOCs are designed to be taken by a large number of people, with no limit to the number of students. This poses a challenge when it comes to marking written assignments during the course. What Coursera (and probably other institutions, I haven't done any research into it) do is to get the students who submit a written assignment to mark at least 5 other students' work. This idea of peer assessment was something I hadn't seen before and fascinated me. Thoughts ran through my head when I first heard about having to peer assess work of how it could be open to abuse in many ways: What's stopping someone from just giving full marks to everyone without even looking at the work? How do you stop trolls from giving everyone really bad marks when they aren't warranted? How can I be sure I'm being fair when doing the marking myself?

I'm sure these questions went through the minds of the peeps that built Coursera, and the fact is, it's very difficult to protect completely against cheats and trolls, but what has been put in place at Coursera goes a fair way to mitigating the potential issues of peer assessment. When peer assessing work, you are asked to preview all 5 pieces of work before beginning the marking. All of the work is anonymous, so you have no idea who the students are. The grading rubric is very clear, making it as easy as possible to mark the work and be sure that you are being fair. You are also asked to provide feedback when marking, particularly when you don't give full marks, so the student can learn from their peers. You are also required to mark your own work as well, something I enjoyed doing and often found myself being quite critical of what I had written. Finally, your grade is based on a calculated average of all of the peer assessments and your own assessment, meaning if you do end up being trolled, it doesn't have such a bad effect on your grade. Overall, I think the peer assessment worked very well for this course and I got some very helpful feedback, along with some very nice positive comments.

Now that I've given a brief description of the course structure, lets go through what I learned. Actually, this post is already quite long, so it will now be part 1 of 2. See you in part 2 where I talk about what I learned about gamification :)

Post the First

A Brief Introduction to this blog

Welcome to my blog, focussing on my experiences with MOOCs (Massive Open Online Courses). If you don't know what a MOOC is I won't try to explain it here but will direct you to Wikipedia for an idea of what they are.

I was directed towards MOOCs when my girlfiend signed up to a course run by Coursera so I had a look at what they had to offer. Looking at the offerings I was immediately drawn to their programming courses and signed up for one (Introduction to Interactive Programming with Python). I must say, having signed up to the course I was looking forward to getting back into learning again, having finished an Open University degree in 2010. By the end of that degree I was very low in motavation for learning, something that is essential when you are directing your own learning with distance courses, but I finished it and thought to myself that I didn't want to do anymore education for a while. That changed when I looked at the course offerings on Coursera, I even got interested in courses that I would not normally consider doing, thanks to the fact that they are free :)

So, the idea of this blog is to put in words some of my thoughts on the courses I have completed; am currently studying; and will be studying in the future. I don't really know what I want to get out of this blog, or what it could give to you the reader, I guess this is more of a brain dump of my thoughts on MOOCs and what I am getting out of them. I have plans to do quite a few courses over the next few years and hope to experience as many of the different models used by institutions in delivering MOOCs.

I will try and post regularly, with weekly updates of the courses I'm doing, but the first few posts will be catch-up posts to bring you up to speed on what I have done already.