A few months ago I read a news article about a Massive Open Online Course (MOOC) on programming for Android. It seemed like the perfect opportunity to test some ideas that I had been having, so I signed up. Having just finished my last assignment a few days ago, I want to share a few thoughts from my experience.
Going into the course, I had three main goals:
- One of the discussions that we have been having on our field in Ghana is about mobile ministry and we wonder if there may be a need to develop an app sometime in the future. I have been looking for opportunities to learn more about app development, not so that I could do it myself, but so I could provide better advice on the process.
- The promise of MOOC’s is that it should be able to provide a high level of education for the masses. In mission organizations there is always a need to further educate our staff, both nationals and expatriates. I wanted to take a course from Ghana and see if it really could work as promised (there are a number of factors that can cause “great” ideas in the US to not work so well in reality in Africa).
- After completing a study program, I found that my thirst for knowledge has actually increased and so I find myself constantly buying books and trying to learn new things. There is a big difference for me though in trying to learn from a book and having structured course material. So I have been curious if the MOOC system is a viable learning platform for me.
Let me just start by saying that I really enjoyed the class and overall it was an excellent experience. I was able to meet all three of my goals and really learned a lot. To say that the class was massive was actually an understatement. I don’t remember hearing a final number of students, but the last number I did hear pegged it between 120,000 and 140,000. That is a lot of classmates!
Each week consisted of video lectures, a programming assignment, and a quiz. The videos could either be watched online using Flash or could be downloaded in mp4 format. I found the later to be especially useful because I could download them when I had a good connection and watch them on my own schedule. If there was a concept that I didn’t quite get or a piece of code shown that I had not fully processed I could pause or rewind and watch it again. I liked Dr. Porter’s lecture style and felt that I understood at least 95% of the material presented on the first pass. Each concept was presented, an example app demoed, and then the app code reviewed which works very well for my learning style.
The programming assignment built on the concepts presented in the lectures. For each assignment a write-up was provided to explain what the completed program should do. A skeleton of the program was also provided with TO DO statements where there were missing parts that you were supposed to fill in. Initially I felt that they were just different enough from what was presented in the lectures that it made you really have to think. The labs were setup well to tell you what to do but not actually give you the answer. Test cases were also provided that made sure the program did what it was supposed to. Not too far into the course I started to feel that the programming assignment was more of a leap. There often was so much difference between what were supposed to do in the assignment and what the lecture taught us that we could not complete it by simply referring to what we had learned in the class itself. As you can imagine, with so many people taking the course the forums were quite busy and so there was a LOT of help form fellow students. There were a few who wrote up excellent explanations of how to solve the assignment without actually giving the answer.
A significant part of the responsibility for the leap rests on my shoulders. A prerequisite for taking the course was programming experience, especially in Java. I am a scripter, not a programmer. I dabble in writing short scripts to help me with my job, but I have never sat down and written a full program from start to finish (except in college over a decade ago). My only experience with Java was a one semester course three years ago. That being said, as the course went on I found that there was an increase in comments from other students about the leap from the lectures to the assignments. I think there was a higher expectation of student’s experience with Java than what was expressed. Also because the course materials and lectures were developed several months in advance, I don’t think there was an opportunity to made adjustments as the course went along.
The quizzes were taken from the lectures, programming assignments, and links to webpages that we needed to read to answer the question. You could take the quiz a hundred times, so it was about learning, not about the grade. It was actually quite refreshing to take a quiz and not be stressed about it, but treat like any other homework assignment.
The only costs to me were internet usage and time. The materials needed were all free online resources, including the programming environment and Android emulator. Since we pay per MB for online access, I am very aware of what it takes. By my estimates I averaged 400 MB a week downloading the lectures, taking the quiz and checking the forums. I also averaged 6 hours a week watching the lectures, taking the quiz, and especially doing the programming assignment. So over the course of eight weeks I used 3.2GB of data and spent 48 hours. What I learned was far more valuable than that so it was definitely worth the investment.
It also cost a significant amount of energy, because I needed a lot of self-motivation. Having taken online courses in the past I knew that you have to push yourself to stay on track since there is no specific time that you have to attend class and there is more flexibility in when you turn in homework. I found that a MOOC takes that to another level. I did not pay any money and I am not receiving credit that would go towards a degree. There was a new lecture, quiz and assignment each week, but you actually had two weeks to complete them so it was easy to get behind. There were a few times that I seriously considered dropping it as either things got hard or I was busy with “real” work. It became quickly evident to me why MOOC’s have such a high rate of people dropping out before the end.
Goal 1: I learned exactly what I needed to know about Android, and mobile platforms in general. One of the first assignments was going through the life cycle of an Android app and dealing with what the operating system did when the app or an activity went out of focus. It is very different than with Windows programs, and that is an important distinction to understand going forward.
Goal 2: There are a number of reasons that a MOOC would be successful for training. It is very low cost and is open to anybody with an internet connection. This class worked out well because I was able to download the videos and do everything on my own time (very important in areas with poor internet connections). The forums were also very helpful in the learning process, you are not just pushing through the material on your own. There are two issues to consider though. First, a university course clearly states the prerequisite courses, but with a MOOC each person has to determine on their own if they meet the requirements. Second, because of the motivation issues, it will be important that the person who is taking the course is well supported and encouraged by those around them.
Goal 3: I will definitely be watching out for any future MOOCs that fit my interests. Having a structured course helped me to not only understand the material, but more importantly put all of the relevant material together. As I looked at what this cost me in terms of internet usage and time I quickly realized that if I had spent that on my own research I would not have learned half of what I did.
A MOOC may not be for everybody, but if there is one offered in an area that you are very interested in I would recommend that you try it. Just make sure that you have the motivation to finish it.