Why I’m happy with the design of my first e-Learning course

I’m teaching ICS3C/3U (Computer Programming/Computer Science) online this semester. I was the e-Learning Contact for my board for several years, but this is my first time teaching online in “real life” (i.e. not a professional learning session).

Overall I’m fairly happy with how I approached the design of my course, and I’ve also learned a few things that I’ll improve upon.

I work in Ontario using the Desire2Learn/Brightspace platform. The Ministry of Education here has provided a “starter course” for each of my classes. I’ve discussed the problems with the format of that course before (see here), and thoughts I had about improving on it. I mostly followed my own advice.

In the end, there were significant differences between the provided course materials and the approach I wanted to take with the course, so I ventured out on my own.

News

I use the News area to share interesting links, reminders, and extra details. Notice I don’t post a news item every day; I’ve decided that’s too much without a real payoff.

A screen capture of a news feed.

 

YouTube

I post a lot of “instructional videos” in the course. The videos show me coding applications live, so students can hear my thinking while I work, see the errors I make and how I correct them, and see how the development environment works visually.

A screen capture of a link to a YouTube playlist.

Of course, playing videos successfully in the online learning environment is a bit device-dependent, so I also post every video to YouTube. I maintain them in a playlist (here) and I post a link in a widget on the course homepage. The YouTube videos also have the advantage of sometimes being faster to download, and users can change the resolution on the fly (not very helpful for code, I suppose).

And most importantly, those videos are available for anyone on the Internet to use. That makes me feel good in my heart.

Other Resources

In an out-of-the-way place on the course homepage I maintain a Padlet. I use this to post related-but-not-necessary links.

A screen capture of a Padlet.

Calendar

I don’t use the Calendar directly, but I do use due dates for Content items so they show up in the Upcoming Events list. More on that later.

 

A screen capture of a calendar and upcoming events list.

 

Units, Activities, Modules

I divide up a Unit into Activities, and I number everything:

 

A screen capture showing the activities of a unit.

 

Within each Activity I also “letter” my items sequentially (3.1A, 3.1B, etc.):

 

A screen capture showing activities organized into modules.

Due Dates

I used to only put due dates on the items that needed to be submitted/completed, like Dropboxes and Discussions. After helping an e-Learning student in the library here with her English class, I realized that students were using the Upcoming Events list in the Content area. I had never explored it before, but it was a sparse list in my course.

Now I add due dates to Content items which I want students to consume as well; for example, I put a due date on 3.2E, which is a video I want them to watch by the end of today. They don’t have to submit anything, but I’m hoping the due date helps to keep them on track.

(Note: This is not an “end date”, which would make the item unavailable after the date has passed.)

A screen capture showing upcoming events.

 Content in PDF

I have tried to use HTML, Word documents, and PDF files to post CS content, but I’m happiest posting a PDF that I generate in Word. I get excellent control over the look and feel of the text/images, but the links I put in there still work. It’s also universally-readable.

HTML takes too long to format correctly/beautifully, and Word documents are rendered as images by D2L (disabling any links).

In the end I think the videos are more valuable for the students, especially later in the course. I have several students now requesting videos explaining a certain aspect of the course, but not a lot of PDF requests.

A screenshot showing a PDF file from the course

Still Thinking

I have a lot more to learn, but I’m pretty happy with the workflow I’ve developed now. Suggestions are very welcome!

 

 

 

 

 

 

 

Screencasts for teaching Computer Science online

I’m teaching ICS3C/ICS3U online using the Java programming language to 24 students whom I never see, ever. ICS has a lot of technical components, and computer programming can be finicky. In a face-to-face class you can help a student debug (troubleshoot) their code while looking over their shoulder.

Online isn’t like this. It’s not exactly a disadvantage, though – students are solving their own problems more often because they don’t want to take the time to write an email or because I take too long to respond (i.e. more than 15 minutes – jokes!).

So, how do I teach students the mechanics of coding in Java without making them read a book?

I take a screencast of myself coding and talking about it. I use Screencast-O-Matic because it’s very, very reliable and awesome (on my own laptop I install the application so I’m not using Java in the browser).

an image showing a program being written in the NetBeans IDE

Are your videos excellent?

No, I don’t believe the videos are compelling in the way that a Hollywood film is, but they’re at least useful. Students can see the order in which I solve a problem, hear my thinking as I work, and see the mistakes I make.

Mistakes?!?

Yup, I make mistakes when I code. I get error messages. Java throws Exceptions. Flashing red lights, irritating Microsoft “dings”, and all that.

They’re not on purpose (I’m not trying to make mistakes), but they’re beautiful opportunities for incidental learning. Students will make the same mistakes too, so I think this will help them to recognize these types of errors and be able to correct them.

What do you do with them?

I post the videos in two places:

First I post them into my e-Learning course in the Content area, mixed in with text explanations, assignments, discussions, and so on. I’ll usually also post the code that I write in these screencast sessions.

an image showing content items in an e-Learning course

Second I post them to YouTube and add them to a playlist I’ve been maintaining for this course. This is so that other people can use them if they want (including parents), and so that students can possibly download them more quickly or on different devices. I think it’s worth the extra time to cross-post.

An image showing a YouTube playing for ICS3C/ICS3UDo they use the videos?

They certainly do. I surveyed my students early in the course and most wanted the videos as well as PDF files with code examples and screenshots. Most students access the videos in the online learning environment, which probably makes sense since there’s more structure there. The number of views on YouTube isn’t very high, but it’s not zero :)

Hasn’t someone done this already? YouTube is FULL of stuff like this!

I know. There is a lot already out there, and a lot of that is “better” than what I’m making.

But there are some distinct advantages to doing this myself:

  • I run into the snags that students would run into, and I fix them
  • They can hear my voice and get to know me a bit, hopefully making other communication easier
  • I use the same IDE they do, so it’s up-to-date, not version 6.8 or whatever
  • I can focus my videos on the course concepts and not other stuff (like some tough math)

Are you going to keep doing this?

For this semester I will. In the future offerings of this course I hope to be able to reuse at least some of these videos, although I know they will become obsolete in some ways. And if I get a chance to teach ICS4C/4U I’ll get to work on a whole new round of concepts, which is kind of fun for a geek like me.

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.