Saturday, October 28, 2017

Convergence Conference 2017 Reflection

The last three days I was at the 2017 Convergence Conference, hosted by ATLE and AAHEIT. This post is some of my reflections, written mostly to clarify my thoughts and for my future self.

As a part of the conference planning committee, responsible for the conference program, it was cool to wear a red vest and help the conference flow smoothly.

Day 1:

Supper, as with all of the meals, was a great way to network and reconnect with other technology and education oriented people from around the province, as well as those from my school division that I don't see as much anymore.

The opening keynote with Dr. Julielynn Wong was great. I'm definitely going to explore 3D design for humanitarian purposes such as Medical Makers. My favorite quote from her was something she said to a student, "The sooner you get your prototype done, the more lives you will save... so no pressure." I'm also more inspired to explore drones (quadcopters and fixed-wing) for humanitarian purposes such as delivering medial supplies to remote communities. So many possibilities.

The vendor hall, as always, was a very cool. I love the conversations with vendors about what they are doing and how these technologies can impact student learning. And I got to try the new Acer VR headset with Windows Mixed Reality.  It is cool, but maybe I'm spoiled by the Oculus Rift and HTC Vive... the lack of hardware IPD adjustment is somewhat of a deal breaker for me.

Speaking of VR headsets, I'm actually very excited for some upcoming stand-alone headsets that don't require a PC or mobile device, specifically Oculus Go and Daydream Standalone. These look like they'll be less expensive and probably nicer than putting a phone in a VR holder. More about that later though.

Day 2:

I presented on Students Programming and Flying Drones. Despite being early in the morning, there were enough participants for good interactions and insightful questions.

Karen Plant's Breakout EDU in EPSB session included some cool ideas for both digital and physical "breakout" games for staff and students.

Hopefully my session Student-Produced Live Video was valuable for participants. Again there were good questions, and it was good to hear about how other schools and divisions are doing similar things.

Speaking of participants, I was reminded again of how excellent the Sched site is. On Wednesday night we were able to identify that a lot of people had added two particular sessions to their schedule, and so we moved those sessions to our larger rooms. Since everyone was referencing the digital schedule, it was mostly seamless (I did need to redirect one or two people).

Joseph Clark's session Implementing CTF on a Division Scale, One Division's Journey was one I intended to attend, but was unfortunately only able to be there for the end of it. However a few attendees said it was one of the highlights of the conference for them.

One of my favorite sessions, apart from the keynotes was David Chan and Barton Satchwill's The data frontier: data science in Alberta and K-12. Last year they had shown us the start of their data science initiative (and Jupyter notebooks, which I have since used with students), but this year they were talking more about how data science can, and is, being used in education. Very cool stuff, and there is a lot to learn here.

Of course the gala reception at the Telus Spark science museum was a great time to socialize, take in a science film, see some awards presentations, and of course eat some great "appetizers".

Since it had been a long day with not so much sleep the night before, some colleagues and I headed out early and were on the train back to the hotels just after 9pm. Good day though.


Day 3:

Tired in the morning, but still up early to ride the train while listening to an audiobook. Much nicer than driving and parking.

My presentation 3D Design and Printing in Math Class seemed to be fairly well received. Of course I had the added advantage with this and my drones session that these were topics discussed by the opening keynote speaker. Again it was cool to hear about this stuff and hear about what is happening in other schools and divisions.

Will Rice's Google Expeditions: A Year in Review was very good. I liked hearing about how they have been implementing VR with mobile devices and to be reminded about Nicole Lakusta's curated database of virtual reality tours and field trips.

I briefly sat in on Janet Bell's Google Classroom and Docs for Secure Exams in Edmonton Public Schools, but one of my colleagues was there and said it was fairly similar to the path we had taken. Hopefully he was able to pick up some good tips and possible tweaks from her.

From there I hopped over to Jeremiah Okal-Frink's Successful Tech Leadership: Planning Sustainable Transformation. Definitely some great ideas, particularly around the different types of pilot projects (exploratory, technical, instructional, implementation).

Dr. Frink was also the closing keynote speaker. It was great how he really spoke to the theme of the conference, and reminded us to think about past trends (and fads) in technology and EdTech, and what life may be like for our students when they are adults (by 2030 at the latest).

All in all this was a great conference. I learned and tried new things, was encouraged and inspired, and made and strengthened connections with other educators and information technology professionals. Check out the hashtag #ConEdTech to see what some others have been saying about it. The one "criticism" I heard was that there were so many good sessions during this limited time, it was difficult to choose what to attend.

I would highly recommend attending this conference next year if you are interested and able. And if you are interested in volunteering at it let me know and I'll get you connected with the organizing committee.

Sunday, March 19, 2017

Producing Live Video Announcements (with students running the show)

If you'd like to increase student engagement in morning announcements, perhaps consider live video announcements.

We've been producing live video announcements two ways, using a Tricaster and a couple of cameras or using free software (Open Broadcaster Software) and webcams. The latter way is much less expensive, but requires a little more tweaking to get similar results.

In either case, we are having elementary students run the show. Currently I'm doing most of the setup and pre-production, but hopefully we'll have students doing that soon as well. During the newscast there are usually two anchor persons (students as young as grade two), sometimes a sportscaster (a staff member in our case), two students controlling slideshows (teleprompter and background), and a student running the video switcher.

The step-by-step technical details of how this is all set up and operated will be subject of future blog posts, but for now here's an overview of things to consider.

Cameras
While a newscast like this can be done with a single camera, having two or three makes it a little more interesting. You can have one set up as a standard shot of your anchor person(s), perhaps head and shoulders, medium, or cowboy. Another camera can be pointed a different direction for your sports or weather person. And I sometimes like having a "behind the scenes" camera that we broadcast before the start of the show to give students an idea of what the production process looks like.

Microphones
Mics are an often-overlooked (underheard?) part of a production. We use a couple of condenser microphones on scissor arm stands, and some inexpensive handheld mics if necessary. These are connected to a physical sound mixer with phantom power and USB out, but that may be more than is necessary.

Teleprompter
We've set up an old computer monitor just under the main camera, and connected a laptop. There's a student controlling the slideshow on the laptop, the words on the slides are color-coded for each of the anchor persons.

Background Slides
There is also a student controlling a laptop with background slides that appear behind or over the shoulder of the anchors.

Preshow
Before the announcements actually begin, we've started streaming either a live behind-the-scenes camera or student artwork. We're also streaming creative commons music (currently selections from the YouTube audio library). This allows teachers to have the broadcast up on the screen and make sure the video and audio are working before the broadcast begins.

Video Interstitials
We usually start the actual newscast with a brief "news intro" video, we'll play a national anthem video that we've created or a creative commons one that we've cued up.

Chroma Keying
Usually the anchors and/or sportscasters are standing in front of a green or blue screen that we then digitally replace with a virtual set or some other interesting background. We're still working on getting the lighting right for that, but it currently doesn't look too bad.

Streaming Destination
After investigating a number of options, we've decided to use YouTube Live. It's easy to set up new channels and add managers as required. Of course for any publicly available streaming destination you'll need parents/guardians to sign a media release form.

Getting to the Audience
All of our staff members were provided with a short URL that directed to the live channel. They bring that up on their screens on the mornings when we are broadcasting. We also stream it to the hallway TVs using Chromecast devices and AirParrot.

That's a quick overview of what the production process looks like. I'll update this post with links to how we do this use a TriCaster and with Open Broadcaster Software once I've written those posts. Let me know in the comments if you'd like more details or clarification on any of these points.

Saturday, February 18, 2017

Automatically Display Live Video on Hallway TVs

At my school we do live video announcements (and occasional live events) to YouTube. We also have TVs in the hallways that display photos and announcement slides using Chromecasts that automatically display images from a Google Photos album.

So of course we want to tie these together and display live video on those TVs when we are broadcasting.

The best way I've come up with to accomplish this is to use AirParrot for screen mirroring to multiple receivers and Automator on a Mac, or perhaps AutoHotkey on a Windows machine, to automate it all. (edit: Unfortunately it seems that the new version of AirParrot doesn't have Automator/Applescript support, but it's something they are working on.)

First set up a computer to automatically launch the streaming URL (https://www.youtube.com/channel/[channelID]/live) at a certain time each day. There are instructions for Automator, but I'm sure it could be accomplished a number of other ways such as with a Windows scheduled task. Of course if you wanted to get fancy, you could use the YouTube Live API to launch the URL whenever the broadcast is live.

The next step is to have AirParrot send that YouTube broadcast to all of the Chromecasts. I haven't tried automating this part yet, but AirParrot supports Automator (on a Mac) and if you're on a Windows machine then AutoHotkey can click and type for you. I really like how AirParrot connects so smoothly and mirrors displays or programs to multiple receivers, including Chromecasts and Apple TVs.

As an aside note, through Humble Bundle you can pick up two copies of AirParrot 2 for about $1USD until the end of February 2017. This is about 95% off the regular price. While you're there check out some of the other bundles, they have great taste in games and such, and amazing deals. This is not a paid endorsement.

So I'm hoping that soon I'll have this all automated so that people can watch the live video announcements in the hallways as well as in the classrooms.

Monday, February 13, 2017

Reflections on Teachers' Convention (NCTCA2017)


February 9th and 10th was the NCTCA 2017 Convention. Check out their Twitter and Facebook (and the Twitter hashtag). It was great to attend keynotes and sessions, network with colleagues, and walk through the vendor area. A highlight of this year was that I was able to attend with my wife, who is currently teaching grade three.

It was very interesting to hear Mohamed Fahmy talk about his experiences being imprisoned in Egypt, and about the importance of the media and journalism (Media in the Age of Terror: How the War on Terror Became a War on Journalism). He is a very engaging speaker.

I also attended a session by Kathy Worobec from the Alberta Council for Environmental Education on "How can Alberta Schools show climate leadership?". It was good to hear about, and discuss, projects that schools have been, and can be, involved in.

Next I attended a physics session, even though I'm no longer a physics teacher. However since it was about astronomy (Black Holes DON'T S**k) it is also applicable to grade six science. Great session, very interesting. And I knew the presenters, (Laura Pankratz and Jeff Goldie) so it was good to see them.

After lunch I attended some of the session "Minimalism in the Classroom" by Julianne Harvey that my wife was also attending. I liked what she had to say about simplifying our classroom environments "to improve student concentration and focus".

The last session I attended on Thursday was Amber MacArthur's "Cybersecurity & The Next Generation: 10 Steps to Privacy, Safety, and Citizenship". I last heard her speak many years ago at an ATLE conference, and she always has good ideas and is able to articulate the importance of many issues in technology. My favourite quote from her was something like "if you have time to know who is winning in 'The Bachelor' then you have time to check out some of the apps your kids are using."

Friday started with a session entitled "Stop working harder than your students" that I went to with my wife. It was very good, and I came away with a lot of ideas from Pierre Poulin and Philippe Bresee. One idea that I have implemented already, although it was already in the back of my mind, was a class government. This ties in nicely with democracy in grade six social studies, and gives students responsibilities and autonomy. I also liked the classroom layout design tool they demonstrated, Classroom Architect.

Following that that was my session entitled "You Can Program, and Kids Can Too". Unfortunately since it was in a venue that was both new to the convention this year and required some outdoor walking, fewer than half of the people that added it to their sched.com schedule actually attended. There were enough people for interesting questions and interactions, however, and even if a few people thought it was valuable then it was worthwhile.

After a longer lunch and more time in the vendor hall, I looked in on a couple of other sessions but only stayed for the entirety of "Entitlementality (And How to Teach Against It)" by Joel Hilchey. He talked about how students, and teachers, and in fact most people seem to have developed a mentality of entitlement. As an example, they/we "expect exceptional results with minimal effort". To combat this, he suggests a "focus on relationships, gratitude, and citizenship." I'm going to try gratitude journaling with my students.

Despite having to drive and park downtown for two days, it was an excellent teachers' convention. I came away with a number of concrete "try this on Monday" ideas, some inspiration, and things to think about for the future. Teaching is a great profession.

Friday, December 30, 2016

Code for a Drawing Game

The other day my wife and kids played a drawing game called Who What Where Jr with some friends. Based on their description of the game mechanics, I wrote a little bit of Javascript that chooses a "who", a "what", and a "where" from columns in a Google Spreadsheet.

I guess it's not quite the same as the actual game, and it took us a while to come up with subjects, verbs, and locations, but we had some fun creating it and playing it. The next step would be to turn this into a web app, including some sort of mechanism for showing each player a different phrase before a timer starts.

Code is available on GitHub.


Saturday, November 19, 2016

Class Group Formation With Student Choice and Algorithms

We needed to form new groups in my class of 28 students (seven groups of four), so I had the idea to allow some student choice. Students were able to choose six others that they would prefer to be with, and three others that they would prefer not be in a group with.

Each student is assigned a number from 1 to 28, and I generated possible combinations of 4 students chosen from those 28 (20 475 possible combinations).

Then I eliminated combinations that that contained a given student and a student that they indicated a preference for not being with, which narrowed it down to 7714 possible combinations.

From these 7714 combinations, I built sets of 28 unique students (seven groups of four with no repeating numbers in a set). This resulted in 259 possible class group configurations.

I then assigned points to those sets based on student preferences, one point for every "I want to be with ___" that was fulfilled. The set with the highest points was then chosen, and the numbers translated back into names.

That's just a broad overview of the algorithm design. Just for fun, I did different parts in Wolfram Cloud, Python, Javascript, and Excel.

Friday, October 21, 2016

Google Classroom Assignment Completion Leaderboard

I've been using Google Classroom to post a lot of assignments that students can work on at their own pace; some of them are optional assignments, but most are required. We also have incentives set up for milestones such as 500 assignments completed by the class.

Rather than having to go through each assignment and see how many have been completed, and how many each student has completed, I've written a script that logs that information to a Google Spreadsheet. In case you'd like to do the same, here's the code and some basic instructions on how to set it up for yourself.
  1. Create a Google spreadsheet with a list of student email addresses in column A starting at row 2.
  2. Rename the sheet Achievements (or change line 17 of the code below).
  3. Under the Tools menu choose Script editor and paste in the code below.
  4. Follow the directions at https://developers.google.com/classroom/quickstart/apps-script to authorize your script.
  5. Run (play) the function listCourses to find the courseId for the course that you want to run this on
  6. Set up a trigger to run the function countClassroomAssignments() every morning or every week.