Where do you teach? What sort of school is it?I teach in Huntsville High School located in Huntsville Ontario (north of Toronto). Huntsville is a small town of around 18,000 and HHS contains under 1,000 students. The student population is fairly homogenous.
How did you get started teaching computer science?I was teaching at the elementary level when there was a posting for the library position at HHS. After applying I was offered the position but there was a twist. The computer science teacher had suddenly resigned and they knew I had experience with computer science and had worked as a computer consultant for the board so they asked if I would take on computer science as well. That first year there was only one course running with only eight students in it.
Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?This past year we've offered a combined ICS3C/4C course (Computer Programming grade 11 and 12 college bound) and ICS3U/4U (Computer Science grade 11 and 12 computer science). We also offered a Dual Credit course in web authoring (Dual Credit courses allow students to achieve a high school credit and a college credit).
ICS3C/4C used Visual Studio C#. The focus is primarily on programming skills where students develop specific skills (i.e. in the grade 12 creating a program to read an xml file) that they then incorporate into larger projects. Students negotiate there culminating projects where they have to demonstrate certain skills. This year we had video games (KFC Falling chicken was very fun to mark), music players for a student who works as a DJ and a program that was a web crawler.
ICS3U/4U used Visual Studio C++. These are much more intensive courses. By the end of grade 12 students are using Object Oriented Programming techniques. In addition to programming skills they are required to create and analysis different algorithms (i.e. sorting, searching), research emerging technologies etc.
I also run the First Robotics Team in our school. Students programmed the robot (as well as helped to build it). [ED: Ian is the one in the lower right of this picture of his schools FIRST Robotics Team.]
What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”
- Learn how to learn - one of my favourite projects I've used in the past is called Programming Primer - students pick a different programming language from what we are being taught in class and have to create a primer that someone could use to learn how to program. The programming language I used when I was a student at HHS (Watcom Basic) is simply not used anymore. This project shows them the similarities between languages and develops the independent skills to learn on their own.
- Fix it. I sometimes drive my students nuts - when they tell me their program has a problem I respond "then fix it". I partner students up with another student who has dealt with a similar problem and get them to help each other. I will only help when they have spent time working with another student first.
- Follow your passion. Students have the option to negotiate final projects. They are given a list of skills that they have to demonstrate (some students choose to do two projects since their project may not use all the skills). Doing a project for an actual client or based on their own interests really seems to connect. We had graduation the other day and I've already been in touch with students who want to take their projects to the next level since they can see they could actually sell it if they add certain features.
What is the biggest challenge in teaching CS at your school?Even though our school is facing declining enrollment (we had 1200 students six years ago and are now under 900) our cs courses have steadily increased enrollment each year (next year we will have three full courses compared to the 1 class of 8 students!) Unfortunately our ratio of female students is still very low. This past year one of my female students ran a great workshop for grade 8 girls using Alice. I have some plans for the upcoming year to continue to address this issue.
The other issue is that I'm the only teacher in our school and it is the only high school in town. Staying on top of best practices isn't easy.
What is administration’s support (or lack of support) like at your school?I had the benefit of spending a year as an acting vice-principal for my school. Having worked so closely with the admin team they have been very supportive.
How do you measure success for your program? For your students?Former grads are the best measure of success. The students who have gone on to study computer science have mentioned that their marks in computer science courses tend to be much higher than their other marks and they find it very easy. Enrollment numbers also indicate interest. I have a fairly large number of students who take all four of the ICS course and almost every student in the dual credit course have been in one of my other courses.
What is the one thing you like to talk about regarding your program that I haven’t already asked?I'm looking forward to adding the University of Waterloo Canadian Computing Competition to my course!
More About Ian on the Internet
- School name and web site: Huntsville High School http://hhs.tldsb.on.ca/
- Personal web site: http://www.tldsb.on.ca/schools/hhs/mct/
- Twitter: @ianmct
For a full list of interviews in this series please see CS Educator Interviews: The Index