'Intro to programming' class

Last Monday was session #2 for the Introduction to programming class (with Python!) that I'm teaching in Tog.

The class was starting at 7pm and I freaked out a little when by 7.15 only 2 people from the week before had showed up, plus one brand new student (was I that bad?!) Thankfully people trickled down and although 3 people sent an excuse we had a nice group going by 7.30.

Exercises

I guess here, the fact that I like to start with exercises helped so that even people showing up a bit late wouldn't miss anything important and could simply start on the exercises as they came in. I like to give a few exercises about the concepts previously learnt, the idea being that everyone must solve at least one before we move on to a new concept, and people who finish early can do more of them instead of waiting. I realise it's kind of counter-intuitive to the usual way of teaching with exercises coming at the end instead, but I find it works well (with sessions lasting more than 1 hour in any case). It helps reinforce previously learnt concepts and for the students to refresh their minds. I don't really expect people to find the time to try exercises and practice coding in their own time (yet!) and it certainly didn't work with my high school students. Perhaps next week I will be proven wrong as people were asking for practice exercises as the class ended :)

Pace

We actually only had time to learn one new concept this time, the first loop. It was the same when I taught the teenagers before, and I thought it was because there had been 3 weeks between the first and second session, but we ended up doing roughly as much here. Perhaps my exercises take too long to do, or perhaps I take a while to go through, er, the "while" loop. I'm not too worried about it to be honest. This is the first exposure to many programming concepts, and the exercises using "if" and the rest are the first programs bigger than 3 lines (10 to 25 usually) that the students are writing. Of course it takes time.

A session lasts 2h30 this time. Unlike the kids the adults were not very good at reminding me to take breaks ;) I think after doing the initial exercises we were all eager to move on to learning something new, and then I kinda forgot to take a break. I was wrecked and nearly dizzy by 9.15, I suspect the students kinda felt the same. Must take a break around 8.20 next week. For both my sake and the students'! Perhaps after the exercises and after having a short overview/first taste of a new concept...

Preparing

For preparation, once again I mostly cannibalised and expanded on what I taught the first time :) I also changed the odd exercise, and removed a few references to high school. A new exercise was writing a fake GUI with a couple of options and it ended up being a killer and great fun! (Although the backslashes caused a couple of unfortunate escaping issues, I guess I'll make the character wave the other way around next time, at least!)

 ______________________________________
|                                     |
|         HELLO!                      |
|       /                             |
|    \O         Choose an             |
|     |\             option           |
|    / \                              |
|                                     |
|              a. Say hi              |
|              b. Say goodbye         |
|              c. Fortune cookie      |
|_____________________________________|

I remember last time, I thought I introduced 'random' too late considering how excited the students were after we transformed their program into a real game. Note to self: I think I may have introduced it too early this time! Probably after we add "hints" (too low/too high) to the game would be the best place to bring it up.

The students

Once again people are a lot more active. They ask questions, they describe their understanding until the point they're stuck and then ask for clarifications. If I'm not being clear at explaining something, they let me know. I really enjoy this. They also spontaneously explain things to each other and form groups, then explain to each other, ask and answer questions among themselves, copy and try to modify to understand ;) All of this is also great for me, I listen and learn new, different ways of explaining what I just taught.

Overall, the students look like they're having a lot of fun, and are happy to be learning new things and new ways of thinking! This is great, I was very happy to see that and at how well it went.

Stuff I want to watch out for

Like last time I taught this course, I notice people have a lot of trouble translating a problem into programming steps, even if they know all the programming pieces to solve it (e.g. add a limit to the number of guesses in a "Guess the number" game). It's normal since people are really just starting out, but I really want to do whatever I can to help address this as early as possible.

My plan will be to try to include some code reading, perhaps at the beginning of a session, hopefully starting next week. It has to be a clever and readable way of solving a problem, that won't take us too much time to go through but will ideally show a new way of using a concept we know or using it to solve a new kind of problem. For the simpler stuff I will likely have to write those snippets myself, I hope I can come up with something good involving while for Monday (I have family over this week-end as well, though).

Looking forward to next Monday!

Leave a comment

Oh, sweet! The Sugar learning environment

I did my talk in TOG tonight. I think it went quite well! I certainly got some positive feedback afterwards. Lots of room for improvements still, of course, many "um"s especially at the beginning, and it probably would have been better if I had rehearsed more, to remove the attachment to my notes for prompts when I got stuck, but otherwise it flowed well and people seemed clear and happy on what Sugar was, what it looks like and the type of learning it tries to encourage. Very nice audience, smallish and I knew most people! Many interesting questions, and having 4 laptops running Sugar (2 XOs with 0.82, 2 Eee with Mirabelle) for people to try out afterwards was a hit, I was delighted to see people rushing toward them and trying out all sorts of activities. (Delightful, noisy Tam Tam!)

The "Presentation Zen" style of presenting worked well too, I think, and I got a few questions about this and the pictures I used. I still need to practice more and become a stronger speaker to support this style better, though. (Motivated!)

Here are the presentation slides, for the curious. In true "Presentation Zen" style they are much less useful without me chatting in front of them, but you'll find most of the information I used for content on http://sugarlabs.org and http://wiki.sugarlabs.org ! :)

Leave a comment | 2 so far

Hackerspaces Week

There hasn't been much public info about it yet, but inspired by Cheryl's Hackerspace Week teaser I'm going to start speaking about it too! The first Irish Hackerspaces week will happen soon in August, from the 14th to 22nd, and I'll be talking about Sugar.

My talk will last about 30 minutes, in the evening of the 17th in Tog.

Come and learn about Sugar, the learning platform for children. Sugar offers an innovative desktop environment designed to encourage collaboration and critical thinking through Activities. Initially developed as part of the One Laptop Per Child project, Sugar is now community led and can run on any machine thanks to Sugar on a Stick.

There will be plenty of other interesting talks, workshops, demos and more... that I will happily link to once more information starts surfacing!

EDIT: It's alive! Full schedule of the week now available.

Leave a comment | 2 so far

Python course for beginners in Dublin

I finally started to put the whole organisational part in motion before going to GUADEC, and now I'm finally starting to publicise the course! I'm going to teach again my Python course, for adults this time, for people with no programming background. The course will start on August 23rd and last 5 weeks. More information about it on Tog's website!

Any question or query, please do not hesitate to contact me.

I wonder how teaching adults will differ from teaching teenagers... That should be very interesting (and scary, of course! :))

Leave a comment

Curious about git?

Curious about git (http://git-scm.com)? Drop by Tog on Sunday at 11am. I've been demoing the basics informally, we'll probably be looking at collaboration this Sunday. Very informal chat, though feel free to let me know if you intend on stopping by.

Leave a comment

Synchronous Hackathon

I attended for a couple of hours the Synchronous Hackathon in Tog today. I had vague plans on making progress with the Moodle plug-in, probably related to the unit testing / refactoring of the data crunching methods... Didn't happen, but I did find a new bug, which I managed to fix 10 minutes before my battery went down. Wince-worthy, a couple of global variables (ouch) not being cleared properly in various places, but still -- progress! I'm happy with the day, it was good fun. Now, to see if I can hook Geany saving function to a shell script I have to execute manually each time...

Leave a comment

Ubuntu-ie February 2010 talks In Limerick!

I went to Limerick this week-end to attend the SkyNet/Ubuntu talks. It was good fun, I enjoy so much walking around UL campus and corridors, basking in old memories of when I was just settling in Ireland and was learning so much, all the time :)

Picture of UL's wooden man sculpture

The first talk was mostly about selling up Microsoft cloud services, which felt a bit surreal for a mostly open-source audience. I suspect the organisers didn't highlight enough that this particular afternoon of talks was slanted toward Ubuntu and open-source in general, so we definitely weren't the best audience. It's very strange to hear that the cost of computing is coming down at last, then being told that no, it's impractical for businesses to try to switch to free alternatives like OpenOffice, while at the same time mentioning that there won't be any more compatibility issues between .doc and .docx since Microsoft is dropping support for Office 2003 and businesses are forced to upgrade to Office 2007. How does this match the necessity for companies to look at ways to reduce costs, or not being willing to look at compatible alternatives (since they already managed compatibility issues for .doc/.docx issues)?

The second talk was about Google Summer of Code, by the very dynamic Jimmy O'Regan. He insisted a lot on the importance and impact that having a designated mentor has on a new contributor. I'm struggling myself to get involved with open-source communities at the moment (as opposed to projects in themselves), so that's something that's very interesting to think about, and see if perhaps it could be adapted in a scalable way to lower the barrier to involvement for new contributors outside of GSoC.

Right before the lunch break, the folks from Tog had a talk on setting up your own hackerspace. I'm not sure at all we've ironed out all the issues with our own space in Dublin, but it'd certainly be very cool for other cities around Ireland to set up their own so we can all learn from each other's experience, within the Irish culture. I didn't know about the Hackerspaces design patterns, I definitely have some reading to do on that. The main point to take away from the talk IMO: "Try and work on the fun stuff." :)

Matt Zimmerman, CEO of Canonical, gave an interesting talk on the conflicts between managing a community and managing a company, where transparency sometimes is just not possible for legal reasons, and the lessons Canonical learnt and is learning along the way. They're still figuring out the best practices. I like the "anything that could be public, should be" policy, as opposed to the "anything that hasn't been explicitly okayed cannot be talked about" from most other companies. Canonical folks work to earn their commit rights like the rest of the community, they're not granted automatically. Canonical is not doing too bad for transparency because it's grown organically from people working from home so when they need to talk, they do it on Freenode publicly. That's interesting to me because I'm sure I read somewhere (can't remember where though) that one of the problems with the OLPC project was actually having offices, because whether or not you mean to you end up talking about projects, issues and decisions and it looks to the community as if you're working behind closed doors without involving them. 

Laura Cza talked about the Ubuntu community, all the ways to get involved and also everything that is going on in Ireland relating to Ubuntu and open-source events. I really look forward to the Free/Open/Global Jam in March! I was a bit spoiled for the talk as I had already read through the slides from the first version of the presentation a couple of weeks back :)

Finally the day ended with a talk on CouchDB, by a presenter who should win some sort of prize for very realistic impressions of heads exploding in the audience not only once but twice. I'm going to have to give a try to CouchDB soon. I probably need to hear a couple more talks about it before I really start getting my mind around the concepts and the "why and when should I use it" (till then I'm doing quite fine with my PostgreSQL adventures!).

Leave a comment