Many K-12 CS teachers in Ontario are very familiar with the Don Mills Online Judge (dmoj.ca) site for students to practice their competitive coding skills. A recent book entitled Learn to Code (written be Daniel Zingaro – Associate Professor Teaching Stream at the University of Toronto) combines theory and practice. He explores coding problems in each chapter and then provides a list of similar challenges available on dmoj to further develop your skills
I have been using many of his referenced coding problems with my Grade 11 computer science students this year. These problems don’t include graphics or other Python extensions, but they provide a solid platform to develop introductory skills in the language. Students can extend their fun by explore Pygame Zero or other frameworks/libraries.
A group of Ontario educators and computing professionals are gathering this weekend to develop a proposal for the Ministry of Education to improve the state of K-12 computing education in the province.
I recently attended the annual EdTech conference (Bring IT Together) and attended an excellent session called “What might coding look like in secondary classrooms?“. It was an excellent topic and there was lots of discussions throughout the room about how computing technology and coding could enhance learning in the in the classroom. Kendra Spira shared many different examples from English and Science classrooms.
Kendra shared how her school board discovered that coding could be an effective tool for exploring Innovation, Creativity & Entrepreneurship competency within the Global Competency framework.
The Global Competencies identified include:
innovation, creativity and entrepreneurship
As a Computer Science and Computer Engineering teacher I would add that all of the competencies can be explored through computer science and coding either as an elective dedicated to exploring how digital/computing systems work or integrated into other subjects as a learning extension opportunity.
As Tim Bell explains, in his excellent paper entitled “Computer Science in K-12 Eucation: The Big Picture“, “A key goal … should be to help students find out if it (computer science/coding) is something that they might be passionate about, and to give them a vission of waht they might do with the wide possibilities that skill in computer science and programming can open up.”. He continues to clarify that programming is a skill that supports problem solving and creativity and like any skill it is important to have some early success, but to build fluency it takes many hours of experience. Learing to code in an hour, a day, or even a month is not realistic. Did anyone learn how to play the piano or ride a bicycle so quickly? I think not.
Both dedicated Computer Science teachers or subject teachers integrating coding should focus on establishing early success and focus on the problem solving and creativity of coding. The dedicated CS teachers in high school can then focus on building student compentency levels as the explore the breadth of CS including algorithm analsysis, communication skills, logical reasoning. Teachers can gradually release additional autonomy to students as they advance their skills and introduce students to competitive coding or IT industry professionals or academic institutions leading CS research such as Machine Learning and other technologies.
On a final note the Bring IT Together conference opening keynote by Dave Cormier was excllent. At one point he explained that there is a digital skills gap in North America with more computing jobs available than qualified candidates. This should not be the reason to bring coding into K-12 classrooms. There are so many other reasons as I discussed early in this post. As I had discussions with other teachers following his keynote teachers commented that they were shocked that he stated we shoulding be encouraging coding in schools. I explained my interpretation was that the focus should be on using coding for extended learning opportunities for problem solving and/or creative expression.