Redirecting TinyURL shortcuts using Google Sites

I’ve had my CompSci department page live at my current school for nearly two years now. It links many of the resources students find invaluable and is regularly used across KS3, iGCSE and IB courses. However the new Google Sites layout is much easier to configure and seems to help with accessibility so I decided in the last few weeks of term to help smooth the handover process by rebuilding. The problem was I wanted to retain my extremely useful TinyURL shortcut and make it point to the new site – and that’s not possible.

The solution

So I will have to keep the homepage of the original site (fine, I’ll transfer ownership) but wanted a quick way to redirect automatically without having users click on a link. Luckily someone had already thought of a way to do this with (the old) Google Sites: URL Redirector Modified

Setting up the redirect

To set this up simply:

  • go to the Insert menu when editing the page in the old Google Sites
  • select More Gadgets…
  • click on Public and then enter “url redirector modified” in the search box
  • select the gadget

Next customise your redirect. The first textbox is for your new URL. I also chose 10 seconds for the timeout as I wanted the students to see a message about the new site before the redirect, however you could adapt as required.

Then simply save your page and try it out!

 

 

Constructing my hackable classroom – Part 1 #ThisIsMyClassroom

Untitled

In late 2015 I had the opportunity to sit down and design a classroom environment suited to Computer Science students. After surveying my students and getting lots of ideas (including one which resembled a living-room with C shaped sofa – tempting, I’ll admit) for what they consider would be their optimal learning environment I let the ideas stew while over in London in January for the Apple Leadership event and BETT 2016.

My interest in flexible learning environments roll way back to my time at Inverurie Academy when I worked in an open plan floor of six classrooms. I posted my first #ThisIsMyClassroom blog in May 2011 as a way of recording the changes to my classroom environment. Even at this time I was asking students about how they would like their learning environments to be arranged and remember the 3D walkthrough videos created by a great S3 class. It was truly excellent work that culminated in a video conference with Anna Rossvoll, who was at that time creating her own flexible learning environment at Hill of Banchory school in Aberdeenshire. I’ll try and find these videos and upload some of them.

Since the launch of the Raspberry Pi Computer Science teachers have had the ever-increasing opportunity to embed low-cost working models in their classrooms. While at Robert Gordon’s College I set up a separate Raspberry Pi lab (imaginatively titled PiLab) but when we moved to new classrooms in 2015 integrated the Raspberry Pis into my Computing classroom and made them part of the curriculum rather than an extra-curricular club.

I also used my experience from attending the PiCademy in Cambridge to investigate how Raspberry Pi might be used to allow students to access previously static areas of the classroom environment and bring them to life.

Perhaps the final piece of the inspiration puzzle came when I visited OnHouse Milano during last session. While primarily a showcase design home I had a great discussion with their programmers on how they use themes and scenarios to integrate a number of systems. This gave me the idea of creating Python API wrappers that allow the students to move easily access a number of hackable devices in the same program. These libraries could then easily be imported into a student’s programming environment and let them, for example, take the colour sensed by a Raspberry Pi camera and mimic it in the Phillips Hue lighting system.

I still want to keep the same classroom environment ethos as I introduce more (relatively low cost) interactive technology to the classroom – the students connect more by displaying their work. So areas of the room are set aside ready for student posters which can then be augmented using Aurasma, CodeBug projects can be displayed in a gallery area around the LAUNCH posters, the robotics created by students in extra curricular clubs are always on display. It does sound like I’m looking forward to the room becoming a slightly updated version of Eduardo Paolozzi’s studio

At this point the desks are in, the screen is in a more suitable position so that all students can view, the double whiteboards are up and the power provision in the classroom has been enhanced. There are also elements of the hackable classroom in place and the students will begin to use these as part of their lessons in the coming weeks and months

Flipped / Blended Classroom with NEO LMS

NEOLMS

As the new school year started last week I wanted to push further with my Flipped Classroom approach. My hacked-together system of EdPuzzle videos, Google Form WSQs and Google Classroom feedback to the students worked but was very time-consuming for the teacher. There was also a drawback to the students as it was difficult for them to quickly return to a topic at a later date for review.

I am currently half-way through completion of a University of Georgia Coursera entitled “K12 Blended and Online Learning”. I wanted to complete this to further my own knowledge and experience in this field and hoped that it would open my eyes to some pedagogical or behavioural methods for use in this type of learning environment.

I am enjoying using the Coursera system but it doesn’t let individual teachers create their own courses. When I worked at Robert Gordon’s College I successfully developed a number of iTunesU courses for iPad but unfortunately couldn’t leverage the same system for Macbook. I did a little research and found NEO LMS. It’s early days but I wanted to give my initial impressions of the service.

Courses were easy to create and customise and students register for these with an access code. When I introduced it in class last week there were NO issues with sign up – that rarely happens with new services. Students were impressed by the interface and found it easy to navigate.

I spent some more time exploring the multitude of options this afternoon while setting up two new courses. NEO LMS has made it so easy that I’m going to attempt to Flip my entire curriculum, not just a course or two throughout the year. I’ve already worked out how to get my students into separate Groups which then makes it easy to register them for future courses without the need for an access code. In fact, if you have the Enterprise edition, you can leverage the Rules engine to automatically enroll students in the next course when they finish the current one!

If you are looking into building your own Flipped / Blended courses then I highly recommend you check out NEO LMS. The individual teacher account is free and supports up to 200 students. You also get a 14-day trial of the Enterprise edition when you sign up.

This was originally posted on LinkedIn, 11th September 2016

Social media generated art in Python #ThisIsMyClassroom #Programming #STEAM

Social media generated art in Python #ThisIsMyClassroom #Programming #STEAM

For the third blog post on this topic I wanted to use Python to generate different pieces of art without relying entirely on the random function. I decided to use the tweepy library, mainly because I had already used it to post content to Twitter but had never investigated how it could be used to read information back from Twitter.

It didn’t take long to find out how to read the latest 10 tweets from my own timeline using Python. Then I split the individual words into a list and sorted them into alphabetical order (for no real reason at the moment, but frequency analysis will follow!). Then I used the write method from the Turtle graphics library to place each word at a random location on the screen. This was my first attempt:

Screen Shot 2016-04-03 at 23.50.08

A bit tricky to read the words I thought. And I’d accidentally forgotten to penup before moving the turtle. However this accidental vector spider web became part of the artwork (because when I removed it, it looked quite boring).

A little while later I was able to change the font size at random (I changed the font to palatino after experimenting with a few others) and changing the pencolor in the same way as previous Python art programs changed the text colour too.

Screen Shot 2016-04-03 at 23.53.35

I had a lot of text to display, even just from 10 tweets, so I thought of ways to reduce the amount. I wrote a little Python subroutine that removed hashtags, mentions and URLs (as well as any other non ASCII text) and that was enough!

The video below shows the program in action. I decided to make a video this time because you can make out the individual words much more clearly at the beginning of the drawing than at the end!

As before the code is now on github (with my tweepy details removed for security). I’ve left in a commented out section of code that allows you to run a search for a keyword, hashtag or phrase instead of taking the latest timeline so you can experiment.

Any comments or improvements would be much appreciated!

SOUND GENERATED ART IN PYTHON #THISISMYCLASSROOM #PROGRAMMING #STEAM

SOUND GENERATED ART IN PYTHON #THISISMYCLASSROOM #PROGRAMMING #STEAM

I had a lot of fun experimenting with the subroutines and Python Turtle methods yesterday but wanted to push it a little further and find out if I could make use of a new Python library to help create automated art.

Somehow I’ve never built a program that utilises and analyses audio before, so challenged myself to find out more about libraries such as PyAudio and Wave this afternoon. My daughter was practising piano in the other room so it gave me a push to integrate live audio into my solution, rather than rely on pre-recorded wav files.

I learned about numpy a little this afternoon too. I hadn’t realised it had functions to extract the frequency from an audio block (FFT). The more I explore Python, the more I fall in love with it as a language!

Once I’d successfully extracted numeric frequencies from the 5 second wave file into a list I looped through them and attempted to place shapes on the Python Turtle screen to correlate with the current frequency. I decided on a simple X axis plot to begin with but then, as I realised the range between min and max frequencies usually exceeded 8000 I introduced a scale factor so they could be seen on the screen together and adjusted the Y axis so that each frequency appeared bottom to top in the order of analysis.

Screen Shot 2016-03-31 at 18.18.40

Quite nice, but there’s a lot of white space where the unused frequency range lies. Instead of removing this range from the visualisation (which, in retrospect, might have been a good idea) I decided to attempt to create ghosts of the circles fading out as they get further from the original position. This led me into colorsys and all sorts of bother, reminding me (eventually) not to mess with anything that returns a Tuple until I convert it back to a List first. Anyway, I removed that part of the code and put my arty effects on the back burner. You can see one example of the mess below. Ugh.

Screen Shot 2016-03-31 at 18.19.00

I decided to alter the colour of the background this time too. I think I’d like to use some audio analysis to decide on the colour range in a future version so that low audio frequencies create darker images and high frequencies create bright, bubblegum pop images.

Screen Shot 2016-03-31 at 18.06.42

The last thing I added to the program was the option to use pre-recorded audio WAV files instead of always recording 5 seconds of audio. This was very easy to add as I’d modularised the code as I went, so all that was needed was a few lines extra in the main program:

Screen Shot 2016-03-31 at 19.08.33

Trying out the program with a few WAV files from www.findsounds.com or playing a YouTube video in the background resulted in the following images:

chimpanzee.wav
chimpanzee.wav
uptown funk
uptown funk

Python files can be found at Github – https://github.com/familysimpson/PythonArt/. Feel free to fork the code, leave comments below or just enjoy the images it generates!

Computer Generated Art #thisismyclassroom #programming #steam

Computer Generated Art #thisismyclassroom #programming #steam

Screen Shot 2016-03-31 at 02.22.22

I wanted to create a task that allowed students to create a computer program in Python that would automatically create its own artwork but be customisable so that each student could experiment and personalise their own program to their tastes.

Screen Shot 2016-03-31 at 02.15.10

It’s a rough Python 3 program using the Turtle library and an array of Turtles but so far it has produced some really nice work. In the images shown below the program uses a user-defined function that draws a randomly sized square. I thought this would be easy for the students to understand and hack into something new!

Screen Shot 2016-03-31 at 02.15.24

Of course art can be created as a response to an external stimulus so a possible extension of this program would be to get input from the user (colours, mood, age) or calculate a range of colours from an input sensor or device (temperature, time, image).

Screen Shot 2016-03-31 at 02.15.38

The code is below! Any suggestions or improvements would be appreciated!

import turtle
import random
wn = turtle.Screen()
w = wn.window_width()
h = wn.window_height()

t1 = turtle.Turtle()
t2 = turtle.Turtle()
t3 = turtle.Turtle()
t4 = turtle.Turtle()
t5 = turtle.Turtle()
t6 = turtle.Turtle()

turtles = [t1, t2, t3, t4, t5, t6]

def square(item, size):
for x in range(4):
item.forward(size)
item.right(90)
item.forward(size)
item.left(random.randrange(-180, 180))

wn.tracer(False)
for iteration in range(3):
for item in turtles:
item.penup()
item.goto(random.randrange(-w,w),random.randrange(-h,h))
item.color(random.randrange(0,255)/255.,random.randrange(0,255)/255.,random.randrange(0,255)/255.)
item.pendown()
wn.tracer(False)
for move in range(2500):
for item in turtles:
item.speed(0)
square(item,random.randrange(5,25))
wn.tracer(True)

wn.exitonclick()

Screen Shot 2016-03-31 at 02.51.34

Screen Shot 2016-03-31 at 02.54.57

Using CodeBug tethered via USB on a MacBook

It has been a few weeks since our CodeBugs arrived here in Milan and after playing around with some of the sample programs and thinking about their features I have decided to use these with next session’s Year 10 students as an introduction to the iGCSE Computer Science course in September.

While they worked really well with the Raspberry Pi I struggled to get the CodeBugs working with IDLE on the MacBook. Installing packages via Terminal updated the Python 2.7 install that comes with the OS and – for me anyway – Homebrew complicated what should have been a very easy process. In Visual Studio if you wanted to use a module library you simply added it to the project and IDLE does not have this function.

I found PyCharm today – an IDE for Python that allows me to add the codebug_tether module (and any others I need) with the minimum of fuss. Now my CodeBug can be programmed while connected via USB to my MacBook! As an added bonus I learned more about Virtual Environments.

IMAG1237

To make it easier for my students to get going with their CodeBugs in September I created a 20-step guide linked here. It’s CC0 so please feel free to use and adapt as required. If you find any mistakes or it just doesn’t work for you in the same way please let me know.

Inspiration from “The ON House” Milano #thisismyclassroom

I was lucky enough to find out about this house through a parent of the school and visited it today. The ON House has been created by Simontech to demonstrate the various home and office automation products that they sell and how they can be integrated together via an overarching web app.

As you might remember from previous blog posts I am gathering inspiration, student wish lists and researching classroom design in order to develop a classroom with a clear Computer Science identity and purpose. In short I want a classroom that can be customised to suit particular learning and teaching tasks but also become integrated into the lessons I teach.

I plan to take some of my students there so they can also gain an insight into what is possible with current technology. What I particularly liked about The ON House was that the technology was not obvious or overwhelming however the integration of the technology made the house more accessible and customisable.

During the visit I thought about how some of the technology could be integrated into a Computer Science classroom. For example the ambient lighting presets could be used to indicate and suit different learning activities. Programmable colour changing LEDs in the ceiling or floor could also be accessed directly by students in their programming lessons. I think there would have to be a way of allowing access to these lights during lesson so that my classroom did not become a disco when a student got home!

The ability to change the machines that were displayed on the short throw projector via an app would also be very useful in class. At my previous school a custom SMART panel was used to switch sources which meant that any changes required software updates from the company. It also meant that if the panel broke – it cost a lot to fix it and rendered the AV unit useless. Multi-platform applications that perform the same function as a custom panel would, I think, allow changes in the future to be made much more easily. Also replacing an android tablet or iPad mini would be much cheaper than a custom SMART panel.

Simontech also explained that access levels can be set within their system and I think that this could be fantastic for lesson preparation. If you have the lighting, AV, etc. set appropriately for a particular task or topic you can quickly save this as a preset at the end of a lesson and recall that preset the next time the class comes in leaving you free to start the lesson without fiddling with the technology.

There were other interesting components built into The ON House including electric privacy glass. On returning to school I trawled YouTube for a while and found a great short video showing this in action.

In the video you can see that when the glass is set to white you can project on the surface and, if you think it’s useful, add a touch screen too. This could allow you to open out a classroom with few windows so that more natural light was let in and also function as a display space.

Another aspect they discussed was security. In their kitchen demo they showed that their app could prevent doors into other rooms as well as individual cupboards and drawers from opening depending on the preset.

I have linked a few videos and articles about the ON house below so you can find out more about it. If you are in the Milan area and would like to visit it you can send an email to theonhouse@simontech.it or phone +39 02 40043548.

Clean slate classroom: What would you do?

image

I’m thinking about classroom design this evening.

My current classroom is suitable for any subject area – as long as there are less than 12 students. I’m considering how to make it stand out as a Computer Science and STEM classroom while still retaining practicality and space to move!

I’ve thought about my movement in the current classroom, what irritates me about current organisation that -if changed- will have a positive impact on my classes, my desire to amalgamate the classroom and STEM club (currently two floors apart) and how the room should be primarily a place for students to learn, but also a place that promotes the subject to visitors.

The current STEM room has desktop monitors that I have moved into the classroom in the past (two floors apart remember?). These dominate the layout and take up a lot of space when not being used so I am interested in trialling some HDMIPi screens which can be stored away when not in use.

I also want it to be a fun environment where students can interact or change some of the elements. Ideas for this include an interactive electronics wall where elements can be added or removed to change how it works, multi coloured dry erase vinyl stickers that can be placed on walls and desks, and easy access computing kits that are in magnetic containers stuck to a themed wall. I want to maximise what students can do in lessons while minimising the daily prep required to get the room ready and then reset.

Not included in the sketches are alternative seating or the location of the tall benches.

Nothing is to scale. Comments and suggestions would be lovely!

image

Full STEAM ahead!

Full STEAM ahead!

It’s late. I’ll not apologise for that title.

IMAG0337

After rediscovering the missing Raspberry Pi SD cards (lets put their reappearance down to pixies) I was back on track to start the STEAM club in my High School today. My colleague had already successfully started his club with younger students a few weeks before and the Kano kits, Lego Mindstorms and drones were going down a storm.

IMAG0580

Our space is a reclaimed dormitory in the top floor of the school. It currently has five desks, four Kano kits and lots of my imported Raspberry Pi goodies. The students spent today setting up their Kanos and exploring the gamified Kano OS. I did wonder if the High School students would consider the system a bit young for them, but I had no reason to worry, they loved it and spent a long time extending the python Snake Game and then coding different objects in Minecraft.

Screen Shot 2015-10-15 at 22.29.22

In the coming weeks we will begin to use TinkerCad to learn about 3D modelling and design with the intention of creating prototypes on the wonderful Ultimaker 2 3D printer and (if possible) importing some of their models into Minecraft. We are also going to visit the new Makerspace at Museo Scienza to gain inspiration for customising our own workspace. I’d like to explore WeMake too…

We would love to link with other school Makerspaces or STEAM / STEM clubs around the world. Please post your details in the comments and we’ll be in touch!