When I was working my way through the exercises in Codecademy and my Coursera class, “Programming for Everyone” (“PR4E”), I often found the instructions to be so densely constructed that they required “translation.” The vast knowledge gap between a beginner and the instructor necessitates that introductory classes should be taught the way math is taught to elementary school kids: Broken down into manageable pieces.
Having completed “PR4E,” I look back at the early assignments and laugh at myself for having to struggle so hard to complete them. But for the most part, my view towards course instructions hasn’t changed. “Hand-holding” (particularly for computer classes) may seem less and less necessary, as kids nowadays come into contact with programming fairly early, either through computer games or formal classes in schools. Nonetheless, programming literacy’s rise is only relative to the level of previous generations, and the need for effective pedagogy remains.
Compared to the tightly constructed exercise instructions in “PR4E,” the instructions in the EdX course, “Computer Science for All” (“CS For All”), seem oddly put together – they resemble the stuff from a messy teenager’s closet, an eclectic pile that hints at an attempt at fashion, but which, in its present configuration, is merely a pile that only its owner appreciates.
The layout for “CS For All” is unintuitive and confusing, which may reflect EdX’s user interface in general and so may not be the fault of those who put together the course. However, the awkward layout/user interface could have been mitigated by a more fluid course flow and clearer instructions. As such, I had a hard time figuring out what’s where and what’s next in “CS For All,” something I did not experience in either of my two Coursera classes.
On Coursera, everything related to a course is clearly laid out on the left-hand side navigation panel. Though courses differ, both of the courses I have taken on Coursera have more or less populated the content areas of the course: Announcements, Syllabus, Lectures, Textbook, Quizzes, Assignments, Discussions, Grades, Course Materials … The navigation bar stays on the screen so that, at any given moment, one can skip to another section (and back) and seamlessly navigate through the various sections. A week before the class was to start, the discussion forum already was busy with self introductions and questions. And there was a real sense of excitement for the start of the course.
In contrast, the navigation panel for “CS For All,” which is also on the left side of the screen, is organized chronologically by week. If one clicks on, say, Week 1, a brief written introduction to the week shows on the right hand side. On the top of that text is a horizontal bar which is a row of clickable icons representing that week’s content:
To say the content is organized “thematically” may attribute too much logic to its organization:
Tab 1: “Defining Computer Science”: Here is an excerpt from the textbook. There is a link to the entire textbook – Why they must re-post an excerpt is not clear.
Tab 2: A video: a clip put together by students that is loosely connected to the text in Tab 1 and attempts to cover some basic Python concepts. The narrators in the video are tagged as “PROFESSOR 1” and “PROFESSOR2.” Perhaps Harvey Mudd wanted to empower their undergraduates, but tagging the students as “prof 1” and “prof 2” seems, on the one hand, oddly dehumanizing and, on the other, more like an feeble ego inflation than empowerment. In addition, this section– the first section explaining basic concepts in programming – ought to be treated as a critical page. This is where a learner either gets “hooked” or put off and most professors try to put their best foot forward here.
But it is not so with this class. In the video, “Professor 1” and “Professor 2” narrate unimpassionately. What’s the purpose of this lecture? How does it connect to the previous readings? How is this related to whatever I will learn next? None of these questions is addressed. If I were to evaluate this page as a college essay, I’d probably give it a “D” for lack of focus.
Tab 3: “Programming and CS”, an excerpt from the textbook, again. I think I am beginning to see a pattern.
Tab 4: “Making Decisions in Code”, which is the very first section on coding. It has a very short explanation and a video.
This is what I am taking this class for, but here the lack of teaching experience is most painfully apparent.
For the introduction to coding (specifically using Python), this course chooses to begin with the concepts of conditional statements called the “if statements.” Had I not already taken “PR4E” and started on Codecademy, I’d be stuck right then and there – with the “if statements.” The “if statements” are rudimentary components of Python, but starting with the “if statements” is like elementary schools’ math lessons start with multiplication. There is nothing wrong with having multiplication as “Lesson 1,” but shouldn’t there be a diagnostic test first?
In “PR4E,” we started with a simple line: “print “Hello world!” When we ran the line of code, the display showed the iconic “Hello World!” and I was delighted. This was a ridiculously easy way to illustrate the “print” function (which is used over and over again when programming in Python). It seems a ubiquitous first practice line for a lot of Python lessons. I suppose someone at Harvey Mudd wanted to try something new, which is commendable, but did they know how to structure a class in an incremental fashion so that all, including those without the very basics, can learn Python from scratch?
If one had any doubt about the lack of pedagogical consideration, the quizz/exercise at the bottom half of the page would settle that question. There is a screenshot of a few lines of simple code, followed by three multiple choice questions. On first glance, a beginner will have no problem answering these seemingly simple questions, “What does the lines on the LEFT print?” Well, one can guess at least three times. But one’s answer is, at best, guesswork.
Why not have students run those lines and see what gets printed? Why not ask students to report the results? Shouldn’t a programming class be heavy with hands-on activities? If those teaching the class are programmers, they should have no problem writing a program that can efficiently check the answers. Has it not occurred to them? Or perhaps they could not for whatever reason. Whether it was due to inexperience or inattention, whoever created the quiz/exercise did not use the opportunity to facilitate a learning experience. Instead, he focused on testing – you know, the sort of thing students (maybe including “Professors 1 & 2”) are typically subjected to.
At this point, I find myself thinking about how to explain the difference between seemingly easy work that is conducive to learning and busy work that is also easy but which kills the sparks of curiosity and is downright demeaning to a learner. “PR4E” had quizzes in the form of multiple choice questions. These quizzes were not hard – most of the answers could be taken straight from the textbook. Yet, it usually takes me two to three times to get all the answers right. Apparently, as closely as I tried to read the textbook and watch the video lectures, some concepts inevitably get skipped over. The quizzes often caught me exactly at those “fuzzy” points (that I didn’t even know were “fuzzy.”) Once I completed a quiz, I could immediately see which answer was right and which was wrong. It never took me long to figure out why something was wrong, but each time I re-took a quiz, I learned something new. So I never felt the quizzes were a waste of time.
The quizzes on “CS For All,” on the other hand, seem to be just quizzes and offered no new learning opportunities. They may be simple, but they are pointless. Scores get uploaded, and there is feedback, but one is left with “so what”?
Both classes allow students to re-do the quizzes. In fact, “PR4E” seems ridiculously generous with quizzes: I could have repeated the quizzes 100 times each (literally!) to get the perfect score. Yet my motivation to do well in these classes is not related to the level of difficulty. When an exercise on “PR4E” got hard – and they did with each passing week, I spent a lot of time in the Discussion Forums, read and carried on back-and-forth discussions with other learners and teaching assistants. Once I completed an assignment, not only did I feel a great sense of accomplishment, but I also knew exactly what had gone wrong with my code – the thrill came from having learned something hard.
“CS For All” only allows students three chances on quizzes. In that sense, “CS For All” is a lot less forgiving and hence appears to be a tougher class. But what good is a tough class if one doesn’t learn much?
Tab 5: “Programming Rock, Paper, Scissors (RPS)”
By this time, I began to see what “Professors 1 & 2” were trying to do: They want to use lines of code as segues to certain concepts. When I saw it this way, I could see the video as a well-intentioned attempt. When I began “PR4E,” I tried to “translate” lines of code into “plain English,” aka “English for the Technically Uninitiated.” I often wished I could see the correct code so I knew what it looked like. So one might assume I’d be delighted to see code shown right away. But what “CS For All” ends up doing with the code is turning it into a quiz. Instead of seeing code as code – or, better yet, seeing coding in action, what a student sees is “the stuff that the test is on.”
The quiz questions reinforce that view. They seem like the kind of questions I, as a learner, might ask as I work my way through lines of code: “Now, what is this?” “What does that do?” But what I say to myself while learning doesn’t translate into teaching tools when transcribed verbatim. The “working-through” process is highly individualized. Each learner has a unique way of walking themselves through a problem. The sequence and timing of their questions relate to – and reveal – each individual’s knowledge gaps. It takes a deep understanding of that process – something that comes from training or experience – to construct a learning path that has something to offer to each learner.
Some of the questions in the quiz might serve to draw a learner’s attention to some key concepts, but shouldn’t that be accomplished in lectures? What’s the purpose of asking students to regurgitate information in a quiz, given the textbook is only one click away?
The quiz questions reek of standardized testing: Only the right answer matters. Some of the quizzes in “CS For All” serve no other purpose than having me, the student, taking a quiz. It is testing for the sake of testing. They also seem to be a bit “off”: if I have grasped the relevant concepts by the time I take the quiz, I will find these questions pointlessly easy. But if I didn’t know how to answer these questions, I probably would not know where to begin, given the lack of clear focus in the class materials.
When I got stuck on an exercise in “PR4E,” I’d trace “my steps” through several lessons, until the problem gets resolved – I usually knew exactly which lecture to go to based on the kind of problem I got stuck on. To teach learners how to learn is one of “PR4E”‘s explicit goals; it also helps that each lecture also had a clear focus.
“CS For All”‘s quizzes, which someone had to come up with, essentially will dead-end in a used-quiz bin waiting for their next iteration to torment another batch of unlucky students foolish enough to take this course. (Oh, I forgot, at Harvey Mudd, this is a required course.)
Another point of confusion for me were the icons on the horizontal bar. It looks as if the tabs are set up for students to go through sequentially, but the reading materials, the videos and the exercises aren’t exactly arranged sequentially with each section reinforcing previous sections. One cannot randomly accessing each tab either, because the content suddenly no longer looks familiar – (What is “Picobot”?) Yet, if it is not set up for “random access,” then one of the advantages of interactive websites would be lost. One might as well use a printed book instead.
In many ways, “PR4E” resembles a traditional classroom, where a professor has tremendous control over the content of the course. Much of the learning begins with a lecture and the assignments. Assignments and quizzes have deadlines – students have weeks to do them, but there are deadlines nonetheless.
“CS For All” has all the bells and whistles of a MOOC – it has, on appearance, everything “PR4E” has: A PDF copy of the textbook, videos, Discussion Forums, online submission of assignments and quizzes. Yet it feels much more like a traditional course: One starts with some reading, then a “lecture,” followed by assignments, and then reading again… And, like a traditional campus trying to move into the 21st Century, “CS For All” carries all of the baggage of a traditional course, including poor audio and video quality, software malfunction that invalidates students’ submissions, busy work and meaningless tests. Trying to figure out how to navigate “CS For All” is like being dropped in the middle of a strange college town with no preparation and then trying to make sense of what courses to take.
“CS For All” was my first course with EdX, so my critique of one course cannot be generalized to the entire EdX platform. But one cannot help but wonder what kind of quality assurance measures EdX has in place, both to ensure decent user experience and, well, to ensure there is “ed” in EdX.
If traditional institutions were to compete for their piece in the MOOC universe, it behooves them to remember that, like in traditional universities, sometimes one course can make or break a student’s education. If one reads through the posts on “CS For All,” one sees very similar complaints to what I have. Ask people on Coursera about their experiences with EdX, many who have taken EdX courses have similar reactions as mine to my first EdX course.
My experience with “CS For All” may be an anomaly, but undoubtedly MOOC platforms will sooner or later develop their own flavors as well as reputations. Likewise, institutions’ reputations will be affected by the quality of their delivery of MOOCs. (Take note, Harvey Mudd!)
If a MOOC is to endure, it must figure out the pedagogy piece – the quality part of the pedagogy piece. That begins with the professor(s).
Graphics are based on originals from: http://www.openclipart.org
©YUMEI LEVENTHAL AND CODE BY LINE 2015- ALL RIGHTS RESERVED.