Diagnostic Questions for Computer Science #DQ #CompSci

With my classes on exam leave or preparing for their end of year assessments I have been teaching a variety of revision sessions and lessons recently. While I feel it is valuable to prepare students with exam style or past paper questions, time management strategies, peer review of answers I realised we hadn’t reexamined student thought processes with particular focus on programming and problem solving questions.

The weekly #CASchat on Twitter reminded me of www.diagnosticquestions.com. I had investigated it before prior to mock exams  in January but hadn’t used it with my classes. The reminder was perfectly timed as I had just interviewed students about the areas of the course covered so far that they felt less confident about. I had my focus areas and a purpose for use of diagnostic questioning.


I curated a mixture of pre-created questions from the Computing topic into quizzes and allocated them to classes. It was very easy to build the quizzes and set up the classes. Students joined the class using a code which I shared via email.

DQ shows the selected questions and accepts a single multiple choice answer from each student, however it then asks the students to explain the reasoning behind their chosen answer. This can allow the teacher to uncover and address misconceptions or gaps in learning. I wasn’t sure what the students would make of this but, after a few sample questions to get used to the system and my expectations they, in the main, worked their socks off to explain to me why they chose one answer over another. The results sorted the questions into order of most commonly answered incorrectly so I could highlight the correct answer with a small group or as a whole class discussion.


At the end of each class today I asked the students how the site compared to for example Kahoot!, and I fully expected to be told that the other multiple choice revision tools were more exciting or interesting. However almost every student loved DQ and requested more sets of questions do they could continue to review and improve their own learning! The fact that you could see peer explanations (even from other students around the world) gave my classes another viewpoint with which to deepen their understanding of a topic.


The site has its glitches of course: the convoluted way to de-select quiz questions is a particular highlight. As is the lack of ability to create your own scheme of work for your subject area.


However it is so easy for teachers to create their own content (I made two PowerPoint templates for my IGCSE and IB question sets in around 10 mins and import the individual slides as images into DQ) I now fully intend to use it regularly throughout the year and track student understanding not only across topics but also across year groups and courses. It has definitely become another useful tool in my Flipped Classroom box.

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!

Using @EdPuzzle for the first time #flipclass #flipchat

EdPuzzle is not a new site to me, however I’ve never had the time to sit down and investigate it properly. I got the opportunity today as the rain made an overdue visit to Milan.

My Year 10 Computer Science students are revisiting the Python language and I gauged their knowledge during class last week. As they all selected similar problems to solve I decided to share my solutions via video and take advantage of the embedded questioning offered by EdPuzzle.

I had intended to link to the finished EdPuzzle from a Google Form and then mark student submissions using Flubaroo however I was happy to see that EdPuzzle linked to Google Classroom and recorded student results and progress for me.

I’ve attached a quick video walkthrough of one of the tasks below, in case you want to see how it works. I think that next time I’ll make one video so that students do not have two tasks to complete but would appreciate any other feedback or suggestions!

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

#PayItForward Creative Commons and Digital Citizenship

My year 9 students have been learning about copyright, public domain and creative commons in recent weeks and I wanted to give them a task that had value.

22784077070_67d0bf1f4e_z
by Ludovica PB (BY-NC-ND)

I asked them to create images – photographs or drawings – that they would like to share freely on the Internet under a Creative Commons licence.

Their work is below. Please feel free to use any of the images for non-commercial purposes as long as due credit is given.

https://flic.kr/s/aHskpat2c3

Please let me know in the comments below if you have a similar initiative at your school!

Hour of Code Around the World (Event) #edchat #ukedchat #aussieED

code-944499_1280

After some discussion with a friend and former colleague (and some thinking over a few coffees) I was inspired to post a short tweet yesterday:

Screen Shot 2015-11-07 at 10.02.02

My aim is to get a small number of schools involved in a Google Hangout on Friday 11th December, code together and learn a little about how Computer Science is taught in schools in different parts of the world.

Even if timezones prevent schools from taking part in the Google Hangout there is still a chance to take part.

Interested in finding out more? Send me a tweet @familysimpson.

Programming on an iPad #compSci #RGCdevicetrial

At the start of the #RGCdevicetrial I was very cynical about the effectiveness of iPads in education. I did not think they were suitable for use in secondary school classrooms. I saw them as content consumption devices, tailored for personal use only, and an expensive gimmick destined to gather dust in a department store cupboard (much like the iPod touch devices bought en-masse a few years ago).

I’m happy to state that I was wrong. For me, the iPad is a very strong contender for not only becoming the device of choice at our school but for eventually replacing desktop PCs in the Computing classroom too.

Like many others I thought it wasn’t possible to program on the iPad. I’d heard about Scratch being removed from the App Store and, whilst working on a successful Internet Safety project at Inverurie Academy in 2011, had fought a battle of wits with XCode to create and install a series of simple apps on the aforementioned iPod touch devices. I didn’t want to rely on having a spare Macbook sitting around for pupils to code on, in a language that was fairly impenetrable, just to be able to use the iPad in a Computing Science classroom.

However, after speaking to Fraser Speirs at a SCIS event in Edinburgh a few weeks ago, I realised that it was possible. He told me about Pythonista, which allows you to create command-line or graphical programs straight on the iPad. Fraser also told me that he pays for processing time on Amazon servers and gets students to upload code from their iPads and execute it remotely. The extra benefit of this, he says, is that his pupils have access to the same programming environment regardless of their location. It allows them to continue coding at home on a task they may have started in school.

For early stage programmers one app that helps build coding foundations through sequential instructions is A.L.E.X. I downloaded it whilst setting up the iPad for the #RGCdevicetrial and accidentally syncronised it with the iPad Mini which was being used by the ICT specialist in our primary school. She loved the app so I gave it a go last week while learning more about how an iPad mirrors to a data projector using Apple TV. There were young pupils in the playground outside with their noses against the window as they watched the robot move through the levels.

This morning I spotted a retweet by Dawn Halybone and had to investigate further:

20130313-231307.jpg

Snap! is a web-based drag and drop programming language developed at Berkeley. Very similar to Scratch, you create programs by associating scripts with sprites on a stage. It runs through a browser so you have to be online to use it however it looks very stable on the iPad. Even though the most recent Scratch beta is also web-based, it does not work with the iPad due to the fact it needs Adobe Flash to play content. I wasn’t even able to access the code screen on the site so, for the moment anyway, Snap seems to be the only option.

Do you know of any other apps or websites that allow programming on the iPad? Please share!