Session Preparation for #OTRK12

Yup, On The Rise is this week. It’s hard to believe we’re that far into the school year already, and it’s harder to believe that it’s been over year since OTRK12 2014.

This year I’m very happy to be presenting on Friday morning. The session title is “How To Become An EdTech Leader” and it’s for school and system leaders. Here’s the official description:

What does it take to be a leader in educational technology (EdTech) today? You don’t need to be a technical wizard. You do need to be willing to connect to a community, listen to others, and share what you’re doing.

We’ll talk about how to create or join different kinds of communities online. We’ll explain some different roles you can have. We’ll have hands-on time for you to get started using a platform of your choice based on your personal goals. And we’ll look at the challenges you can experience trying to lead at different levels of your organization (and propose some solutions!).

You’re coming to this session because you want to be a better leader with EdTech. If you’re a highly connected, social media guru, you probably want to go to a different session.

Did I mention it’s only an hour long? Yup, it’s a big topic. I’m paring down the stuff I’m going to talk about, and I think I’ll have to write an obscenely long blog post to get the rest of it out there.

My basic outline for myself is the following:

  1. Introduce myself (and participants, if there aren’t too many)
  2. Share some types of communities
  3. Develop some goals that participants might have as leaders
  4. Share some roles or stances that leaders can take
  5. List some possible/preferred online platforms
  6. Share challenges/cautions and solutions/suggestions to go with them
  7. Breathe a bit

I’m definitely feeling the time crunch. Sadly, I’m more verbose in person than I am in writing (shocking, I know), so I’ll need to strictly monitor myself. Of course, the actual path I take during the hour will depend on the other learners in the room with me.

Suggestions are very welcome, as always.

Advertisements

Using Java and NetBeans to Teach High School Computer Science

First Question

Another teacher recently asked about my experiences teaching CS and for a description of the tools and language that I used. I thought I might share my response on here, in case anyone can add to the conversation.

First response

I used Java with NetBeans for development. This was my first time through the courses (ICS3U/3C) and it was by e-Learning, so I wanted to stick with something that was fairly standard. NetBeans was really flexible and was fairly nice for building GUIs as well. I hadn’t used a development environment with such effective refactoring capabilities before, so that was a treat. JavaDoc templates were generated automatically, and documentation look up was fast and reliable.

NetBeans_StartPage

Some other CS teachers use Eclipse, JCreator, or something else. NetBeans does have an Android development plugin, although I haven’t used it. If I were to teach the grade 12 course, I might consider focusing on Android development with the Android SDK/Studio IDE. There is a lot more to think about for app development, but I think there would be a significantly increased level of engagement. Also, those skills should be highly marketable for students if they pursue programming or software engineering as a career.

AndroidStudio

If you want to see what it look like while I was coding and developing user interfaces in NetBeans, I have a bunch of videos in a playlist on my YouTube channel.

It was helpful to have the students building GUIs right away in some respects. However, because they didn’t already understand objects when they started this, it was difficult in the later stages of the course to have them create GUI elements programmatically instead of with drag-and-drop tools. For example, one student was creating a game that required playing cards to be displayed, but he needed to create (up to) 52 UI objects to represent them. That screams arrays/lists, but he didn’t know how to instantiate those elements based on what we had already learned. I might try a slightly different approach, rather than changing IDE though.

If you have specific questions I can answer, let me know. I’ll be teaching this course again next year, so talking about this is good for me too! If you want the content/activities I developed, I’m happy to share that as well.

Second Question

Later the teacher asked about whether I had used Python, and if I had thoughts about Python vs. Java. Here’s what I said:

Second Response

I haven’t worked in Python, but I understand that it is fairly powerful and straightforward. I talked to the other CS teacher here and he recommends Java, and I think I do too.

Some points to consider:

  • Python has very forgiving syntax; the argument is that this may allow students to focus on concepts.
  • Java is strongly- and statically-typed, but Python is strongly- and dynamically-typed.
  • Java has a longer history, so there are “more” resources available for support (might not matter – “enough” and “good” are more important than “more”)
  • Java is used for more application types (desktop, web, Android, non-computing devices) and is available on most platforms.
  • Python tends to be used server-side – it’s a scripting language.
  • Python applications tend to be shorter
  • Python uses indentation to describe code structure; Java uses braces.

I use Java because I’m used to it, I understand it well, and it’ll be a nice transition to mobile development for the kids.

Let me know what you decide – it’s interesting!

Your turn

If I have made a mistake above, or if you have thoughts about IDEs/Java/Python/Android/etc., please add a comment and I’ll pass it along!

Using video to capture quadratic motion

In my MBF3C class today we observed quadratic motion and modelled it with http://www.desmos.com, and online graphing calculator. I’ve recreated the steps here (with some fake data).

First, I went to Desmos and projected a blank Cartesian coordinate system onto the screen at the front of the classroom.

Desmos_blank
Then, I found a black rubber stopper (I teach in a science classroom) a little more than an inch across.

I asked for two volunteers who would be willing to throw things at each other. That was easy.

They practiced lobbing the stopper back and forth to each other in front of the screen, trying to get the black rubber to crest visibly near the top of the grid. Eventually they were confident they could do it.
I held my iPhone in landscape orientation and recorded a slow-motion video. After a few attempts I felt we had a successful toss, and the students returned to their seats without injury.

We scrubbed through the video slowly and recorded the x– and y-coordinates for each major tick of the x-axis.

Then we plotted the points in Desmos (using the Table feature):

Desmos_table

We then graphed a generic quadratic using the vertex form and its parameters (y=a(x-h)^2+k). Desmos provided the sliders for each parameter:

Desmos_basic

As a group the students decided to make a negative and small, to flatten the curve, then they adjusted h and k to fit:

Desmos_transformed
Some interesting stuff to note about the process:

  • Even using 120fps there were places near the edges of the curve for which it was hard to see the coordinates (blurring and gaps).
  • The vertex wasn’t on the y-axis, which was surprising to the students.
  • The glare of the projector made the grid a little hard to see.
  • We had to have the lights out to make the grid visible at all on camera, and the dim lighting made the video a bit grainy.
  • The parabola we fit to the data worked really, really well.

What’s next

I’m going to perform some more motion tasks with them to get more quadratic data, and we’re going to do some curve-fitting to model and predict things (for example, how far can you throw a ball off a 10th-story roof?).

I’d like to have a large, physical grid on the wall or something so that I can have the lights on when we record video.

I want students to record video and analyse it. Lots of them have iPhones, and I bet some of the other phones can take good, crisp video. If not, there’s some learning there too (about interpolation if nothing else).

I’ll try some other phenomena also.

A video you can use

Here’s another video we took, if you want to use it:

My Unresponsive Course

You have me thinking again, Mr. Peterson. Today it’s with your post, “You Need to Be Responsive“.

My own blogs are responsive and so they display well on multiple device types.

My blog on a computer browser.

My blog on a computer browser.

My blog on a phone browser.

My blog on a phone browser.

Students tell me they like the theme (The Suits Theme) on my class blog; they say it looks professional.

The class blog in a computer browser.

The class blog in a computer browser.

The class blog on a phone browser.

The class blog on a phone browser.

However my e-learning course is less responsive. There is a mobile interface which becomes active when you use mobile device, but there are a couple of components on my course homepage which only appear using the desktop interface (custom widgets with links to the Padlet and the YouTube playlist for the course). Some course tools aren’t available in this view (e.g. the Checklist Tool).

My course homepage on a computer browser.

My course homepage on a computer browser.

Course homepage in the mobile view.

Course homepage in the mobile view.

Tools in the mobile view.

Tools in the mobile view.

What’s more, I have created quite a few PDF files for the programming concepts in the course. These files, because they are paginated, are not responsive.

PDF in a mobile browser

PDF in a mobile browser – portrait

PDF in a mobile browser - landscape

PDF in a mobile browser – landscape

Honestly, I don’t remember considering that issue when finally deciding to use PDFs. Since students are coding on computers anyway perhaps it doesn’t matter that much. And other stuff, like news and discussions, are mobile-friendly.

But I’ve unintentionally made it difficult for them to use small, mobile devices to keep up with the “text” part of the course (i.e. when they’re not actively programming). I do have a lot of video on there, which is (I think) fairly accessible.

I’ll have to think about whether it’s worth fixing the responsiveness of those PDFs.

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!

 

 

 

 

 

 

 

Replyin’ to Brian @mraspinall

I’m having trouble posting to Brian Aspinall’s blog, so here’s my quick response to http://brianaspinall.com/?page_id=488:

Not only do we need students to experience other manufacturers’ devices, we need them to struggle to perform tasks with different types of devices. Some types are better than others for certain purposes.

I’ve heard about some Ontario elementary schools which have removed all computers in favour of tablets. I bet the principal, secretary, and teachers still have computers to use, because they’re useful.

There is no one-size-fits-all device, app, manufacturer, or approach.

Good thinking – thanks for inviting comments!

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.