Please stop revealing this “dirty little secret”

OK, this post is most definitely non-graphical, but I need to rant a bit.

While I wait for the last few elements of the MOOC I worked on to be released, I’ve been reading various opinions on MOOCs. Here’s the one theme that drives me crazy on a number of levels:

One of the dirty secrets about MOOCs — massive open online courses — is that they are not very effective, at least if you measure effectiveness in terms of completion rates.

That’s from a NY Times article, which is otherwise fairly positive. I’ve seen this opinion expressed a number of times elsewhere, and it’s meant as a serious critique or a dismissive gesture. From what I’ve read, it’s true that the completion rate is around 5% to 15%. However, it’s an apples to orangutans comparison to equate this with completion rates at colleges. Here are just a few obvious explanations.

The barrier to entry is low: “So, people who pay, or whose parents pay, $500 to $5000 per course are more likely to complete that course than those who pay $0? Shocking!” Say I have two computer programs I could use for a task. One costs $0, one costs $5000. I’ll certainly look at the $0 option first. If I paid $0, no big deal if I stop using the program. $5000, and I definitely am committed to use the program in a serious way, I want to get my money’s worth so I’ll make sure I need it and use it. But, really, this kind of misses the point. No one’s really weighing today’s MOOCs vs. traditional college curricula, for one obvious reason:

You’re getting just knowledge, not course credit or a QPA, nor even any parties: There’s a huge group of people ages 18-22 that go to college. They’re all there to get a degree, along with an education. Take away the degree aspect and most parents are not interested in plunking down the cash. Even alternatives such as Hampshire College produce an elaborate transcript for their students and some “proof of learning”. Take away the “meeting other students” aspect and that removes a significant aspect of the college experience for students: no dorms, no sports, no clubs, no parties, on and on. Comparing MOOCs with colleges is just silly. The main question that should be asked is “how do various MOOC techniques fit in with college education?” Flipped classrooms is the obvious one, and so how else can college education be improved? We don’t make every faculty member write their own textbook for each course they teach. What improvements can be gained by sharing more elaborate forms of media and interactivity for education? Articles such as this help.

Students who finish want to be there: That’s the dirty little secret of MOOCs. People are taking them because they want to, not because they have to. The main motivator is, “I want or need to know about this subject.” Since sign-up is free, there’s then all the things that will whittle down that number: “I was just curious what the course looked like” (there’s a huge percentage, maybe 40%, that never take a single class), “I thought it’d be fun, and it was at first, but then it got hard”, “I already knew most of the material”, “I learned the bits I wanted to know and never bothered to complete the course”, “the lecturer was boring/the course disorganized/the materials poorly presented/etc.”

I could go on, but I think you get the idea. The completion rate is a distraction and misses much of interest. It makes for an attention-grabbing fact but not much else. If you think about it, it would be downright bizarre if a free course open to all had a 90% completion rate. That would be the most amazing course ever, that it would be so compelling to almost everyone that signed up for it.

A MOOC can be thought about in another way. What if you told a professor, “every student taking your class is there because they want to be there, they want to know what you have to teach them”? That would be a dream come true. My humble course has 22K signups currently (many “name-brand” MIT, Stanford, and Harvard-backed online courses have over 100K students). Say just 1100 (5%) complete the course, and just 220 (1%) really loved the subject. 220 inspired students? I’ll take it! Heck, I’ll take 22. That may well be more truly inspired students than many teachers get a chance at in their careers. That’s a major reason many professors are excited by MOOCs and push to get their courses online through their universities. Getting messages from students such as, “in my country I think we don’t have schools making this kind of Course” is certainly fulfilling for me.

“Processing” course from Andrew Glassner

Processing” is a Java-based language that has many built-in 2D drawing functions. It gives you all sorts of artistic control of what’s put on the screen. Andrew Glassner is now teaching an online course all about it:

Course page

Even if you don’t sign up for the course, you owe it to yourself to visit just for the eye candy, both the works at the top and the video itself. “Processing” could be the worst name for a language ever (try Googling it, for example), but it also produces some of the most lovely results with just a few lines of code. I played with it – fun! It’s also a great first programming language for non-programmers.

This course costs actual money, and I’m betting it’s worth it. Andrew is one of the best computer graphics lecturers out there. He’s also a bit of a perfectionist when it comes to the quality of his presentations. He wrote a book about Processing, so knows his subject extremely well and knows how to teach it. Finally, as part of the class, he’ll (and this blows my mind) create a video each week for each student of expert, personalized feedback on their work. What?!

It’s sort of a funny thing to have MOOCs get most of the attention lately. Online courses that cost money have been around for some time. Paying money makes a certain sense from a commitment standpoint, both on the part of the student and the teacher. If you seriously want to learn Processing (and along with it, the principles of 2D modeling, rendering, and animation) and value your time, this looks like a great place to go.

Processing screenshot, from Wikipedia:

490 links for 70 days

I like to give 7 links for a day, but I’ve been busy the past half year or so with the interactive 3D graphics MOOC. In two days the second half of the course will roll out, and I’ll blab about that later (in, like, two days). In the meantime, here are 490 links for the half year I’ve been missing. Basically, it’s the Instructor Notes for a bunch of the lessons in the course, additional material and links relevant to the subjects. I admit it, there are a lot of weaksauce links in there, basics for beginners and pointers to Wikipedia this and that. But there are also some great things in there.

Hey, let’s turn this into 7 great links (use Chrome or Firefox to view them, or enable WebGL in Safari):

I know there are a bunch more links in the Instructor Notes that are worthwhile (things like the GLSL shader validator plug-in for Sublime Text 2), but these particular ones stuck with me.

I did get to visit the shrine one morning while in Mountain View recording:

“Game Development Tools 2” CFP

Marwan Ansari has put out a call for participation for “Game Development Tools 2”. Proposals are due July 1, for publication around SIGGRAPH 2014. Among other things, Marwan’s the author of some wonderful (old but still useful) comprehensive articles on GPU image processing, freely downloadable in the “ShaderX^2 Tips and Tricks book”.

You can use Amazon’s Look Inside feature to see some of the first book in the “Game Development Tools” series, and the demos for the first book are also available.

SIGGRAPH 2013 Papers and Hotels

If you want to see the list of SIGGRAPH 2013 papers, see Kesen’s site (well, just a start – more coming as they leak out).

If you want to reserve a hotel spot, go here now. It’s free, no deposit or loss if you cancel in time, so I recommend doing so if there’s the slightest chance you’ll go.

(Oh, and if you’re more a GDC fan, happening this week, try watching Twitter, though people haven’t been tagging religiously.)

Dinner Bell, Dinner Bell, Ring!

OK, the obscure title can mean any of the following:

After a few months of writing lessons, I’m entirely in the mode of “how can I make a question or exercise out of this lesson?”

As of yesterday I think of the course as “outta beta”. There are some minor glitches we’ll fix in the weeks ahead, but now all the major stuff is in place. The thing that’s entirely great is that everything about the course is downloadable (thank you, Udacity). All the videos, for example, which is a big help to people with slow or censored YouTube connections. Here’s the rundown:

  • Videos are available in unit-sized chunks.
  • Code is all githubbed here, and there’s a zip download. Unzip and run the index and they’re all there (except solutions).
  • All my lesson scripts are here, and there’s other good stuff on the wiki page there. Tallied up, the first half of the course, in five PDFs, comes out to 367 letter-sized pages (admittedly a lot of figures, but that’s A Good Thing). Jeez, I’m writing a book. With code. And videos.
  • I put the demos (and exercises, but not solutions) up here. Click and you’re running a demo. This is just the github distribution uploaded to our site. I’ll make a guide to all the demos once the course is done; some of these are pretty handy for explaining things, once you know what you’re looking at.
  • All lesson instructor comments are here. Some lessons have additional information and links to resources. Rather than have to search through all the lessons for that link you saw somewhere, they’re all here.

Entirely unrelated, but here’s the cool three.js link for the day.

I heart procedural modeling, I don’t heart Apple’s driver bug that makes it so WebGL can’t use antialiasing.

MOOC Expelliarmus

I spent a few minutes last week skimming through my unread stack of “Communications of the ACM” (CACM) – they were piling up. I enjoy the lighter articles for the most part, especially those on copyright and patent issues. The more serious articles would probably do me good to read, but no time, no time.

One bit that caught my eye: “Will MOOCs Destroy Academia?” A MOOC is a massive open online course, e.g., I’m working on one (I think there were about 15,000 sign-ups for it as of last month). I’d summarize the article as: “college courses where the professor lectures to all are ineffectual and costs are soaring [his words, not mine], but MOOCs are popular only because they’re free, and a Cambridge don says universities are critical to civilization”. His concluding sentence was particularly surprising to me: “If I had my wish, I would wave a wand and make MOOCs disappear, but I am afraid that we have let the genie [out] of the bottle.” The word “out” is in the on-line HTML and PDF versions, but not in the original print magazine. I guess the internet is good for something, though clearly not education, by the author’s estimation.

The author, by the way, is the Editor-in-Chief of CACM; I sometimes disagree with his views, but usually appreciate that some thought has been put into his opinion pieces. This time the research appears to have been the book “What Are Universities For?” and the Bible. I was cheered to see some reasonable replies.

For a CACM article with much more chew and nuance, see “Reflections on Stanford’s MOOCs“. This article is worth your time if you’re interested in a survey of various combinations of education and the internet for teaching computer science.

Me, I’m happy to see it’s possible to teach (in any form) using three.js on top of WebGL – click a link and you’re taken to a demo, or code you can edit and run in the browser. Try it now, if you want: for three.js demos, go to the three.js page and click on any appealing thumbnail (caveats being “use Chrome” or “enable on Safari” – see this worthwhile page if you have problems). For code in the browser, try here or any of these. For WebGL demos, some of which are wonderful, see webgl.com. And there are great things out there beyond these, I’ll cover more here once I have the time. A few days back Steve Worley pointed out this amazing thing, a classic tile terrain renderer, all in a web page.

This all couldn’t have been done at all two years ago – WebGL was officially released on March 3, 2011. This is great news for anyone teaching graphics, either online or in the classroom (or both).

Becoming a computer graphics programmer is something I consider as much an apprenticeship as a set of college courses. That’s how I felt as I began to be one at Cornell back in 1983-85. The Masters program in the Program of Computer Graphics was officially one 18 credit course each semester (and summer), along with “take a minor”. It was essentially “live and breathe graphics” for two-plus years. Teenagers in the demoscene have similar experiences, I expect.

I ran across a great quote from Confucius, which I’ll probably use at the end of the MOOC, “Every truth has four corners: as a teacher I give you one corner, and it is for you to find the other three.” This fits my view of computer graphics: you can be given a foundation in the subject, but it’s mostly up to you to learn by doing and pursuing knowledge (Confucius probably meant something entirely different). The fact that you can now do this on your own with a PC and enough self-motivation and online support I find wonderful (take the creator of three.js, for example).

Going to a college or university and learning from a good teacher and working with other students is fantastic stuff; I consider myself fortunate to have been able to do so. There are great professors and programs out there. Even humble basic courses (such as mine) are a boon, as they can expose and motivate some students to get involved and find their passion. However, the field of computer graphics (unlike, say, genetics, where you can’t currently buy a DNA sequencer for $25, but can buy a GPU for that) is quite accessible even if you can’t commit to being a full-time student.

So, back to doing my little bit to help destroy universities because, you know, that’s just the kind of guy I am. Honestly, I think MOOCs have their place, and my own vision of the future is one where professors can grab chapters, videos, githubbed code and so on to supplement their courses, and they can make their own creations available to others. They can say “take this MOOC over the summer and come back in the fall ready to go,” so that everyone has a baseline understanding.

Committing nowadays to a single textbook, for example, seems archaic. Few people have the time to write a whole book, so there are only so many to choose from and each has chapters a teacher will not use, either for time or for dislike of the author’s approach. However, plenty of people can write a short article explaining mipmaps or scaling matrices or other topics, and a few of them will be superb. Sites with educational content such as RedBlobGamesAlgoViz.org, and Online Python Tutor are signs of how things can be (BTW, I learned of those URLs from the useful CACM article). Mixing and matching among these resources allows engaging and powerful new tools for teachers and students.

Behold your doom, universities

Yup, Zup?

In other words, is Y up, or is Z up? It’s a loaded question. My little lesson (YouTube) from the course is here, in case you don’t know the issue. What’s more entertaining, and the point of this post, are the answers I got back from the people I asked. I’ve asked this question before in this blog.

Speaking of cameras, is there nothing that three.js cannot do? Check out this incredible piece of wonderfulness and have a webcam ready. Or go right to the demo, and then the other demo. It’s one of those “of course we should be able to do that” kinds of things, but to have it just one mouse click away (assuming you’re set up to run WebGL; if not, go here).

 

Launched!

As of today, March 11th 2013, the free online interactive 3D graphics course I’ve been working on has begun, at last. I’ve been laboring in earnest and more than full time on this class since October (thank you, Autodesk), and I’m just the most visible person on the project. There’s a raft of others at Udacity making things work and look great: web programmers, video editors, and particularly Gundega Dekena, the assistant instructor on the course. Many other people inside and out of Autodesk have been contributing time for interviews, for video clips, and  for reviewing material (special shout-out to Patrick Cozzi and Mauricio Vives for reading over everything). It’s way more total work creating a video course than writing a book, maybe equivalent to the effort of making a movie vs. writing a novel.

Some of the slick things Udacity has done is integrate video lessons, WebGL/three.js demos, and exercises and questions all in a continuous series. I’d point at an URL, but you do have to sign up for the course to see its structure. Also, wait a day or so: by tomorrow a bunch more links to resources should be in place, at least for Unit 1. Soon the course code will be githubbed, the videos all downloadable, etc. (update: this is now done.)

By the way, this is only the first half of the course. I’m in the throes of writing the second half, which will come out May 1st. I’m learning the video creation process as I go, so I think the quality is increasing as the units progress. Gesturing at the screen and reading what I wrote at the same time gives me a new-found respect for weathermen.

Even if you already know about 3D graphics, you might want to check out the history of the teapot video, which Martin Newell kindly fact-checked. And if you don’t know who Martin Newell is, or only know that he created the teapot model, then you definitely should watch the video. Oh, and then try the WebGL/three.js demo here.

What’s nice is that all the course videos are hosted on YouTube, so it’s easy for anyone to link to any of the lessons (well, except where YouTube is blocked; Udacity has  alternate delivery methods). I hope that these videos and demos will be handy for other people explaining 3D graphics.

Introduction to Parallel Programming course available

I’ve been more than a bit busy working on the (newly renamed) Interactive 3D Graphics course for Udacity, so have been tardy pointing out that this cool course is out now: Introduction to Parallel Programming. Taught by John Owens, David Luebke, and others, it uses CUDA as its basis for teaching. I look forward to taking it myself! It’s a free online course with some serious content, graded exercises, and much else to recommend it – a lot of time & effort (& money) was put into making it, so I expect it will be worth my while.

Oh, and I should also mention another new course, HTML5 Game Development, from experts at Google. It’s more 2D graphics related, but again looks like quite a serious course with a lot of chew.