Simple musings, thoughts and ideas on educational technology, tech integration in the classroom and tech coaching . . . from my journey as a tech coach, computer science teacher and international educator.

Saturday, February 13, 2016

Computer Science/Computational Thinking Across the IB Programmes

I have been away from TechXcursions for a little while . . . well, a few months actually.  So it's nice to carve out some time to write some things down.  It's been rather busy the last few months with being on the recruiting hamster wheel + roller coaster ride, plus adapting to my new role as a Co-Director of Digital Learning (with its accompanying shared leadership role, which is a work in progress - that's another posting that I need to reflect on in the near future), and working on the recent IB Diploma combined CS and ITGS curriculum review in The Hague last month.  The external curriculum review is where I got thinking about the worldwide Computer Science/Programming movement and how it fits into the IB Programmes - PYP, MYP, DP, and even CP.

I don't think anyone would argue that there is global interest in incorporating programming into K-12 schools.  Some US school districts and states are developing their own curriculums or mandating programs that reach down into Kindergarten classes.  President Obama just announced a $4 billion USD program to bring "coding" to US schools over the next few years.  Some other countries are ahead of the US and have been working on these kinds of programs for a number of years, including the UK, New Zealand, Australia, Finland, and Canada.  The US movement has garnered a lot of press recently through the third year of the Hour of Code and Obama throwing a lot of money at the problem of the disparity between CS graduation rates and the job market.  The ball is rolling and CS is moving forward, so how do IB world schools get involved?



For the recent curriculum review, this is precisely what I was asked to consider and present my views to the international committee.  Such a big topic was intimidating at first, so I let it sit in the back of my mind and percolate.  Well, that approach didn't entirely work as I really struggled with how to approach and present this important topic.  I ended up writing down what I wanted to say on the flight to Amsterdam, but I still wasn't happy with it.  After talking over the presentations with a friend over dinner (thanks Pilar), things became much clearer for me.  I ended up scrapping most of what I was going to do for the presentation, and rewriting it late that night.  In the end, I no longer had a KeyNote presentation or any visuals, just a whole lot of things to say and connections to be made.  Here is (generally speaking, as there are some things from the curriculum review that I am not permitted to talk about) what I presented . . . 

  • given the world wide movement to implement computer science or computer programming or computational thinking or coding in K-12 schools, there is an obvious need to address how CS/CT can be delivered in the IB programs
  • from here onwards, where I refer to CS I am essentially taking about Computer Science (CS) and Computational Thinking (CT), which is the broader but more unfamiliar term
  • in the Teaching and Learning with Technology Guide (published through the OCC in December 2015) technology is considered as a literacy, and fits into the IB philosophy of multi-literacies; full disclosure here - I worked on the guide with Pilar, so I am pretty close to it and I do want to see it used by IB schools (it really is useful for getting teachers to think more broadly about educational technology in their classrooms at all grade levels)
  • just like "we are all language teachers", now we also have to consider that "we are all technology teachers"
  • if we consider computer science or computational thinking across the IB Continuum, both are inherently tied to all three aspects of the AID lens - Agency, Information (or Insight), and Design (from the Teaching and Learning with Technology Guide)
The AID lens - from 

  • CS/CT is an essential component of technology literacy, which people are now realising (I believe this is one of the driving forces behind the worldwide programming movement)
  • many K-12 schools have moved to 1:1 laptop programs and have adopted an integrated approach to teaching technology skills, so there are no longer any specific tech-related courses that all students take, particularly in the elementary grades
  • embedding CS into each of IB programmes can be done through the application of the AID lens to existing school programs/units of inquiry/projects/lessons, which in turn means integrating and embedding CS concepts into existing curriculum . . . but how and when do we do that?
  • right now, there is a consortium which is working to develop a CS framework to guide schools to bring computer science and computational thinking into K-12 schools
  • this work has already begun, and is being driven by the Association of Computing Machinery ACM, the Computer Science Teachers Association CSTA, and by Code.org (who have brought us the Hour of Code and is connected to industry)
  • K12CS.org hopes to have standards and a framework released by summer 2016, which can be adopted and used by schools, with exit computing standards for grades 2, 5, 8, 12 (these do not fit very well with the PYP, MYP and DP programmes but this work will be important to watch and connect with)

I think the keys to bringing in K-12 Computer Science and Computational Thinking concepts into the IB Programmes, hinges on three factors:
1) awareness/exposure with CS/CT principles to teachers - many teachers (especially of the younger grades) believe that programming is only for older students and is beyond their teaching ability and the capability of their students; essentially they are afraid of it; this is beginning to change with movements such as the Hour of Code and national or state computing programs that are being developed that reach down to Kindergarten - as these gain traction and attention, more and more teachers will be exposed to computational thinking concepts; computational thinking is the broader term that includes programming and computer science, as well as other thinking models such as algorithmic thinking, logical thinking and procedural thinking; what a lot of people do not realise is how the principles of computational thinking can be applied and used in all areas and disciplines of study
2) a framework such as what K12CS.org is developing, can be adopted and moulded to fit into existing programs and curriculum, and used to guide teachers at all grade levels; it is not about creating and adding in a new curriculum for computing; the approach has to be to embed CS principles into the existing curriculum by teaching topics/lessons/units of inquiry in different ways and using different approaches, but to reach the same learning objectives

For example, in the PYP, imagine you are working on a Unit of Inquiry which has to do with the environment and weather; as part of the unit you are considering what happens in winter and how snow is formed; you could engage students with exploring the geometry of snow flakes, using the Frozen tutorial from the Hour of Code, while at the same time they are working on algorithmic thinking, angles and geometry, exploring looping structures, programming and problem solving; I would much rather have students explore creating mathematically correct snowflakes of their own design through the Frozen princesses, then cutting out geometrically incorrect square snowflakes from paper to stick in the windows . . . we have all seen these, right?
 
3) training and education - being exposed to CS/CT concepts and having a framework as a guide is not enough, teachers need to be trained in how to integrate and embed these concepts into their classroom and current programs; perhaps this can be introduced into Level 2-3 IB trainings or specialized CS/CT integration workshops can be developed?  for schools with integrated technology programs, it would fall on the tech integrator/coach, or curriculum coordinator, or team leader to be well versed in computational thinking concepts so that they can guide and connect these concepts with the existing curriculum

So what would this look like across the IB Programs?
  • in the PYP, CS/CT has to be integrated into the existing units of inquiry and the existing curriculum at schools; perhaps this is best done through hands-on digital tools (like Scratch), robotics, maker spaces, and online interactive tutorials (like the Frozen princesses)
  • in the MYP, programming skills can be developed through the Design course and further developed by continuing to embed/integrate CT concepts into the core course areas; broader CS/CT concepts could perhaps be integrated into multidisciplinary projects or explored in depth through the Personal Project; furthermore, a pathway to connect CS development through Design to feed into the Diploma CS course needs to be articulated; back in the days of MYP CT and DT, I did just that by creating a CS rich option in G10 for students which fed into CS (my CS classes tripled the next year and had a number of girls in it, whereas I had only 1 girl complete AP/IB CS in the previous decade - creating pathways really does work)
  • in the DP, we of course already have Computer Science; my personal opinion is that the current course is too broad and shallow, and allows schools/students to take the course but do very little programming, which is the heart of CS, and it does not resemble what is done in first year university CS courses; 
  • to address this problem in DP CS (which I have written about before here and here), if I were in charge I would do the following:
A) move CS back to the Mathematics group, and have schools offer it as a second math course (as it does not fit with both the Nature of Science and Design) OR keep it in Sciences and develop the Nature of Computing/Programming OR change it into a multidisciplinary subject spanning groups 4-5 as CS has always suffered from being scheduled against group 6 subjects (not sure if this solution would help at all though as CS would still be competing against the Arts and students taking two Sciences/Humanities courses for enrolment numbers) 
B) revert the CS syllabus back to be focussed on programming and using a prescribed language or two (much like what APCS has maintained over the years with Java) 
C) combine the IA and Case Study (or just the Case Study) to work with and expand upon a given large scale program, plus allow students to work in small groups/teams and figure out new ways to assess this kind of project; furthermore, "pairs programming" and other group projects should be encouraged for classwork over the two year course

  • lastly, in the Careers Program I believe the courses in the DP would guide what this looks like and the options available; students taking a new programming-centric CS course like what I suggest above, would be better suited to completing work terms in industry; work placements in industry in some parts of the world or for some international school students would be very challenging if not impossible though; back home in Canada, we had a G10 work experience program and my most successful placements were with EA Sports, Digipen (school for computer animation and game programming) and Nintendo (through Digipen); this program in turn helped my students move into university CS programs or take two year certifications more directly aligned with their passions and interests - this is what we want isn't it?  
I think there is a roadmap in here for how IB world schools can engage with Computer Science and Computational Thinking from K-12.  I am going to start working on this now, as we are in the process of applying for PYP and MYP.  What do you think?  Are you an IB school with all three programs?  How are you engaging with the programming movement?