XModus Learning

Computer Science and Play-Based Learning for Kids

 


Minecraft Adventures

Using the popular Minecraft video game kids work together in teams to solve puzzles and complete adventures with their teammates. Each class presents the kids with a different problem such as: math and economics in Farm Craft, team-based puzzles during the hunt for the Golden Pyramid and rescuing the missing scientists during the Island Rescue. Kids are challenged each class to interact with each other and encouraged to be creative, ask questions and help each other through the tasks. This is not kids sitting alone playing Minecraft, these are custom crafted adventures where kids work together to explore new ideas, make new friends, and solve problems.

Ages 8+

Computer Requirements:

Register Now >

Minecraft FAQ:

What are the age groups for Minecraft?

  • Ages 8+ - for students 8+

What if my kid is younger than 8?
Sign them up next year. I am always willing to consider students on a case-by-case basis but don't want students to have a poor first experience simply because of their age. I have settled on 8-years old as my starting age for the program because of the complexities of the adventures and my experience working with students as young as 5. This is not kids freely building a house, this is kids working in teams to solve puzzles and that involves communication and teamwork.

Can they play this on their iPad?
No. Students require the Desktop Edition (Java Edition) of Minecraft on a Windows or Mac computer.



 

Python Programming with Turtle Graphics

Python Programming with Turtle Graphics introduces students to the fundamentals of Python programming: variables, loops, conditionals (if-then-statements), and functions using a digital turtle. Students will interact with and control their digital turtles through a series of turtle commands to create unique drawings, characters, and even animated scenes. Each class will focus on revisiting existing knowledge, introducing new concepts, and supporting students as they explore their own projects in groups. By the end of the course, students will have created Python programs to create their own images, scenes, and ideas using the turtles.

No prior programming experience is expected or required.

Ages 9+

Computer Requirements:

Register Now >

What if my child is younger than 9?
Sign them up next year. I am always willing to consider students on a case-by-case basis but I don't want students to have a poor first experience simply because of their age. I have settled on 9-years old as my starting age for the program because of the typing and reading required.

Is this step-by-step or choose-your-own-adventure?
It's a bit of both. The goal of the course is to introduce students to the fundamental building blocks of computer programming in an environment where they can explore their own ideas. To do this, basic constructs and ideas are introduced and then we work through examples together as a group to demonstrate how they work and to arrive at a working example that they can refer back to. Then, students are given challenges to try or freedom to work on their own creations using the techniques they have learned in the class. The goal is to provide guided instruction while they explore their own projects and ideas.

Can they do this on their iPad?
Yes, the code will work on a web-based version of the development environment, but we work on laptops with a more complete programming tool in the class. All code will be available from our website.



 

Python Game Programming (World of Py)

Come learn how to program using Python. Follow an instructor as they lead you step-by-step through each new concept and then put your new skills to the test by completing a programming challenge using your new skills. Once you've mastered the new concepts go crazy and modify and extend your code both in class and at home.

In this class we will be building a game called, "World of Py", a 2D tile-based platformer. World of Py has been described by students as a mix between Minecraft (although in 2D), Terraria, and Mario Maker. For returning students, we will continue where you left off but instead of the 'books' (ask your kids), I will be making a series of videos that you can follow during the class. As always the goal is to build a game with the support of a teacher.

Ages 9+

Computer Requirements:

Register Now >

Python Programming FAQ:

My kid has taken this before, which class do I choose?
Returning students can sign up for any class. This term I will be introducing video versions of the book chapters that the kids have used before. This will allow the students to move at their own pace but have me in the 'room' to get help from. I've also been working with students using the Zoom breakout rooms so they can pair up with a partner within the class but still have me available for questions.

What if my kid is younger than 9?
Sign them up next year. I am always willing to consider students on a case-by-case basis but don't want students to have a poor first experience simply because of their age. I have settled on 9-years old as my starting age for the program because of the typing and reading required.

Can they make their own graphics and sounds?
Yes. The game is completely customizable including the tiles, the players, the background, and the sounds. Because of the transition online students will be building their games on their computers and so they are welcome (and encouraged) to make it their own. That said, I encourage them to work on their code during the class and their graphics and sounds when their code is done. This allows them to continue to progress while still making the game their own.

Can they do this on their iPad?
No. Unfortunately, the tools we use are only available on Windows and Mac computers.



 

Python Game Design & Programming (Battleship)

In this course, we will design and build the classic board game Battleship in Python. We will focus on how to build the game from concept to individual steps and then work to implement them using Python code. This course will focus on breaking the problem down into smaller steps that we can solve to achieve the bigger task of a complete game. Classes will cover the necessary Python code for each step, but students will be encouraged and supported to create their own version of each step with assistance from the instructor and their classmates based on provided partially complete examples and sample code.

Students are expected to have done some programming in the past, including block-based (e.g., Scratch, Thunkable), or a text-based language (e.g., Python, JavaScript), but all code and concepts necessary for the course will be covered in class.

Ages 11 - 14

Computer Requirements:

Register Now >

Python Game Design & Programming FAQ:

My kid has not taken Python classes with you before, can they take this class?
It depends. If you kid is interesting in programming and has already taken a programming course before using either a text-based language like Python or JavaScript or block-based like Scratch, then they are welcome to try this course as a step towards creating their own programs. This class is for students who want to move beyond just following example code and who want to try and build their own games or programs.

What if my kid is younger than 11?
I am always willing to consider students on a case-by-case basis but I don't want students to have a poor experience simply because of their age. I have settled on 11-years old as my starting age for the program because of the typing and reading required. One exception is students who have taken my Python classes before and completed all or most of the World of Py course.

What if my kid is older than 14?
I'm comfortable having older students in the class. I set the age 14 so students are aware of the age of the other students in the class.

Can they do this on their iPad?
No. Unfortunately, the tools we use are only available on Windows, Mac, and Linux computers.



 

Media Computing with Python

In this course, we will learn the bits and bytes of digital images and sounds and then take them apart and modify them using Python. After completing this course students will know how to use Python to manipulate images and sound. Classes will cover the necessary Python code for each step, but students will be encourages and supported to find their own solutions to each challenge. Students are not expected to have any previous Python experience, but those with previous experience will be encouraged to explore the problems more deeply.

This course is based on a program first offered at Georgia Tech in 2004. That course was created for students who were not in computer science but who were required to take a computer programming class. That school found that students who were interested in programming but who didn't have any previous background were not always interested in just learning programming for its own sake so they created a 'media computing' course to appeal to non-computer science students. I have taken the basic concept of manipulating media (images and sounds) and modified it to be age-appropriate for middle-school and older students.

Ages 11 - 14

During the course students will learn how to write Python code to:

  • Read and write digital images (.png, .jpg).
  • Create filter functions to change image pixels.
  • Transform images: scale and rotate.
  • Read, write, and play audio files (.wav)
  • Modify audio file data.

Computer Requirements:

Register Now >

Media Computing with Python FAQ:

My kid has not taken Python classes with you before, can they take this class?
Yes, this course is an introduction to Python programming with a focus on manipulating images and sounds using Python. This course will introduce the necessary Python concepts (variables, conditionals, loops, and functions) each week, as necessary. We will then apply each concept with hands-on manipulations.

What if my kid is younger than 11?
I am always willing to consider students on a case-by-case basis but I don't want students to have a poor experience simply because of their age. I have settled on 11-years old as my starting age for the program because of the typing and reading required. One exception is students who have taken my Python classes before and completed all or most of the World of Py course.

What if my kid is older than 14?
I'm comfortable having older students in the class. I set the age 14 so students are aware of the age of the other students in the class.

Can they do this on their iPad?
No. Unfortunately, the tools we use are only available on Windows, Mac, and Linux computers.



 

Secret Ciphers (ECS)

As part of our in-class Elementary Computer Science courses, Hacking Secret Ciphers introduces students to the problem of sending a secure (secret) message and then challenges them to write a computer program to encrypt and decrypt these messages. Students start by learning to conduct the process by hand, then proceed to using mathematics and then learn the process to convert their manual steps into a computer program using Python. By the end of the week they will have a fully functional Python program that is capable of encrypting and decrypting secret messages. Once they have their own programs they will be challenged to try and crack a series of secret messages by using and modifying their existing program. We wrap up the class with a discussion of alternative algorithms to try and follow-on tasks they can do if they wish to continue learning computer science and programming.

Ages 9+

During the course students will learn how to:

  • Learn a substitution cipher and use a cipher wheel.
  • Use modular-arithmetic in place of a cipher wheel.
  • Convert their steps into a computer program using Python.
  • Test and debug their Python program.
  • Brute-force crack their ciphers using Python.

Computer Requirements:

Register Now >



 

Signals & Codes (ECS)

Signals & Codes introduces students to the technologies that underpin the Internet by taking them back in time to the 1830s and presenting them with the challenge of transmitting messages over telegraph lines. Students start by manually encoding and transmitting messages to each other and then proceed to using mathematics and probability theory to craft shorter and faster messages. Led by the instructor students will write computer programs using the Python programming language capable of creating, sending and decoding messages.

Ages 9+

During the course students will learn about:

  • Information Theory
  • Binary Code
  • Morse Code
  • Hamming Codes
  • Frequency Analysis

Computer Requirements:

Register Now >



 

Mobile App Development with Thunkable

In this class we will learn how to create a mobile app using Thunkable, a block-based programming environment Thunkable that runs on iOS and Android devices (as well as on the web). The class will cover creating a common 'cooking' app that will present a list of recipes and then the step-by-step instructions for creating the meal. Students can then use this example app to create their own app and get help during the class for their own project.The goal is for students to learn how to develop their own app by the end of the course.

Students who have a special interest in a topic, be it a science-fair project, hobby, or sport, can use this app and class as an opportunity to educate others about their topic by creating their own interest-focused version of the app.

Ages 11 - 14

Computer Requirements:

  • Windows, Mac, or Linux computer
  • Web Browser
  • Mobile Device (phone or table) (optional and only for testing)
  • Google or Thunkable account
  • Zoom

Register Now >

Mobile App Development with Thunkable FAQ:

Is this the same as Scratch?
It's similar, but not the same. Although Thunkable and Scratch are both block-based programming environments Scratch is focused on sprites and a stage whereas Thunkable is focused on building more general apps for mobile devices. For students who have experience with Scratch, the blocks will be similar, but not the same.

Is this the same as your SFU CoLab program or Technovation Girls Thunkable classes?
Similar in format, but it's all new material. This will be similar to my previous Thunkable programs run for the SFU CoLab program (Fall 2020) and the Technovation Girls program (January/February 2020 & 2021). If you participated in those classes, this will follow the same approach of introducing Thunkable by building a common app. However, we will be building an app focused on teaching the user about our topic of interest.

What if my kid is younger than 11?
I am always willing to consider students on a case-by-case basis but don't want students to have a poor first experience simply because of their age. I have settled on 11-years old as my starting age for the program because I want students to collaborate with each other in class and come with their own idea and topic to work on.

What if my kid is older than 14?
I'm comfortable having older students in the class. I set the age 14 so students are aware of the age of the other students in the class.

Will they make their own graphics and sounds?
Yes. Although the focus will be on the core mechanics of the app itself, students will be encouraged to create or find their own graphics and sounds for their app. The class is designed to be completely customizable by the students, including the graphics and sounds.

Can they do this on their iPad/tablet?
Yes, however note that I will be teaching using a Windows (or Mac) computer and we will be importing graphics from their computer (that I will supply).



 

Thunkable

Thunkable is a web-based block programming environment for building mobile apps for iOS and Android devices. I have used Thunkable with adults and kids to build apps and games and this term we will focus on building a mobile game.

Ages 9+

Computer Requirements:

  • Windows, Mac, or Linux computer
  • Web Browser
  • Mobile Device (phone or table) (optional and only for testing)
  • Google or Thunkable account
  • Zoom

Register Now >


Thunkable FAQ:

Is this the same as Scratch?
It's similar, but not the same. Although Thunkable and Scratch are both block-based programming environments Scratch is focused on sprites and a stage whereas Thunkable is focused on building more general apps for mobile devices. For students who have experience with Scratch, the blocks will be similar, but not the same.

Is this the same as the SFU CoLab program?
No. This will be similar to the SFU CoLab program that I taught in Fall 2020 but will be a different game. So, if you were part of the group who took the SFU class with me, this will be a new and different game.

What if my kid is younger than 9?
Sign them up next year. I am always willing to consider students on a case-by-case basis but don't want students to have a poor first experience simply because of their age. I have settled on 9-years old as my starting age for the program because of the typing and reading required.

Can they make their own graphics and sounds?
Yes. The game is completely customizable including the graphics and sounds. Because of the transition online students will be building their games on their computers and so they are welcome (and encouraged) to make it their own. That said, I encourage them to work on their code during the class and their graphics and sounds when their code is done. This allows them to continue to progress while still making the game their own.

Can they do this on their iPad/tablet?
Yes, however note that I will be teaching using a Windows (or Mac) computer and we will be importing graphics from their computer (that I will supply).

What is the difference between Thunkable 3:30 and Thunkable 4:30?
They are the same class, just one will be taught at 3:30 and one at 4:30.



 

Teenage Student Volunteers

Ages 13+

We are looking for teen volunteers for our after school Minecraft and Python programming classes at Bayview and General Gordon. Volunteers will lead groups of students in activities, provide ideas and assistance, and participate in the class activities. Volunteers will also experience being a big buddy and a role model in the class, while learning how to navigate Minecraft adventures or write Python code.

  • Bayview Elementary: Tuesdays; Jan 23, 30; Feb 6, 13, 20, 27; Mar 5, 12.
  • General Gordon Elementary: Thursday; Jan 25; Feb 1, 8, 15, 22, 29; Mar 7, 14.
  • Minecraft classes: 3:00 PM to 4:00 PM
  • Python classes: 4:00 PM to 5:00 PM.

Bayview Elementary is at Collingwood St. & West 7th Ave. General Gordon Elementary is at Bayswater St. & West 6th Ave.

What you will do (Minecraft):

  • Participate with the students in after-school Minecraft adventures.
  • Lead student teams during Minecraft adventures.
  • Help students build and test new Minecraft adventures.

What you will do (Python):

  • Participate with the students in Python programming lessons.
  • Write Python code and help students debug their programs.
  • No previous Python programming experience is required.

How to apply:
Contact Chris Kerslake via email chris@xmodus.com or phone (604) 721-0200.

Contact Us >

Volunteer FAQ:

Is this only open to teenagers?
Yes, you must be at least a teenager (thirteen or older) to volunteer. I am always willing to consider students on a case-by-case basis but volunteers are expected to interact with the class as a teacher-in-training and not a fellow student. Adults are welcome to volunteer as well.

Do I have to leave school early to arrive for 3:00 PM?
You are not expected (or required) to leave your school early to arrive for the 3:00 PM class. We realize that your school may not end until after 3:00 PM and so we'll expect to see you after 3:00 PM. If you can arrive early, that's great, but it's not required.

Do I get credit for volunteering?
Yes. Upon successfully completing at least one term as a volunteer, I am happy to provide a letter of reference to confirm you volunteered and what role you played.

Do I have to do both Minecraft and Python?
No, volunteers can do either one or both. Minecraft starts at 3:00 and runs until 4:00 while Python starts at 4:00 and runs until 5:00. No previous experience is required for either program.

Do I have to attend every class?
Ideally, yes, volunteers are expected to attend every class of the eight-week program.

Do I have to be a previous student?
No, you don't have to have been a previous student in the program. We're looking for volunteers who like working with kids, are interested in Minecraft and/or Python, and are willing to learn with us.

Do we get paid for this?
No, this is a volunteer opportunity only. If you are looking for a paid position, please contact us separately.