Sunday, March 19, 2017

Producing Live Video Announcements (with students running the show)

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 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.

Sunday, October 16, 2016

My Classroom Technologies

In my grade six classroom we have been using a number of different educational technologies, including hardware, software, and web-based tools.

Our main hardware platform is a set of Dell Latitude E6410 laptops. Since these are fairly old machines, we have reimaged them with Lubuntu, a lightweight Linux distribution that makes them quite usable. We have a charging cart, extra batteries, and an external battery charger.

On these laptops we have installed the Chrome web browser (in addition to the included Firefox), Audacity for audio recording, Cheese for taking photos and videos, and MinecraftEdu.

Also in the classroom we have two Raspberry Pi computers running KanoOS for computational thinking activities, and a few older gaming consoles for indoor recesses, motivation, and esports (a subject for another post).

We have access to Chromebooks, iPads, tripods (with iPad brackets), microphones (with USB cables and lightning adapters), green/blue screens, a GoPro HERO Session camera, Mac mini computers, Lego Mindstorms EV3 robot kits, and programmable Parrot Rolling Spider drones.

Our web-based tools include:
Google Classroom - assignments and online interactions, and guardian email summaries
Google Sites - hosts our class website
Remind - communicating with my students' grown-ups
Classcraft - a gamified behaviour management system
Mathletics - math practice
Math Live - interactive math lessons
Prodigy - chocolate-covered broccoli math practice
Newsela - news and non-fiction at adjustable reading levels
Duolingo - French language learning
Kids A-Z (Raz-Kids) - optional reading (ebooks and audiobooks)
Code Combat - coding and computational thinking activities

And of course we use other platforms for occasional assignments, such as Marvel's Comic Creator or Weebly. We'll also be trying many other tools throughout the year. For the most part, though, we are not focusing on learning tools, but rather learning with the tools.