Teaching Computer Science online – the hard parts

This semester I am teaching my first e-Learning course (I’ve been supporting e-Learning for five years; time for me to walk the walk, eh?). It’s a split ICS3C/ICS3U course in Computer Science and Programming.

I’m using Java with NetBeans and we’re coding “desktop” applications (i.e. not mobile yet). We might later move to Android programming, but I think that’ll probably be enrichment for interested students. There isn’t really a requirement to write for mobile in the course, and it adds a lot of extra layers of complexity.

“The Range”

Complexity would be fine, except many of the students are first-time coders – zero experience with programming of any kind. That’s normal, since ICS3x doesn’t have a prerequisite, and many schools (especially in Northern Ontario, but elsewhere too I understand) can’t afford to offer ICS2O as a precursor.

Of course, many of the students do have a bunch of programming experience, some in Javascript or Visual Basic, others in HTML, and a couple in many languages.

So I have what I think is a typically wide range in starting points for learning computer science and computer programming.

Troubleshooting at a distance

Teaching online has special challenges for any course, but ICS has software requirements that are significant and unusual. You need a “computer” – no tablets, no Chromebooks*. You need an application installed and a development kit. If students are using computers owned by their school boards they may have to ask to have those items installed for them. I’m sure you can imagine how easy that is to accomplish.

Of course, many students are using their own computers. I prefer this, because they can install their own software (a useful skill in its own right) and they have a lot more coding time (evenings and weekends).

So what do you do when you get an email like this?

“Hi Mr Grasley, I can’t find Netbeans on the computer at school. I don’t know what to do.”

After several email messages, we got it all worked out. I’m sure the student was frustrated, and I felt a little helpless. The special software needs are tough up front in the course.

These aren’t Word documents

The e-Learning environment has a handy document renderer which nicely formats Word and other documents for me in the browser. It’s a fairly new feature, and it works really well.

It can’t handle a .zip file containing a Java project, of course.

So, I have to download the student submissions and import them into NetBeans or unzip them and open the .java files in a text editor. A little more onerous, but still manageable.

That’s it so far

See, I’m not complaining – it’s pretty good to have only a couple of issues that are special. I like teaching online, I get to reference xkcd in my course, and I’m looking forward to the rest of the semester.

*It is possible to use a cloud-based development environment, which would allow you to code using other kinds of devices. I’m not “supporting” that just yet, but I can see it down the road. I’m hoping some of my students try it out and report back.

Advertisements

2 thoughts on “Teaching Computer Science online – the hard parts

  1. Impressive. In a subject where detail is extremely important (that is, a single character in the wrong place can make it not work), I imagine teaching through an online medium would be an incredible challenge. In a Pascal coding class I had in high school the teacher would just look over my shoulder, quickly scan the code on my screen and point out any errors he found just with his finger. How do you do this?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s