Hot off presses in the September 2023 issue of TESOL Connections!
At the end of the school year, my friend and colleague Katie Miller and I were approached by TESOL Connections to write a piece based on our TESOL Int’l Portland presentation Try, Fail, Succeed, Repeat: Taking Risks in STEM.
It’s my first publication since grad school and first ever co-authored. It was a dream to write with Katie. Here’s to firsts! It’s amazing how words and ideas pull together cohesive when you have first hand knowledge, experience, and excitement!
Whether on the recess playground or behind a controller playing Mario Cart, racing is as old as time and every human has experience in this game, making it a natural extension for a first foray into competitive Game Design with CS First for Google, Racing Game!
Support students with a physical copy of lesson 2 in CS First for Google’s Game Design Solution Sheets. It breaks down the steps visually and incrementally, providing a reference for the process.
Students learn how to code characters to move in 3 directions: left, right, and forward using 3 keys. Character 1 is an elephant, and the student codes the elephant to move with pressing the up, right, and left arrow keys in game play. Character 2 is an lion, and the student codes the W, A, and D keys to control the character in game play.
They learn to rotate by experimenting with degrees (the language of math), and have the opportunity to input different values to adjust their character’s movement. The CS First tutorial video leads them into the very basics, where they encounter a pit stop–inefficiency. The lion moves clunky. Then in the next value, they fix the inefficiency and code the character to move more smoothly. This experience that CS First provides–first a basic code then a refinement to the code to improve it–is an planted learning experience. How often does an app on your phone work, but then there’s an update? The update results in a minor adjustment that makes for an overall better experience for the user. They experience the work of a computer programmer, with guidance, here in this sequence. How does this benefit students as English learners? Language can be rudimentary–communicative–and then refined. Help students make this connection between the disciplines computer science and language learning give them an awareness of how learning works and practice in another discipline’s context.
After coding the first sequence for the up arrow (forward movement), the CS First video shows them how they can more efficiently do this for the next two left and right arrows: duplicate/copy. This is key in computer science, learning how to copy and paste code minimizes effort–and also reduces the likelihood of making errors. Some tasks are similar enough that they can be duplicated and changed only slightly. Students who laboriously go back and forth and code the sequence with the direction blocks one at a time see a higher margin for error than those who duplicate and paste. The SEL lesson here is keeping an eye for well functioning code and applying the code to a similar function. It brings efficiency, reduce the margin for error, and overall lower the workload. Computational thinking in action.
After coding the first player, comes player number two! This extends the practice and empowers our future programmers. They are now experienced coders and coding player two goes much faster.
For students who are more experienced in coding or ambitious, CS First for Google allows for extensive customization with its fun add on tutorials. Add crashes! Sabotage! Sounds! Celebrations! Racing fans! New racetracks!
Wave the checkered flag! Yay!
The project is capped off with a speaking activity. Students present their racing game to each other in a “speed dating” fashion. They are given the conversation guide below, and their classmates rotate to them. They have approximately 3 minutes with each classmate. We review the language of the script and notetake on it. Then I model the conversation with a student in front of the class. I set a 3 minute timer, and they present their project to a classmate. Then a new classmate. Then another. Students get extensive practice with the language of explaining their project, evaluate their work, and give advice to someone about to attempt the project. It’s a winner!
The Racing Game is a great first game design project showing precision needed without overwhelming a beginning coder. In the process, students realized that their characters needed to be coded to stay within the boundaries of the race track or be penalized for leaving the track. Some students begged to customize and upped the challenge in their game by having an enemy character hunt them during the race. Students more proficient in computer science went further–they added sound, customized characters, and more.
Next up? The last in our series, Part 3: A Maze Game. My favorite lesson series yet.
Many of us would self describe as being a liason, advocate, or my favorite, school mom. There can be an invisible barrier between our language learners and monolingual student body and faculty. This is not an unfamiliar role. It is this very role, which is exciting! EL teachers are uniquely positioned to carve out a door to coding for our students.
I recently had the privilege of meeting such passionate educators in Prince George County in Maryland who are about to launch into a semester long class through Loyola University on integrating coding in English language learning. I’m also thrilled to present soon at the 2023 Virginia English Supervisor’s Association on Coding for ELs. The movement is beginning!
If you’re reading this and an ESL teacher, you are familiar with language acquisition supports because you regularly utilize them as you craft your lessons. What are some opportunities for language development in a coding lesson?
Today let’s dig in to tutorial videos. Before I start my students on a coding assignment, they watch an accompanying tutorial video.
I have found that tutorial videos for CS platforms like CS First for Google and Code.org do not assume background knowledge. Further, they are unparalleled in their step-by-step, explicit breakdown. They are created for those with no coding experience. This approach is unsurprising– computer scientists are computational thinkers who regularly communicate with machines whose algorithmic needs demand explicit, precise, perfect directions. Their slow, careful explanations are a boon for our students! Boom!
These tutorial videos are listening practice. These platforms often make their videos accessible in an alternative format. CS First for Google, for example, makes its videos downloadable. Code.org publishes its videos on YouTube. This provides opportunity for the EL teacher to embed comprehension questions in educational platforms. I link them in Edpuzzle or Nearpod.
The kinds of comprehension questions I embed teach my EL students the importance of context, multiple meanings of words, and difference between general vocabulary and technical vocabulary usage. Check out an example with my commentary HERE!
Some questions read:
The best synonym for “sprite” in computer science is______.
Click the code tab and select the “Looks” menu. The word “menu” here means ______.
A. a list of appetizers, lunch, drinks, and dinner options.
B. a list of direction options that can be selected.
Blocks from the event menu tell the computer when to run code. This can be best described as:
The first line hear grabbed me. ML teachers, we teach the everybody in this country. We are know where to begin. We are the resource. We are the first hello.
The second line hooked me. I thought I knew how to think? Is thinking something I can be taught? Are there different ways of thinking and what different modality of thinking does coding teach? And how can this benefit my everybody-my language learners. Watch:
This mode of thinking has been hard to capture. It is now referred to as “Computational thinking,” but that may be a little off-putting because it seems like it could be “Thinking like a computer,” which… it is… but thinking like a computer is only a fraction of what computational thinking entails and what it can do for our students if taught and put in practice.
So what is computational thinking? How are these aspects similar to or just different enough to the language learning process that this can help my language learners? Look for posts that address each of these. What connections are you making with language instruction? Do you see overlap and opportunity yet?
Since beginning my journey on integrating introductory CS in my ELD instruction, the reasons of why EL teachers can, should, (need to?) to integrate coding in their instruction have grown. And with each project, another reason pops up and waves its hands, “Hey, you forgot about me!” I am digging into each, then exploring how.
A participant at my #SETESOL2022 presentation added, coding provides immediate feedback. And my daughter has scrutinized this list and said, “Mom! It’s fun!!
When I first began teaching EL, I began in early childhood. My mentor EL teacher Ms. Deas, told me this is how you teach letters and sounds, present the same skill in a variety of presentations to create practice opportunities.
Practice. Repetition. Exposure. It is essential to language learning. But it is more than the numbing blur of flashcards.
A review of the research shows that it can take 6-20 exposures to learn a new word, but the question is in what context is the word being learned. Is it meaningful? Is it necessary? Is there a correlation to the L1?
This reminds me of a kind of potato I ate in Bolivia when I was there when I was 19. It was a staple to the people there, and I was eager to learn Spanish and I must have asked 20 times what was the name and I simply could not remember the name of this little, black, crunchy potato that I was served regularly. (It’s chuño!) My brain seemed to put a block on it, it got to the point where I wouldn’t ask because I was frustrated with myself and deeply embarrassed I could not remember this word. Even my shame couldn’t make me remember. But I remembered the potato!! Maybe I needed one more exposure.
Here comes in coding an algorithm.
Follow me here, non CS, language teachers. This is for us!! Coding is rich with repetition and opportunities to recognize repetitive patterns. When you give a robot directions, You have to be explicit and direct. And… repetitive.
Yes, repetitive. It gets annoying! But with this repetition, comes language learning. Our robot has safely arrived at its destination, and the language learner has had repeated meaningful interactions with how many move forwards?
It’s purposeful, not a memorized vocabulary list. If your robot doesn’t arrive at its destination, you review the algorithm and add or subtract a directive. And further, the language learner also feels the drudgery of repetition and deduces how there’s gotta be a better way.
Instead of saying move forward move forward move forward move forward move forward move forward, couldn’t I say move forward x 6? Sounds like the language of math, kiddo. You’re becoming a computational thinker. We’ve moved forward.
Uchihara, T., Webb, S. & Yanagisawa, A. 2019. The Effects of Repetition on Incidental Vocabulary Learning: A Meta-Analysis of Correlational Studies. Language Learning, 69 (3): 559 – 599) Available online: