Teacher in Training

Okay Coder
8 min readJun 27, 2015

--

Earlier this week I received notification that I would be co-teaching AP Computer Science on the team at West Seattle High School. I was very excited about the opportunity, but also a little anxious since there were so many unanswered questions. How do you prepare a lesson plan? How much time should be allocated to lecturing versus students actually writing code? How do you keep students’ attention when everyone has a smartphone and and an endless number of distractions? What exactly does a student need to know to be able to pass the AP exam?

Coming up with answers to all of these questions are part of what will make this an exciting and rewarding experience. We are building a Computer Science program where one didn’t exist before and learning how to teach as we go along. We will be experimenting and gathering data on what works and what doesn’t, and adapting to make the program better over time.

First Session at Microsoft

Saturday was the first day of training. It was held at Microsoft’s main campus in Redmond. There was a diverse group of at least a hundred volunteers in attendance, mostly new volunteers who had no experience teaching at the high school level. I sat with the other West Seattle volunteer teacher and we got a chance to exchange stories and get to know each other. It turns out we both live within walking distance in the same neighborhood, so it will be easy to meet up throughout the year to prepare.

Why Volunteer to Teach CS?

We warmed up with a questionnaire that asked us to reflect on the teaching profession. What is teaching? What makes a great teacher? Why are you doing this? Why are you interested in TEALS? I came up with a few reasons:

First, my wife and I had recently bought a house in the West Seattle neighborhood and I was looking for ways to get involved in the community. When I saw a post on the West Seattle Blog about the need for volunteers, it seemed like a great cause to help out with.

Secondly, I have always been interested in teaching, but I don’t have a teacher certification. It would be costly to quit my job and spend the time and money required to get certification. The TEALS program is flexible and can work with my existing schedule.

Third, it would be very rewarding to inspire students to create their own mobile apps, build their own software companies, or create their own websites. Programming gives a person the ability to create something out of nothing. It only requires a text editor and an internet connection. Programming helps you become a better problem solver, empowers you to create wealth, and is a medium for exercising creativity.

Given how useful Computer Science is, the statistics are depressing. When I looked at the statistics on the TEALS website, I was surprised that 90% of high schools didn’t even have a Computer Science program. In an age where Software Is Eating the World and there are free materials on sites like Udacity, Khan Academy, and Coursera, it seems inexcusable to not be incorporating Computer Science into more classrooms.

Training Session Takeaways

Students Will Be Able To

One of the first things we discussed was what makes a good learning objective.

A learning objective is an outcome statement that captures specifically what knowledge and skills learners should be able to exhibit following instruction.

In the reflection questionnaire, many of us (including myself) wrote that teaching was simply a transfer of knowledge from one person to another so that someone understands a concept. We learned that “the student will understand X” isn’t a good learning objective. We want students to be able to do specific actions. Simply “understanding Java syntax” is not enough. We want students to be able to think like engineers and solve problems on their own.

SWBAT is an acronym that stands for “Students Will Be Able To”. Examples of well-formed learning objectives would be:

  • Students will be able to implement a binary search algorithm in Java.
  • Students will be able to query a relational database using SQL.
  • Students will be able to build a web application that processes data from a user-submitted form.

As teachers, we need to be able to come up with specific ways for students to demonstrate understanding. We practiced coming up with specific ways to assess different learning objectives. How would you assess whether a student could trace the execution of a loop? How would you assess whether a students achieved the objective of being able to create and call custom functions with parameters?

Anatomy of a Lesson

How do you prepare a lesson? How do you get students who just arrived at 8am to immediately get motivated about learning and get engaged in the lesson? Well a good lesson (like a good song) has several parts, and can keep someone’s attention:

  1. Warmup: class should start with a quick task or review of the previous lesson to get the class in the right mindset for today’s lesson
  2. Hook: a great lesson should pull you in and sell you on what you are about to learn. The hook should get you engaged and listening.
  3. Instruction: explaining new concepts and reteaching previously covered concepts based on previous assessment
  4. Practice: the students demonstrate their understanding of the material by working on a challenge or solving a problem. A good lesson is 25% talking and 75% practicing. Think about it. Most of programming is making mistakes over and over again and learning from them. When learning to program for the first time: how many times were you missing a semicolon? How long did it take you to know where the parentheses and curly braces went? Remember running your first program that used a while loop? Did it get stuck in an infinite loop or never execute at all? It takes a ton of practice to avoid the most basic mistakes. Therefore, a good lesson should be focused on students solving problems in the lab.
  5. Assessment: assess the outcome of the lesson and whether the learning objective was achieved. Formative assessment involves assessing the understanding of the material while you are teaching the lesson. This can be done by using real-time metrics such a asking a question or asking for a show of hands. Summative assessment involves evaluating student understanding via larger tests and projects.

Using a Whiteboard

It seems simple in theory, just write stuff on the whiteboard while you talk. But in practice, I had difficulty explaining a concept visually on a whiteboard. The TEALS instructors asked us to create a whiteboard sketch to explain how to write a recursive method that accepts an integer n and prints 2 to the n stars to the console.

I divided the whiteboard into a table of input/output, a section for definitions, and wrote the actual method source code on the board. I ended up running out of room for the code sample, drew diagrams in the wrong order, and my handwriting wasn’t even legible:

After this exercise, I could clearly see that I would need to plan out how to use the whiteboard effectively.

Some TEALS tips:

  1. Always use the same “zone” on the board for a specific purpose. For example, you may write important deadlines in the top right corner. Or you may always have definitions at the top of the board.
  2. If you want students to write something down, you write it down on the whiteboard. The act of you writing it makes the student want to write it down.
  3. The whiteboard is a permanent fixture in the room that can be referenced and pointed to at all times. This is an important since your laptop will often be changing slides and content.
  4. Draw a lot of pictures and diagrams. Think of ways to visually represent programming concepts in the form of a picture.
  5. Ask students to come up and write on the whiteboard. This demonstrates their understanding and helps with assessment.

I decided to get an actual whiteboard for our home office to practice teaching with. Also, I miss having one to just to sketch database diagrams and jot ideas on.

Engagement

If you get up in front of the class and lecture for an hour and a half straight, you will gradually lose everyone’s attention. The length of time a student can pay attention to someone talking is around 15 minutes. It is important to break a lesson up into smaller pieces.

The diagrams below illustrate classroom engagement. If you periodically stop to ask the class a question, students will pay more attention because they might be called on. If you break the classroom up into smaller groups, the students will engage with each other and collaborate on different activities. If you ask for volunteers to come up to the front of the room, the volunteers will be very engaged, and the rest of the classroom will also be more engaged since everyone is participating in the learning process.

The TEALS instructors did an outstanding job of demonstrating these concepts by keeping us engaged throughout the training session. We paid attention and stayed focused because there was a small (but not crippling) amount of stress. There was always a chance that our name would be called and we would have to give an answer.

No Opt Out

The TEALS instructors also emphasized that there is no “opt out” when you ask a student a question. They can’t simply say “I don’t know”. It is important to get students comfortable with giving an answer, even if it is the wrong one. When you ask someone a question, you need to help them think through an answer that advances the discussion.

It is important to not immediately say answers are “right” or “wrong”. Ask a different question or refer to previous lessons to refresh their memory. Ask other students whether they agree with the answer and promote discussion in the classroom. Never touch a student’s keyboard when they can’t figure something out. Ask questions to help them find the right resources and encourage them to interact with and get advice from other students.

Always keep in mind that there is a finite amount of classroom time per day, maybe an hour. There may be 30 students in your class and you are only one person. You can only spend 2–3 minutes of lab time with any student before checking on how someone else is doing.

Next Steps

The first TEALS training session covered much more, but this blog post has gotten a bit long so this seems like a good time to break things up. I learned a ton from the first session and the TEALS instructors were outstanding teachers and great presenters. I’m already looking forward to the next training session in late July. In the meantime, our team needs to meet up, decide how to work together in the classroom, and work through many logistical issues before the school year starts.

--

--