Teacher, Facilitator or Guide?

These past weeks I have been thinking about how Computer Science education and the way to teach it has evolved. I have been a teacher for about 19 years now, and most of the time my students make the most interesting questions that get me thinking and researching about certain topics. That is how this blog was conceived. I am currently teaching my 9th graders how to work with BBC Microbits. (By the way, Microbits are awesome!) To introduce them I start giving them instructions that are very detailed about how the Microbits work and to get acquainted with the Make Code interface. When I say detailed, it is very detailed. I give them a step by step guide including screenshots of where to find the necessary blocks, how to save, download the program and upload it to the Microbit. How to use the Microbit simulator included in the Make code interface. Once we do several projects in which we learn how to make the Microbit sing, how to work with the LED screen and how to connect alligator clips, I assign a project in which they have to come up with a character and incorporate the Microbit as part of it adding at least 2 actions with it. That’s when it all goes south!!!!

Many kids seem lost. It’s like they have never used a Microbit before. That got me thinking. When I started learning programming, I learned using Pascal with a green and black screen and all programming was text based. It was hard!!! But I also remember a professor telling us that if we learn the hard way then after any programming language should not be as hard to learn as we had the base and logic to programming. At the time I really hated that comment as any student would’ve but today as a teacher I wonder if I am up to something here. Am I, as a teacher, allowing my students to really think on their own? To really grasp the logic of creating a program. Or are they just little robots following my instructions?

I decided to analyze the progression of my students to get to ninth grade Computer Science. Throughout their early years we want to engage them and get them to like and be interested in Computer Science and all the possibilities they have with it. As we introduce them to all the wonderful things that we can achieve with Computer Science, we look for tools that are engaging and fun. Many companies have helped produce such introductory tools, which make it so easy for kids to learn that they start enjoying programming. However, they get so used to it that then the progression to more complex programming seems harder. Emphasis on “seems”. Making the transition from block programming to text programming is set by many of these tools, including the Microbit. The Microbit can be programmed using blocks, JavaScript or Python so that is covered. But there is an element that only teachers can do and it is to facilitate the transition between just giving guidelines that are so specific that it seems students are only copying a program while truncating their creativity and promoting the ability to create and discover on their own or by giving a task for them to solve on their own. I realize that although I am teaching Computational Thinking skills my kids are used to getting very specific instructions for programming. This is not bad it’s just that the transition is not as seamless as it seems. So how should the transition take place? I believe a good starting point is to be cutting on the screenshots on the instructions guide and limit them to the instructional part of the lesson, by going through the steps with them and let them take their own notes. Then when a project is assigned, they can take a look back at their notes as a reference. Another tip is to include videos as additional help but getting away from giving too detailed step by step instructions starting in the Middle School area so that when presented with these kinds of projects in High School, they have a base on how to solve them. Let the instructions be a guide and not a solved problem for them to copy.


Michelle Lagos
Representative at Large



Never too late to innovate

Last summer, after nearly 19 years as a CS teacher, I started thinking how my class has evolved exponentially over the years and how this school year I wanted more of those deeply gratifying “Aha” moments from my students. So, I started researching ways in which my Computer Science class should evolve beyond updating the content to align the new standards. I realized I was giving myself a big task, considering that I was still mapping my curriculum to the new CSTA standards which it is a lot of work by itself. My goal, my hope is that my experience is useful to other CS teachers out there looking to make some reinvigorating and refreshing changes.

So here is my journey to start the new school year. Part of my research included finding out how important Computer Science skills are in the work force. What would my kids really need once they leave our school and be prepared for both college and “real world”? There is so much information out there that is easy to become overwhelmed so I had to narrow it down to focus on my goal. What would bring those “Aha” moments to balance the covering of my content and preparing my students for when they leave High School? I remembered that when I was in High School, I was required to take a home economics and woodwork shop class. I remembered the best part about these classes was the satisfaction when I finished a project and could take it home to show off. The closest to that emotion I have seen in my students is when a program finally works and they get the result they want, or when a robot finally performs as expected due to its programming. So, I thought why not combine the CS skills and content with that satisfaction of creating something tactile that can be used in real life besides software. Basically, bring CS alive through STEM and real-world applications. I was able to pull this off with 3 simple steps that did not break my school’s budget:

Step # 1: I redesigned my computer lab. I didn’t want to be a makerspace; after all this is a Computer Science class not an engineering course but I needed some elements of the engineering process. This didn’t require a large budget so it is always good to start to look at what you have and how to use it, what your school has and how to recycle any pieces of furniture you can find. I’ve never had a class with more than 24 students as that is my school’s policy but my lab had 30 student PC computers. I took 6 student PCs out and kept 24 which left me with 3 long tables. I used two of those to create a working area, where students could 3D print and assemble robots & collaborate on other innovations. Now I had 3 main, clearly identified areas in my lab: The Research & Innovation Area, which is where the PCS are located, students can research and investigate prototypes, program and research. The Engineering Area, which is where students get their hands “dirty” building their prototypes and The Robotics Area where I have my robotics table to assemble and test robots.

Step # 2: I requested the school purchase materials that I needed that were not your typical Computer Lab things like included drills, screw drivers, sand paper, tweezers, wrenches, solders, cable strippers, etc. I also got lucky when my school got two 3D printers donated so now, I had 3 at my lab. These are part of the Engineering Area.

Step # 3: I had to “spice up” my projects for the semester so they were fun, engaging and aligned with the content I needed to cover. I took some time to research many innovative projects and found some that were just right. My students are now creating digital pets with Microbits, which are cheap and simple yet very adaptable electric boards, they are making collaborative projects like designing a drone 3D model that can be printed and programmed using two Microbits, building hats that sing and even video games played with controllers that they designed. Other simple yet valuable projects include measuring the humidity in soil.  

This past December I finished the first semester and I can say that these changes have been successful. It is possible to integrate Computer Science into STEM without losing the essence of what Computer Science is. The students were very engaged, they treaded unfamiliar territory with power tools and allowed their minds to be challenged while having fun. Yes, at times the classroom was a little bit of an organized chaos, but this is exactly how learning should be; challenging and fun.

Michelle Lagos

Michelle Lagos
Representative at Large

What does it mean to be a Computer Science Teacher?

Two weeks ago, I had the opportunity to attend a robotics competition with a team of students that I coached through the summer, and I was amazed by the feeling I got being in the same room as many other CS teachers. This got me thinking about the CS teacher profession. I believe that CS teachers are a unique breed. I’ve read so many articles, seen so many posts from other CS teacher friends and all have something in common, one way or another at some point the fact that it can be a “lonely” position is brought up.

Indeed, almost everywhere CS teachers may be the only one within their departments, their school or even their district. Honestly, CS is an amazing, beautiful and engaging subject but none the less not an easy subject to teach. Many of us who have embarked in this adventure for a while now know that being a CS teacher means you become a life time learner and that mapping a curriculum every 3 to 4 years is just part of the main to do list. Other subjects have many years’ worth of curricula with minor changes happening through the years, but computer science is constantly on the move and the content becomes obsolete fast. So, a lesson plan that might have worked wonderfully 5 years ago might not be useful now. Of course, there are the basics that are modified but not vastly changed. So, creating a curriculum is just part of our daily tasks.

A computer science teacher may have different backgrounds. Some come from the CS industry and have a CS background, others are “imported” from teaching other subjects such as science or math and some have a technology education degree. I was searching online for a specific degree in Computer Science education and although you can easily find a master’s degree with a CS education concentration, I had a hard time finding a CS education bachelor’s degree. What most colleges or universities recommend is getting an education degree to later get a CS education master’s degree or have a CS degree and get a teaching license. All that is perfect, but I think that CS teachers need better training and just as I mentioned before it can become hard to teach a subject you are not properly trained for. I read this past week a post from a CS friend on Facebook that was asking mostly himself if he knew “too much” about CS to teach a beginner’s class, and I thought that this is the kind of things that make us unique. A math teacher will probably never ask themselves if they know too much math, or maybe they do, and I just don’t know.

A Computer Science teacher also becomes a “fix it all” individual, the teacher that quite possibly has a charging cable in their labs, knows the basics of fixing a computer and has students going into their class asking if you how to fix theirs.

Throughout the years organizations such as CSTA, ISTE, Code.org, Oracle, and the College Board among others have taken big steps to support CS teachers and making our jobs easier in the planning phase, prepping and the dreaded paper work part. Still, in our own hometown, there is yet a very small number of Computer Science teachers and that needs to change. Every time I have the chance to attend a conference, event, competition or workshop that is specifically for CS, that is when I feel I am home. I know that the people around me have the same challenges and successes, have the same feeling of sometimes teaching a lonely subject. So, getting this sense of community goes along way. I hope that at the rate CS education is growing around the world, that sense or community remains.


Michelle Lagos
Representative at Large

The What, When & Where to Implement a CS course

Great things are happening for Computer Science (CS) education these days. It is exciting to see news and posts about more schools & districts incorporating CS courses. However, with the increasing speed that technology is changing and the more embedded it becomes in our everyday life, the conversation now derives on when and what to teach. The conversation also includes what knowledge or profile should a CS teacher have. There is no magic formula to incorporate CS into a school.  Every school is different, every group of students is different, and every teacher is different.

The whole idea of CS education is to introduce our students to the wonderful world of being creators of technology. Most of us are avid technology users and especially our students which are digital natives. So, what should a school or teacher take into consideration to begin their CS courses. Where does it fit in the curriculum? Are the credits part of math, science, STEM? What background should the teacher have? Should CS courses begin in elementary, middle school or high school or even younger?

So, what should we teach? Should we implement an introductory CS course? A programming, engineering, robotics, or a web and game design course? Should digital citizenship be part of it? Well, there is no curriculum in a box that would fill everybody’s needs, although there are organizations such as Code.org, CS for All, Oracle, to name a few that are producing and publishing material and provide professional development doing an amazing job orienting teachers, schools and districts on how to successfully implement CS.  It is also important to know that there is a huge community going through the same process and there are organizations such as CSTA that also support teachers in this endeavor.  Another option is to develop their own curriculum taking into consideration the school’s budget, student’s needs and teacher’s experience, but to be able to do that there will usually be the need to have an expert in curriculum development that can analyze all these needs and customize how a CS course will be implemented. There is not a standardized profile for a CS teacher, some won’t even have a CS background, which is not a requirement, but it is important to have a notion on teaching critical and computational thinking.

Before starting is important to know the school, district, students and teachers.  Once there is a clear picture, identifying if there is already a faculty member familiar with the school culture and environment who can fit into the profile of CS teacher the school needs. Determining standards, content and scheduling will come next. Some schools start CS as an elective course until they are ready to embed it into their regular course load, which is a good option. The ideal is to introduce CS on the lower grades, so the expectation and content to be taught in the upper grades can become either a college preparatory course or fulfilling the skills to be able to work developing different kinds of technology while still in high school or while in college, allowing them to start having an income at this age. Some schools have a one to one program established, some have computer labs, and some have devices that can be reserved and checked out from a media room or library. Depending on the type of devices that the school or district counts with is where the decision to what kind of software or online product can be used for the course. Fortunately, more and more there are products and resources available on a browser version and can be used with most devices that have an Internet connection and can be opened with most common web browsers.

In the end, each school or district must create its own customized blueprint that will work for taking advantage of all the resources and communities out there to help.


Michelle Lagos
Representative at Large

The role CSTA has played in my professional life

This month the announcement for nominations for the board of directors made me think about my path through CSTA. The first time I heard of CSTA was in 2008; starting a new job in a new school having been teaching CS to High School students and was embarking on a new adventure of teaching K-5 Computer Science. It was the first time I was teaching Computer Science to that age group and I was apprehensive about some of the content and available resources. I teach at the American School of Tegucigalpa in Honduras, a small under-developed country in the heart of Central America. AST is a N-12 non-profit bilingual school, so we are an English spoken campus. Even though most schools offer computer classes, my school has always strived to give the best college preparation possible. So the expectations for me as a teacher were high. Being part of the smallest department in my school, it can be a challenge getting PD and resources. Luckily, I found the CSTA website and went directly to their resources and curriculum sections. As I explored the page I got interested and decided to become a member. As a new member of a community of teachers I now know we share similar challenges when teaching CS.

In 2012 CSTA was calling for nominations for the board’s upcoming elections. I was hesitant, thought the odds were not good for a Latin-American teacher. Turns out I got elected as the International Representative. I got to be part of their meetings which dealt with important topics, looking to improve and support K-12 CS education. I worked with the curriculum committee, alongside Deborah Seehorn and Tammy Pirmann reviewing the published CSTA K-12 Standards. Later I collaborated on my favorite project translating the Standards to Spanish which have been helpful for those teachers teaching CS in Spanish.  CSTA is not only meetings, it is also a place to grow and share, like the Annual CSTA conference which I always attend and volunteer to help out. It takes a lot of people and work to put it together. There are many ways to volunteer at the conference and it is a wonderful way to get involved and advocate for CSTA as well as make connections.

In 2016 I ran for a second term on the board, this time as Representative at Large and once again was elected to serve. This time around the experience was different as I was able to be part of different committees and meet more of the active, engaged and passionate members. I now know more about all the resources, workshops, scholarship, keynotes, PD opportunities CSTA brings to the K-12 CS teachers and how much heart is put into these. We hope that these efforts will improve CS education around the world. Family. My best advice as a CSTA member? Get involved, be an advocate, join a chapter or collaborate with other members. I guarantee that it will be worth it.


Michelle Lagos, Representative at Large