Thursday, November 30, 2017

CS Educator Interview: Sheena Vaidyanathan

Sheena is a wonderful innovative teacher who I have know for several years. We also served on the CSTA Board together. She works across grad levels (K-8) at a school district in California. She’s doing some very cool things. I am so grateful that she agreed to do this interview. I think you’ll find it interesting.

WHERE DO YOU TEACH? WHAT SORT OF SCHOOL IS IT?

I teach in the Los Altos School District, in the San Francisco Bay Area, California. It is a K-8 public school district with approximately 4500 students.  We have seven elementary schools that are K-6, and two Jr High schools (grades 7 and 8).

HOW DID YOU GET STARTED TEACHING COMPUTER SCIENCE?

My background is in computer science. After working for several years in Silicon Valley,  I decided to take a break and go to college to learn art.  During that time, I had an opportunity to volunteer in the local art docent program, and  discovered I loved teaching. I became the art teacher for one of the schools in the district and along with watercolor, clay etc, I showed the kids how to create on the computer . When the art teacher position went away, my administrator suggested I teach those digital art lessons across the district. I used Scratch programming as a tool for  the art program in the district in 2009, just a couple of years after Scratch was launched. Later this digital art class was converted into a CS program for sixth graders, and then expanded to all other grades. Today, every child in the district learns computer science.

DESCRIBE THE COMPUTER SCIENCE CURRICULUM AT YOUR SCHOOL. WHAT COURSES DO YOU HAVE AND WHAT ARE THE FOCUSES OF EACH?

Currently I am the computer science integration specialist for the district. This means that besides teaching I work on curriculum, PD and integration across the district. Every one of our seven elementary schools has a STEM teacher and this teacher integrates computer science in K-5 STEM lessons. I work with this STEM team, introducing new tools, and doing PD when needed. The sixth graders have the same required CS program that I started, and it includes units in Scratch, JavaScript/Processing, and Arduino. I currently teach this 6th grade program in one of the schools.  I also teach a Python based CS elective in 7th and 8 grade at both Jr High schools. I also work with the 7th and 8th grade Science teachers to integrate CS into the Science classes.   See more details on our CS programs at https://www.lasdschools.org/District/Portal/Computer-Science

WHAT IS YOUR OVERALL TEACHING PHILOSOPHY? PROJECT BASED LEARNING? FLIPPED CLASSROOM? IN SHORT, WHAT MAKES YOUR CS PROGRAM “YOUR CS PROGRAM?”

If I had to pick one overall philosophy, it would be ‘CREATIVITY’.  My CS program was created from an art program, where the focus was on creating something that was personally relevant and where programming was just one more medium to express your creativity.  I use mini projects to teach specific content, with challenges to differentiate instruction, and with as much flexibility as possible. The focus is to get students to work passionately on projects they care about.

WHAT IS THE BIGGEST CHALLENGE IN TEACHING CS AT YOUR SCHOOL?

Differentiation. After teaching CS for several years ,we now have students  at widely different levels in our classes and we must differentiate in many ways to make sure we keep all students engaged. After taking the required CS classes at our schools, some students continue to work on coding projects at home, and even enroll in summer camps/clubs and more, while others have only done what is done in class (or have forgotten it!) . In our classes today, we work continuously on the challenge of  creating a comfortable environment where each student can move at their pace. 

WHAT IS ADMINISTRATION’S SUPPORT (OR LACK OF SUPPORT) LIKE AT YOUR SCHOOL?

Our administrators are very supportive of the programs. In 2009, when very few public schools were doing any CS (there was no code.org or much advocacy material 8 years back!), the Los Altos school administration showed that they were early adopters and innovative . They launched a district wide computer science program because they believed in the idea that this would encourage creativity and help students see computers in a different way. At every step during the last 8+ years, they have encouraged computer science in our district. We are constrained by the number of dedicated teachers available to teach CS, else we would have moved even faster than where we are today.

HOW DO YOU MEASURE SUCCESS FOR YOUR PROGRAM? FOR YOUR STUDENTS?

Success is measured by just one factor - ‘Do they want to do more?’. The answer is yes for all grades. The K-5 students love STEM time and welcome any open coding time. The sixth graders often tell us it is their favorite class and at their end of year showcase, we have a packed room of students showing their final projects. Our 7th/8th grade CS elective is over subscribed. Kids are using code in other classes on their own. A Chemistry or English teacher for example will sometime sends me a Scratch or Python project that was submitted to show learning in their class. Our students are not afraid of coding, and are always ready to learn more. 

WHAT IS THE ONE THING YOU LIKE TO TALK ABOUT REGARDING YOUR PROGRAM THAT I HAVEN’T ALREADY ASKED?

Students are curious, creative and eager to learn.  It is so much fun watching them discover the magic of coding. Hearing that shout of joy, when a student fixes a bug can keep you going for hours even when you are tired.  Computer science education is moving at a fast pace, and I am always learning new ideas, experimenting with new tools and looking for ways to improve our CS programs.

TELL ME ABOUT YOUR ONLINE PRESENCE (IF ANY)

See also Computer Science Educator Interview Series Index (2017) for other CS educator interviews.

Tuesday, November 28, 2017

How (Some) Schools Sabotage Computer Science Education

There are many problems getting more computer science into schools. There is a shortage of teachers. There is a problem with room in the schedule. I could go on but there are also problems for schools who have computer science programs caused by people inside the schools. And I keep hearing about them.

Problem number one seems to be the people who manage the school networks. Now you might think these people would be natural allies of computer science programs and you’d be right in some cases. In far to many though your would be wrong. A lot of school network managers have priorities that can run counter to those of teachers. Not just computer science teachers mind you but they can hit computer science teachers especially hard.

There is always a trade off between keeping a network secure and keeping it easy to uses. Finding the right balance is key though. One of the biggest issues I keep hearing about is technology decisions that don’t involve the teachers who will be using the technology. For example lately I have been hearing a lot of teachers complain that their PCs are going away to be replaced by Chromebooks. Now one can do a lot with Chromebooks. One can even teach computer science with them. More or less. But telling a computer science teacher that they are losing the tools they have used for years and asking them to figure things out on their own is not fair.

Far to many hardware decisions are made in schools based on cost and ease of system management without considering the impact of teaching.

Sometimes decisions are made that actively prohibit teaching some things. IT people block useful websites. IT people refuse to allow some software to be installed. All this with the goal of locking down the systems and making them easy to manage.

And then there are administrators who don’t seem to understand the needs of computer science courses. I recently heard from a teacher who was told they were losing their computer lab for two weeks so the school could do testing. What? Teach computers without computers? OK sure there are many CS concepts you can teach without computers. CS Unplugged is a wonderful resource for that. But to have that decision made for you one short notice – for and advanced placement course? Can you imagine?

Picture the music department told they would have to teach music without instruments for two weeks? Or the art department being told to teach without art supplies?

It’s hard to get too upset with the principal here though. They are in a hard spot and need the computers to do the standardized testing that people who know nothing about education insist that they administer. On the other hand since it is unlikely that these tests come as a surprise to the principal they should at least let the teacher know long enough in advance so that they can properly plan. But they don’t understand what it is like teaching computer science. How could they if they never even took computer science as a student?

We really do need more educators to understand computer science better.

BTW my school has an administration who absolutely do understand enough about CS to bring the department in on decisions that impact them. And our IT people put students and teachers first and do all they can to make teaching easier for us. Faculty has lots of input on new devices. We do it right. I just wish every CS teacher had the support we do.

Monday, November 27, 2017

A Rose By Any Other Name Gives An Error

There is an old computer science joke that goes more or less like this:

There are two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors

Now I don’t have to cover cache invalidation in my high school courses and I do see an awful lot of off-by-one errors from students but today I’m thinking a lot about names. Names and how students  get them wrong.

Today I had students write code along with me as I demonstrated in on the board. As usual with any GUI interface the first thing I did was draw objects on the form and name them. I’m pretty careful about giving each item a meaningful name. I spend some time talking about why we do that. OF course a larger group of students than I’d like skips that step.

Next I write the code behind being very careful to use the correct names for the objects that I am requesting information from or sending information to. I talk about how having meaningful names here makes like easier. Students diligently copy the code. Anyone experienced with students knows what happens next.

Students insist they did exactly what I did get build errors. Remember how I said some of them don’t name things the way I show them to name them? Yep, this is where they expect the computer to do what them mean even if that isn’t what they told it to do.

Others have the right names but for the wrong objects. “Mr Thompson, why did that show up here and not their?” Answer: Because that is where you told it to display. Try as I might students take a while to understand how important getting the names right really is.

Somehow getting this right is a struggle for some students. I want to believe it is all their fault – they were not paying attention. That has to be it right? But maybe not. Maybe it’s me. Clearly I need a better way of explaining things.  Maybe visual aides? Boxes with names on them? Something. Figuring this out before the next class starts is a priority.

Suggestions are welcome. What works for others?

Monday, November 20, 2017

Learning From My Students

Some days I think my greatest edge over my students is that I am better at debugging than they are. Well there is that I actually read documentation as well but putting that aside for now.

This semester I am teaching with AppInventor. It’s a pretty cool development tool and I have been playing with it off and on for some time. I’m far from expert at it though. Usually I am happy to keep a couple of lessons ahead of the students. There is only so much I can learn on my own though. So I learn a lot from my students. While anyone can learn from their own mistakes the really smart people learn from the mistakes of others. So I learn a lot because I see a lot of mistakes.

Students make all sorts of mistakes. I’m not sure mistakes is the right work though. Perhaps I should say they try all sorts of things that don’t work as they expect them to work. At some point it becomes my job to help them figure out what is going on. Since they are so clever about try9ing things that would not occur to me this is a wonderful learning experience. Fortunately I have seed a lot of things go wrong using a lot of programming languages and tools over the years so I can usually figure things out pretty quickly.

The advantage of this style of learning is that it helps me anticipate things – misunderstandings, incorrect assumptions, and what not – that I can build into my teaching going further. While I can’t cover every possible error even if I knew them all I can at least point students in better directions.

At the same time I have been having students learn things beyond what I am teaching on their own. I have a couple of students who just love to try things in Appinventor on their own. Sometimes in class but often at home. These students are more than happy to share what they learn. They share with me and they share with their peers. Encouraging this sort of experimentation is, I believe, key to being a good teacher as well as being a life long learner.

Teaching this course has probably taught me more about Appinventor than I could ever have learned on my own. I call that a win.

Thursday, November 16, 2017

Resources for Teachers and the AP CS Principles Tasks

If you are teaching Advanced Placement Computer Science Principles for the first time as I am you probably still have lots of questions about the performance tasks. I know I do. Well it look like Jill Westerlund has our back. She has a series of blog posts on the subject that look very useful to me.

Exploring & Creating 101 — Part 1

Exploring & Creating 101 – Part 2

Exploring & Creating — Part 3a

Exploring & Creating – Part 3

Check out her abstractingCS blog regularly. I do.

Building off of Jill’s work, code.org has created an "Explore PT Survival Guide" that also looks helpful.

abstractingCS

Tuesday, November 14, 2017

Joint Task Force on Cybersecurity Education Draft Report

The Joint Task Force on Cybersecurity Education is working on curriculum recommendations for post secondary schools but I think their work will be of interest to teachers of other levels as well. It is probably going to be interesting to cyber security professionals as well. Their latest draft report is now available for download and comments at CSEC2017 v. 0.95 Report

Take a look. More information at the Joint Task Force on Cybersecurity Education website.


The JTF was launched in September 2015 as a collaboration between major international computing societies: Association for Computing Machinery (ACM), IEEE Computer Society (IEEE CS), Association for Information Systems Special Interest Group on Security (AIS SIGSEC), and International Federation for Information Processing Technical Committee on Information Security Education (IFIP WG 11.8).

The JTF grew out of the foundational efforts of the Cyber Education Project (CEP).

Purpose...

The purpose of the Joint Task Force on Cybersecurity Education (JTF) is to develop comprehensive curricular guidance in cybersecurity education that will support future program development and associated educational efforts.

The curricular volume, CSEC 2017, is estimated to be published in December 2017.

Monday, November 13, 2017

Can’t We (Computer Science people) All Just Get Along?

There is some real momentum in growing computer science for all people in the US. Even the Trump administration seems to be behind it (more or less). The pot of money for funding CS for All initiatives is growing. It’s not growing as fast as the number of people who are trying to work the problem though so it is still something of a zero sum game. And there in lies a problem – in fighting. At this point I feel like we are becoming our own  worst enemies.

Pogo Earth Day 1971t We have met the enemy and he is usLately it seems like far too many people are taking sides against other who really have the same goals. Work with the Trump administration or fight them on every turn? Damned if you do, damned if you don’t.  Work with industry supported programs or demand that companies give money without strings even if you are working in ways contrary to the company’s responsibilities to their shareholders and employees? Promote your own programs by attacking the motives and strategies of other programs? It’s getting as bad as the major political parties in some ways.

There are dueling blog posts, contentious discussions (fights) on Facebook groups and Twitter. It’s starting to get embarrassing. If the media took a close look at us we’d really be in trouble. It’s only time before that happens though.

I understand that lots of people have educational programs they really believe in. I understand that they really want others to use what they have developed, tested, and often have research to support. Great! But are we really well served when different groups attack others? I think not. Could money be at the heart of it all? I think perhaps it is. It often is when money is in short supply compared to demand. In the long run I think we’d all be better fighting for a bigger pie than a bigger piece of the existing pie.

And then there is the gender issue. Oh boy! Now make no mistake I think programs like Girls Who Code and Black Girls Code are great. They are important. I’ve been pushing to increase the number of girls learning computer science for a very long time. I think it is essential for society in general and computer science in particular.  I’m not sure that leaving boys behind should be a goal though and at times (especially if you are the parent of a boy) it looks like it is a goal.

The assumption that boys will naturally get into computing on their own without help is as much a sexist bias as any suggesting girls are not interested in computing. This is especially true in poor, rural areas and in areas where minority students are the majority.  Rural areas in general get overlooked as groups try to focus on large population centers and yet they have needs as great as any inner city.

benjamin-franklin-politician-we-must-indeed-all-hang-together-or-mostNow I am not saying we should stop having programs just for girls. Or that we don’t need programs specifically for other traditionally under represented groups. They are necessary. But let’s not be unsympathetic to other parts of our population just because they happen to be white or male.

And I am not saying that people should not promote their own educational programs. The more the better. But let’s not build our own programs by tearing down those of others.

Let’s work together, learn from each other, support each other, and present a united front to help the greater goal. Computer science for everyone.

Thursday, November 09, 2017

CS Educator Interview: Adam Newall

With increasing interest in computer science before high school these days you may have noticed that I have a number of K-8 teachers in this series. Several of them use Bootstrap in middle school. Bootstrap is a great combination of math and computer science. As such it fits easily into middle school programs.Adam Newall is the latest interview with one of these teachers.

BTW did you miss my interview with Emmanuel Schanzer who created Bootstrap?

WHERE DO YOU TEACH? WHAT SORT OF SCHOOL IS IT?
I teach at Pembroke Community Middle School. A public school for grades 7 and 8.

WHAT COURSES DO YOU TEACH?
I teach a math applications class and Bootstrap: Algebra as an elective.

HOW DID YOU GET STARTED TEACHING BOOTSTRAP? 
My district was looking to add electives to our schedule as well as curricula that would would help our students master algebra.  Bootstrap fit that need perfectly and I've been proudly teaching it for the past six years.

HOW IS BOOTSTRAP WORKING FOR YOU AND YOUR STUDENTS? DO YOU THINK IT GETS STUDENTS MORE INTERESTED IN PURSUING MORE COMPUTER SCIENCE?
My students have felt very successful using Bootstrap and are proud of the accomplishments they have made in math and computer science as a result of their coursework.  It's been incredibly empowering for all students who are interested in computer science to gain a foothold at such a young age that can propel them further into the field.

DO YOU DESCRIBE YOURSELF AS A MATH TEACHER, A COMPUTER SCIENCE TEACHER, OR DO YOU DEFY SIMPLE CATEGORIES? HOW DOES YOUR SCHOOL SEE YOU?
I think I would defy simple categories.  I teach math, but not as I was taught it.  A few colleagues and I have built a curriculum for our course, math applications, which every student in both 7th and 8th grade takes, that requires the students to think critically and problem solve, applying math skills they have already learned in their traditional math courses.  I teach computer science, but I'm not a computer scientist.  I am a lifelong learner in every sense and am always adjusting my practice.  I think my school sees me as a teacher who is willing to take risks and question everything for the sake of making it better.

WHAT IS YOUR OVERALL TEACHING PHILOSOPHY? PROJECT BASED LEARNING? FLIPPED CLASSROOM? IN SHORT, WHAT MAKES YOUR PROGRAM “YOUR PROGRAM?”
I believe in the "upside-down" teaching model that empowers students to be part of the learning process.  I frequently use project based learning to present students with scenarios that are authentic to real life in order to help them "own" on a deeper level the math skills that they already know.  Bootstrap fits my teacher personality as it gives students the opportunity to ask the questions, to rely on their knowledge, to help each other, and to feel invested in their success.

WHAT IS THE BIGGEST CHALLENGE IN TEACHING AT YOUR SCHOOL?
I think that the biggest challenge in teaching at my school is our level of technology saturation.  I would love to see students in a one-to-one model some day where they each have constant access to a school-authorized device.

WHAT IS ADMINISTRATION’S SUPPORT (OR LACK OF SUPPORT) LIKE AT YOUR SCHOOL?
My administration is incredibly supportive of teachers and the directions that we see for our classes.  Teaching Bootstrap at my school is one example of my administration's support--allowing me to pursue my interests and take on a brand new subject area for our entire district.

HOW DO YOU MEASURE SUCCESS FOR YOUR PROGRAM? FOR YOUR STUDENTS?
I measure the success of my students first on their excitement and their confidence in using math and in computer programming.  I  then measure their success by the numbers from pre and post test data that shows they are able to apply their math knowledge from Bootstrap back into the math classroom.  Our program has been successful as we were able to offer the first computer science curriculum in our district which has grown into the Bootstrap: Algebra and Reactive curriculums in the middle school as well as a new computer science teacher at the high school who teaches to the AP CS test.  It's been awesome.

WHAT IS THE ONE THING YOU LIKE TO TALK ABOUT REGARDING YOUR PROGRAM THAT I HAVE NOT ALREADY ASKED?
I've never felt more important than the days I'm teaching Bootstrap. I can see students who have one "aha" moment after another because they made a dog move across their screen or their player jump up and down.  Some students have blossomed as learners, finally feeling like they've found their niche and really beginning to engage in their own learning. Other students have grown in their persistence; they run buggy code and then go on to track it down time after time until it's perfect, no matter how long it takes.  That is a model in perseverance that will follow them throughout their education and change how they view the world.  They are learning to be superheroes and I get to know I put them on that path.


TELL ME ABOUT YOUR ONLINE PRESENCE (IF ANY)
· School name and web site: http://pcms.pembrokek12.org/pages/PembrokeCommunityMS
· Twitter: @mr_newall

Note: The index for this interview series is at http://blog.acthompson.net/2017/10/computer-science-educator-interview.html and is updated as new interviews are posted.






















Tuesday, November 07, 2017

CS Educator Interview: Mike Zamansky–the update

When I last talked to Mike Zamansky for this blog he was teaching computer science at Stuyvesant high school (one of New York City’s entrance exam high schools). Since then he has had something of a career change. Like many great teachers he was looking for a chance to make an impact beyond one school. But I’ll let him explain more.

Since I last interviewed you, you’ve had some big changes. Tell us about what you are doing today.
I left Stuyvesant a little under two years ago and I'm now at Hunter College, part of the City University of New York (CUNY).

At Hunter I have two primary responsibilities. One is to develop K12 CS Teacher certification programs. The other is to build an undergraduate honors program in CS, connect Hunter CS to the tech industry and basically give NYC students a first rate option for a CS education that doesn't require taking on a mountain of debt.

What made you decide it was time for a change?
I think I accomplished all I could at Stuy and it was taking too much energy to keep the program where it was let alone advance it. It was also clear that the NYC DOE wasn't interested in engaging Stuy with at the helm so it was time to move on. It was also time for others to take the reins there. I've been privileged to work with some amazing teachers at Stuy and it was time for them to take the program to the next level.

When I was connected with Hunter I saw two amazing opportunities. I've pretty much given up on the NYC DOE. I'm convinced that they're going to roll out CS4All hastily and we'll end up with bad CS for all. Poorly prepared teachers and a weak curriculum. I hope I'm wrong but I don't think I am. Regardless of what the DOE does, if a class has a strong teacher that class has a chance.
Hunter prepares about 10% of NYC teachers so if I can steer the Hunter CS Education programs in the right direction then we can have a sizable impact.

As to the CS Honors program, I mentioned above that the city needs a  great affordable option. I'm proud of my work at Stuyvesant and proud that I worked at a public school all those years but at Stuy I only had access to kids that passed the test. True, we started our non-profit to get to more kids but that was limited. I'm still working with a select group in the honors program but as I'm also working with Hunter CS in general, I can impact a much wider range of students. That's exciting.

You’re developing teacher certification programs in computer science and building an honors undergraduate CS cohort. Can you describe those two efforts and what you are doing to implement them in more detail? Are you part of the CS department or the education department? Or a foot in each?
My appointment is in the school of education. That was mostly because I don't have a doctorate and this made things easier. Right now most of my work is in the computer science department under the school of Arts and Sciences since we're waiting for approval for my teacher ed programs.

On the CS Education front, we've designed two programs - a Masters program in CS Education and a Certificate program for teachers already licensed in another subject area. Unlike some other proposed programs we don't offer courses tied to specific curricula (APCS-A AP-CSP etc.) although we do expose our teacher candidates to many of the current offerings. Rather, we are requiring courses that cover methods, and curriculum development along with a depth and breadth of content knowledge. Our teachers will be able to teach anything out there and also design their own experiences for students.

We're also trying to convince NY State that programs like ours are the way to go rather than quick slapshot professional development and scripted curriculum. This means that we've also had to work out a way to transition to new certification requirements over a period of years and also allow for dual certification (math -> CS, CS -> math for example). Of course it remains to be seen what direction NY State goes in.

On the honors CS front I've designed a new intro course for my students that combines Hunter's normal first year of CS with some software engineering best practices and a few extras. We also hold a number of special events. Last year and this we attended Catskills Conf -- one of my favorite events of the year - think "tech conference meets summer camp" and we've also had guest talks, workshops  and more. I'm also working on recruiting all my former students who are now in the tech industry to support Hunter CS and work with the students -- I'm hoping this will be a huge win for both Hunter and ultimately New York City. It's an easy sell -- help an elite private university and you're not really helping equity and diversity. Help Hunter and you're still getting great kids but you can make a big impact on both equity and diversity.

A lot of my time now is trying to get the word out and convince high schools that Hunter is a great option.

How is the college environment different from the high school environment? Both for teaching and for “overhead?”
Teaching is much more relaxed for me. I'm only teaching one class and it meets twice a week. That's both good and bad. That's a far cry from 5 classes of 32 a day 5 days a week. The overall schedule is much more flexible. At Stuy, even if I didn't have classes I had to be in the building. Leaving early for a meeting involved paperwork and approval. As a faculty member at Hunter, it's much more free. We're treated much more professionally than teachers.

A big plus for me personally is the level of support I'm getting at Hunter. Everyone between me up to and including our president is on the same page for CS and CS Education. At Stuy I had an amazing team and amazing colleagues but the administration was never all that supportive and don't get me started on the DOE.

The biggest downside of Hunter is that I'm much more isolated. I still have great kids but since my office is in the Ed department far away from undergrads I don't see them as much. Likewise professors aren't around the same way as teachers. I'm trying to convince the higher ups to find me a space near the students since I think that's really important as we try to build a positive CS culture but space at Hunter is hard to find.

What did I not ask you about that you would like to know?
I think that's about it.

Where online can people learn more about the programs your working on  at Hunter?
Unfortunately, Hunter's in the middle of reworking its web site so there's a freeze on adding new content. There's a bit of info on the scholars program at http://hunter.cuny.edu/scholars but nothing specific to the Daedalus program. Once we have final CUNY and state approval of our Ed programs, those will go up as well but that's still pending.

I hope to have more of a web presence on both soon.

Do you have a Twitter account, blog, and/or other social media that I could share with my readers?
Note: The index for this interview series is at http://blog.acthompson.net/2017/10/computer-science-educator-interview.html and is updated as new interviews are posted.























Thursday, November 02, 2017

CS Educator Interview: Steven Floyd

Computer Science education is important all over the world. Recently Steven Floyd who teaches at Mother Teresa Catholic Secondary School in London, Ontario, Canada agreed to answer my questions. Steven received the 2017 Award for Teaching Excellence in Computer Science. It sounds like there are some good things going on at his school. I also like the way he talks about his teaching style and how he defines success.

Where do you teach? What sort of school is it?
I teach grade 10, 11 and 12 Computer Science and Computer Engineering at a High School in London, Ontario Canada.

Our school is made up of approximately 750 students and the school is a busy place with so many extra-curricular and classroom events. It's a diverse group of students with a wide range of interests, which is what makes it such an interesting place to teach.

How did you get started teaching computer science?
Back in 1999 I was taking a CS course in a dark, dreary lecture hall and I was just amazed at the concepts and ideas that allow our programs to run. The organization and design seemed almost "magical" and I wanted to bring that sense of wonder to students.

After my first year of teaching CS and Phys-Ed our Principal let me know that there would be a few more opportunities in the Phys-Ed department. I told him I wanted to focus on the CS courses and since then I haven't really looked back.

Right now, it's an especially exciting time in CS Education with work from organizations like the CSTA (https://www.csteachers.org/) and from researchers involved in Education and Mathematics like Dr. Gadanidis (http://researchideas.ca/) and many others.

My wife, Lisa Floyd (@lisaannefloyd), started teaching CS around the same time as I did, so over the last few years some of our “date nights” away from the kids have eventually evolved into discussions about things like “What differentiates abstraction from decomposition?”

She’s currently a Computer Science teacher and University Instructor and I'm proud to see her teaching CS and Computational Thinking to teachers and students around Canada and the world with Fair Chance Learning.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?
In Canada, each Province creates their own Curriculum and the CS curriculum in Ontario is fantastic (http://www.edu.gov.on.ca/eng/curriculum/secondary/computer10to12_2008.pdf) , although perhaps in need of a little refresh :)

Students can take Computer Programming in grade 10, 11 and 12 and Computer Science is offered in grades 11 and 12. The big difference between the two is that the CS classes go into a little more detail in terms of things like efficiencies, problem solving and algorithms.

Years ago, I took a step back and thought carefully about the students enrolling in our classes. I realized that only a few go on to study CS at University or College, and a handful pursue Engineering. The rest were interested in other areas. From this point on I decided I needed to teach in a way that focused on problem solving, computational thinking, algorithm design, creativity, innovation and entrepreneurship. I set a goal, which was to introduce the courses to a much wider group of students and to teach the course in a way that taught skills and concepts that might be applicable in any and all fields of study and work.

Our class sizes have grown tremendously and I get a number students understanding that just about every career will involve some form of computational thinking and problem solving. They realize that knowledge is important, but what's becoming even more important is being able to do something with that knowledge. Being a good problem solver will help you in just about any career!

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”
My teaching philosophy centers around three main ideas: 1) providing multiple levels of entry to concepts, (2) providing multiple contexts in which to learn and apply concepts, and (3) facilitating multiple pathways for students.

Many of the instructional methods that I implement involve what Seymour Papert described as “low floor/high ceiling” activities. These are activities in which a wide variety of students, with a wide variety of backgrounds, can enter into, grasp and apply. I also ensure the availability of multiple contexts in which to learn and apply concepts. We are fortunate to be teaching at a time where there exists a variety of programming environments and languages that are available at little or no cost. Finally, many of my instructional approaches are based on decisions that focus around the multiple pathways my students might take after High School. Some will pursue CS as a field of study, but many will pursue other fields in which a knowledge of CS concepts will provide them with an advantage.

What is the biggest challenge in teaching CS at your school?
I'm still struggling with the balance between the "cool", "magical" and creative elements of CS and the rigorous thinking that can sometimes be involved. I want to attract students to the program and show them how easy it is to get started, but I also want them to appreciate and participate in the complexity and quiet planning and analysis that goes in to worthwhile programs. It's a balance that we try to develop each day. I'm currently writing an online, Introduction to Computer Science course for the province and the course is being written with this theme in mind as well.

What is administration’s support (or lack of support) like at your school?
We have had a lot of support and it's only growing as more and more attention is being paid to CS, STEAM, Computational Thinking and Makerspaces. Administrators are doing a great job of looking past the technology and realizing that there are some very important skills and competencies being addressed within these areas.

I'm lucky that at my school the Mathematics and Science Department Heads see the value of the Computer Science and Computer Engineering courses. They have helped purchase equipment, and over the years they've seen some interesting purchases show up on department bills including "raspberry pis", "ECG sensors" and "drones".

Barham Dababneh and John Misek are two teachers at the school who help our students design, build and program our FIRST robotics robot. It's this type of support from colleagues that can transform a few dwindling courses into a thriving, school-wide program.

Just last year the drama teacher asked if our Robot could play a part in the school Christmas play. This type of interest and support for CS from so many different staff members is very, very cool!

How do you measure success for your program? For your students?
We wanted students at our school to develop a better understanding of technology and to be able to become comfortable with it.

It wasn't simply a goal to have more students in our courses, we also wanted to show the entire student body, as well as students from our surrounding elementary schools, how technology is evolving and how we can use it can be used effectively.

Students in our school, and even younger students from the community, now recognize our Robotics Team members and they're often asked about their progress on large projects. This is success, just having students acknowledge, understand and appreciate the technology, but more importantly acknowledge, understand and appreciate the work of these Computer Science students. Years ago I wanted our school to be a place where students who were interested in the CS felt valued and felt that they had a place to belong and thrive. That’s what we continue to work on.

What is the one thing you like to talk about regarding your program that I haven’t already asked?
Staff members in the school are very supportive of our programming competitions and robotics teams, and they are always promoting and asking about our events and projects. We have been fortunate to have been invited to Comic Conventions and Art Events in the community and our students are teaching younger students from other schools about CS. The teachers at these schools have been inspiring!

Our School Board Leaders are attending coding, robotics and Computational Thinking events and it's really been incredible to see so many different people support and become involved in the CS program.

CS will have an impact on everyone’s day to day life very soon, if it doesn’t already. That’s why it’s so important for CS initiatives to be collaborative efforts that involve people from a variety of areas.

A lot of resources I know about are US specific or at least US based. What sort of Canadian based or specific resources do you use? People, government resources, events, and maybe other things.
There are some incredible Educators and Researchers in Canada that are doing some great things in CS.

I often find inspiration, resources and support from many of the following:
The Ontario English Catholic Teachers Association http://www.catholicteachers.ca/ has also been very supportive. They have funded projects that have allowed us to bring CS to elementary teachers and students across the community, even before it was trendy https://www.teachontario.ca/community/explore/teachontario-talks/blog/2016/08/30/driving-student-engagement-in-mathematics-with-coding-and-programming
And I know that I’m a little bias, but everyone has to see what my wife is doing! She’s an inspiration: @lisaannefloyd

Tell me about your online presence (if any)
My website of resources, etc: techthings.ca/learn
Blog: https://stevenpfloyd.wordpress.com/ (like a few jobs around my house, this is a work in progress…)
Twitter: @stevenpfloyd

Note: The index for this interview series is at http://blog.acthompson.net/2017/10/computer-science-educator-interview.html and is updated as new interviews are posted.







































Wednesday, November 01, 2017

Vicki Davis Interviews Alfred Thompson about CS Education

Vicki Davis has a wonderful podcast with interesting educators. Over the summer she interviewed me about teaching Computer Science. Topics include:

  • How to get kids moving as you teach programming
  • What happens when a school has every student learn Computer Science
  • How to engage young women in Computer Science Programming

Give it a listen!