Friday, December 22, 2017

Looking Back on Computer Science Education in 2017

Time to look back on the past year I think. I wrote a post in January about what I was watching (Computer Science Education Things I’m Watching in 2017) so I think a wrap up is called  for. So what was I watching and what did I see?

Computer Science for Everyone – I think we’ve seen a lot of progress here. States continue to write standards and develop plans for teacher certification. My own home state of New Hampshire had certification requirements approved for example. Now we’re working on K-12 standards. We’re ahead of some states and behind others. I think we’ll all be looking at the leading edge states going forward. There is still some discussion over if “for all” means it is offered to all of if it means everyone has to take it. We’ll see that continue to shake out this coming year I think.

Advanced Placement Computer Science Principles – I think the number of students who took this last May surprised a lot of people. I know it was even more than I expected. I have been teaching it this fall (I’m using the code.org curriculum but there are other excellent ones available). My students seem to be enjoying the course and learning a lot. While I am curious to see how they do on the exam I am more curious to see what they think of the course a couple of years down the line. That is the real judge of a course in my opinion.

Enrolment in APCS A is down in my school but I am not sure if that is a result of the APCS P course (some of my APCS P students already took APCS A) or some other factor. This is something else to watch going forward.

Expanding CS Education Before High School – The #CSk8 twitter chat continues growing by leaps and bounds. My feeling is that we saw a lot more K-8 CS people at the CSTA conference this past summer as well. I think in some regards we’ve seeing faster growth here than we are at the high school level though I don’t have actual data. code.org and organizations affiliated with the CS for All Consortium have done a lot of training.  The CS for All Consortium says they have worked with 5% of all the schools in the country. That is huge for year one.

Making and CS – I haven’t seen as much here as I had hoped. Where I do see it most is in K-8 though. I think that makes sense as K-8 CS curriculum is starting from a much smaller base and has a lot less inertia from existing CS curriculum to work around. Plus younger students are used to making things in school.

There are some curriculum resources using making but they tend to cover the range of grades 6 through 9 (or maybe 10). That’s good as far as it goes but I’d really like to see an advanced CS course involving the Internet of Things or serious making that is different from robotics. The AP courses may be more of a barrier than a help there though.

What Else? Looking back I see that government interest in CS education continues to grow. Even the Trump administration seems in favor of it. They may not be pushing it as hard as the Obama administration but they are doing more than just not getting in the way. Real progress requires work at the state and local levels and that support seems as strong as ever.

What were the highs and lows of computer science education that you observed in 2017? And what should I be watching in 2018? That blog post comes out after the first of the year.

Monday, December 18, 2017

What Do You Do Besides Write Code?

A bunch of years ago I read an op-ed piece in one of the news magazines. I forget the one but the piece itself has stuck with me for years. The Op-ed was written by a guy who was critical of software people. He was in construction and built things. And on the weekend he built more things. Software people just wrote code and didn’t, in his view, do useful things with their free time. At least they didn’t do construction type things on their own houses.

My first reaction was, clearly he wasn’t watching me as I built a large deck for my house or any of the other projects I’d done around the house. He clearly didn’t know my friend Philip who is building his own house. Yes, with his own hands. The man is an amazing carpenter who is also quite the software person. And he doesn’t know my friend Clint whose projects over the years have amazed with with their creativity and complicated construction. Or many of the others I know who build things with their hands and make their homes or cars truly their own.

My second thought was, the man wants me to be impressed that he does the something on weekends as he does for work? That’s crazy. He should be doing something else to stretch himself. If he really wanted to impress me he should tell me about the code he writes in his down time. People need something other than what they do for a living to keep them really grounded.

An article in Medium (“Every Computer Scientist Should Have A Creative Hobby” by Yash Tulsiani https://medium.com/@ytulsi/im-a-computer-science-major-interning-at-a-creative-agency-325bee27ed09 ) got me thinking about this again today.

Generally the best technical people, especially computer science people, I have known have had some sort of other creative outlet. Some music, some wood working (amazing how many CS people love power tools), and some write fiction. A bunch of them are seriously into photography.  

Computing used to be something that stayed locked into environment controlled glass rooms that people might be able to see into but not interact with. The opposite is true today. While once upon a time you could get away with esoteric and complex user interfaces or boring simple ones – card readers anyone? Today we talk to our computers and expect them to talk back. Today we want it all to be easy – swipe left, swipe right, swipe down.

Today computer science is never in isolation Today it’s “computer science and …” where the “and” is anything and everything. People who can’t see past the computer and not very useful. People who are not creative and innovative are not the idea computer scientist today.

One of the things that creative hobbies have in common with computing is that they force one to look at things. To look closely at times, to look from far away at other times, and generally to look differently. A person who only has code as a tool and programming as a way of looking at problems is as bad as the carpenter who only has a hammer and sees all problems as nails.

As a teacher I occasionally see students who get totally immersed in one thing. It may be sports, it may be their music or art, sometimes it is computing, sometimes it is in some other academic subject. What ever it is I worry that they lose sight of the big picture. That can be a fatal trap in a future where most people will have multiple careers.

So you can code? Great! What other creative outlets do you enjoy?

Tuesday, December 05, 2017

Some Thoughts on Drag and Drop Block Programming

I’ve toyed with drag and drop or block based programming for a bunch of years now. I even keep a list of block programming platforms. But this year I am really using them a lot with students. It’s been a real learning experience for me and my students. I’m using AppInventor with my mobile application programming students and code.org’s AppLab with my APCS Principles students. Now the AP class is using AppLab with JavaScript now but we started with the blocks and the interface is still very much drag and drop related.

I’m thinking about this in two ways. One as for my own projects and one as a teaching tool. I’m old school – started programming with punch cards and FORTRAN – so I confess that I am still most comfortable doing my own programming in traditional languages (mostly in C# these days with some Visual basic depending on my mood0. For for students things are different.

First the good. In many ways my mobile apps students are doing more advanced things than my Honors Programming students (C# there). For example connecting to Amazon’s API is a snap in AppInventor. Setting up things like nested code is also very easy. Syntax problems are pretty much not an issue. So we are covering a lot of concepts. That’s all great. I wonder how it will translate for learning text based languages. My AP students all have previous (to applab) experience with text based languages so they are not a control group for me.

One the down side, debugging block based code is different for me. I’m used to traditional debuggers and I haven’t figured out how (or if) that can be done in AppInventor. So of course I go old school with taking code out or adding messages in different places. Error messages in AppInventor are an area where I am facing a learning curve. The idiom is different and I’m teaching myself so it can be slow at times. Next time I teach this it will be better though as my students are showing me a lot of bugs learning opportunities. Still I have had the AppInventor emulator crash with no usable error message and that is a problem. I want to see if I can get some cheap devices to use next year. I think that will make some things better.

UI formatting is an other area I am struggling with. I think this is both a lack of experience and practice with the tool combined with different limitations on a mobile device screen. I am less than happy with my UI for my Windows Phone app which I wrote in C# and Visual Studio which suggests I need help with small screen UI design anyway.

In any case the students in my mobile app class are learning a lot (I think) and enjoying the course (I think) which are good indicators of success. I’m pretty happy with that. I’ll use AppInventor for future sections of Mobile App Programming.

I still feel like blocks are best for small apps and for beginners. Yes, I know people make some pretty sophisticated programs with them but I struggle to wrap my head about that being as easy as text based languages. Maybe 45 years of experience writing text based code is a learning disability for me. Or maybe I just need the right teacher? I’m taking blame here and trying not to blame the tools.

Today block programming languages seem to be mostly designed as teaching tools and they are good at that. I think a lot more has to be done to really make them usable as general purpose languages for more complicated large projects. I do think they can get there even if the path isn’t obvious to me.

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!

Tuesday, October 31, 2017

CS Educator Interview: Raji Gupta

Professional Development days are often a great opportunity to meet other teachers and share idea. Even though I pass his school twice a day on my way to my school I just met Raji Gupta recently at a CS4NH event. I was very interested in his school’s growing program and one course in particular - Edge of Computing . You’ll read about that below. And see a picture of his creative classroom!

Where do you teach? What sort of school is it?
I teach at Windham High School, in Windham, NH.  We are a public high school just north of the border with Massachusetts.  The school has just over 900 students.

How did you get started teaching computer science?
I am only in my third year teaching in total.  During my first year as a teacher, I was teaching math (not in Windham).  My friend/mentor reached out to me and asked if I would consider coming to Windham to grow a CS program.  Having no CS background I was at first hesitant, but as we talked through it, I came to the conclusion that our kids need someone to step up and figure it out.  And so here I am in my second year as a computer science teacher.

Prior to teaching I had a career in industry, but felt called to make a difference, and teaching was the right channel for me to move into.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?
WHS offered an object-oriented programming class for a few years, and then last year added AP CS A.  We had 44 students enrolled in AP CS A in its first year.  This year we dropped the OOP class and now offer: AP CS A, AP CS Principles, App Development, and Edge of Computing.  My overarching theme for all of my courses is that students are growing their problem solving, communication, and collaboration skills.  Obviously with the AP courses, I am trying to also help the students achieve a strong AP score.  I, frankly, think my role is less about instilling technical skills with my students and more helping them engage with CS and play with different environments and discover what they like.  So I don't offer introductory Java, or teach Javascript or Python, for example... yet. 


When we talked in person recently you told me about a new course you were piloting this year. Can you elaborate on it? What’s it about and what was your motivation for creating it?
Edge of Computing is a class that I sort of dreamt up.  I wanted students who had taken AP CS A to have a chance to explore really cool topics in technology.  We started the year by looking at Artificial Intelligence, for example.  The process wasn't about learning the technical aspects about AI, but rather to examine the social implications of this emerging technology.  Students ended up researching AI in ways I hadn't even thought of.  I learned so much from them.

Throughout the year we'll look at self-driving cars, quantum computing, Watson, virtual and augmented reality, etc.  I like to think that my class is like a form of recess.

My hope is that as the year finishes students will have dug into topics that they are curious about anyhow, and will be impassioned to really delve into that field during their undergraduate studies.  

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”
As I said earlier, I am not technical.  My prior career was in operations leadership.  I understand technology, and am trying to become proficient in Java, but I think what differentiates my classes is that I create an environment where kids want to learn, that they can use self-discovery, and partner-work to grow their skills and knowledge.  I am perfectly okay knowing less than my students.  I am experienced enough in life that I can ask them questions when they are stuck that helps them solve their own problems.  I think them growing this capability is really important.  My role is mentor, rather than teacher.

What is the biggest challenge in teaching CS at your school?
Capacity!  We had almost 200 students sign up for CS this year... as an elective!  I'm teaching an extra class, and I had to recruit one of my colleagues to teach a section of AP CS Principles.  It's a wonderful problem to have.

What is administration’s support (or lack of support) like at your school?
My director, Mike Koski, has been fantastic about giving me the freedom to develop a vision for CS at our school, and to then present that vision to our students. 

How do you measure success for your program? For your students?
With the AP courses, I certainly want my students to do well as it relates to College Board requirements.  But mostly I measure success by how many students we get to try CS.  They don't need to love it.  They don't need to take other CS courses.  But I do want them to have at least been exposed to CS and felt like they had a safe place to try and fail, and learn and succeed.  We have over 160 students taking at least one of the two AP CS courses this year. 

What is the one thing you like to talk about regarding your program that I haven’t already asked?
My classroom!  Last year I had all my APCSA students split into teams and enter the Verizon App Challenge.  One of the teams won best in state for New Hampshire.  Not only did the winning students get tablets, but the school also received a $5000 grant.  We used the money to redo a classroom.  You'll see in the picture that there is a good deal of whiteboard space (54' to be precise), there is fun furniture, and there are different levels that students can sit/stand at.  Prior to teaching I worked at Google and Amazon, so I've tried to make our classroom feel more like a creative space, and less like a classroom.

WHS CS Lab Small

Tell me about your online presence (if any)
· School name and web site: Windham High School.  http://whs.windhamsd.org/
· Twitter:  https://twitter.com/rajicgupta

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.























Monday, October 30, 2017

CS Educator Interview: Emmanuel Schanzer–The Update

I interviewed Emmanuel Schanzer in my last series. But like so many things, Bootstrap, the program he directs has grown and expanded. A number of teachers in this series teach using Bootstrap curriculum as well. So an updated interview with Emmanuel seemed like a good idea. Besides that I am a big fan of both Emmanuel and the Bootstrap program so highlighting them is a logical move for me.

Find out more about Bootstrap at http://www.bootstrapworld.org/
(Read my previous interview with Emmanuel Schanzer here).
bootstrap logo
When I interviewed you four years ago, Bootstrap was a single curriculum that was largely a mix of Algebra and computer science with game creation tossed in to make it even more interesting. Today Bootstrap has several courses. How did that happen?
Four years ago, Bootstrap offered a single course, which carefully-designed to align Algebra and Computer Science based on substantial research into both Math-Ed and CS-Ed (given the decade of work that went into it, I wouldn’t say the game was “tossed in” !). Back then we reached a little over 5,000 students each year. Things sure have changes since then! Today, we offer curricula for Algebra, Data Science, and more Advanced CS, and are piloting a course in Physics in conjunction with the American Association of Physics Teachers, the American Modeling Teachers Association, and STEMteachersNYC  We reach more than 25,000 students annually, making us one of the largest providers of in-school programming in the country.

There are two factors that led to this expansion:

1) We had hundreds of math teachers who dug into Computer Science with Bootstrap:Algebra, found that they liked it, and came back asking “what else have you got?” Schools that invested in Bootstrap:Algebra as a way to improve math instruction (or to check the “CS box”) suddenly found that there was now greater demand for dedicated CS classes, and were able to leverage their existing Bootstrap teachers teach them. This came as a happy surprise to us: rather than competing over the same small group of CS teachers nationwide, we were accidentally creating new CS teachers from the enormous pool of math teachers that have adopted our curriculum!

2) Lots of governors, superintendents and principals made pledges to bring CS to every child, but discovered that dedicated CS electives and required CS classes were either incredibly expensive (hiring/retaining new teachers), logistically impossible (adding a new class given finite hours in the day and rooms in the building), or actively undermined equity (opt-in classes are only taken by students with the means and/or inclination). As a result, they started asking how they might integrate CS into other subjects — and authentic integration is our special sauce! Squeezing CS into math is something folks have been trying to do for decades, with little success. Our success with Bootstrap:Algebra means we’ve got a track record of doing it right, which means we’ve been approached about integration into everything from Physics to Social Studies.


Bootstrap: Physics appears to be a way of integrating computer science and physics as a way to teach both. Is that a fair read or would you describe it differently?
Absolutely. When the AAPT and AMTA approached us about integrating computer science into Physics, we jumped at the chance! The modeling folks have an incredible research basis for their approach, which happens to dovetail perfectly with the pedagogical philosophy we use in Bootstrap. Modeling is a powerful approach to connecting the real world with mathematical abstractions, and students in Bootstrap:Physics blend empirical observations with mathematical models they literally build through programming. Seeing their own models running as a simulation - superimposed over data they’ve collected - is a potent experience. We’re piloting the course, now, and the response from teachers and students has been fantastic.


Two of your courses, Reactive and Data Science, seem to be more purely computer science focused than anything else you do. Where do you see them fitting? Grade level, added to existing courses, etc.?
We’ve building Bootstrap:Data Science for students in grades 8-12, and it’s scalable as a first CS class or an in-depth course on Data Science for students who’ve taken years of programming. The module covers introductory statistics (measures of center, linear regression, plotting and graphing, etc.) as well as introductory CS (looping/iteration, methods, functions, unit testing, data types and structures, etc.). In Bootstrap:Data Science, students select a dataset they care about, and learn how to analyze the data, identify trends, and search for correlations. We’re also making sure the curriculum addresses the infamous "Austerity Problem” by teaching rigorous software engineering techniques — so that students know how to verify their claims, instead of just making them. Finally, every student in Bootstrap:Data Science completes a research paper that describes their dataset, their analysis, and their findings.

The beauty of Data Science is that it’s applicable everywhere: Business teachers use tabular data and charts all the time to teach students about business models and sales data; Statistics teachers use tabular data, mean median and mode, and plotting; we think a lot of CS teachers will start to be looking at Data Science over the next few years, as a way to engage students in questions they care about ("who is the best quarterback of all time?”, “which restaurants are the best value?”, etc.). We’ve already had a lot of interest from each group, but there’s one other audience of teachers who have largely been left out of the STEM discussion: social studies teachers. What IS the impact of the electoral college? How do we know if a policy is successful or not? Is “Stop and Frisk” racist? Social Studies teachers regularly deal with questions about data and society, focusing heavily on making inferences from data and writing persuasively about the results. So yeah, plenty of folks will use Bootstrap:DS as a semester-long CS elective, but we think the magic comes from integrating into courses like social studies, where data analysis and writing matters most. Add this to our work in Physics and Algebra, and every school in the US can now offer three courses in Computer Science — all without having to find room in the budget for a new teacher or room in the schedule for a new class!

Bootstrap:Reactive is your classic hardcore CS — we cover data structures, rigorous software engineering in a Python-like environment, and a twist on FRP and MVC-style architectures. We see it as a semester-long CS course, or an integrated module into a full-year AP or post-AP CS course. It’s designed to be a follow-up to our Algebra and/or Data Science modules, and allow students to build any program they can imagine. Even though it’s only been out for a short time, we’re already seeing hundreds of students each year complete the class, building everything from maze-solving and multiplayer games to cell-phone apps. Schools like New York’s Academy for Software Engineering are using Bootstrap:Reactive as the programming module for AP CS Principles, and seeing students build on what they know from algebra. Leveraging prior knowledge is a huge win for us, and when it’s prior knowledge from a class that every child takes it’s a win that reaches all children.

The original Bootstrap: algebra continues to grow and evolve. How is it different from four years ago?
People say “CS is like math” all the time, but it turns out that Math transfer is an incredibly difficult nut to crack. We’re thrilled to be the standard bearer here, and we’re constantly refining our approaches through careful research, student data and teacher feedback. With help from the entire Bootstrap:Algebra community, we’ve made improvements to the curriculum in terms of supplemental materials, deeper connections to graphing functions, and lessons dealing with topics like Ratio and Proportion, Quadratics, and Exponential Functions. We’re proud to be the first programming course to show real algebra transfer at this scale, and we’ll be announcing some exciting results at SIGCSE this year.


I noticed a Bootstrap Hour of Code lesson recently. Is that a “hook” for students to do more with Bootstrap? Is it also a way to expose teachers to a different way of teaching that they might not otherwise see?
Absolutely. For teachers who are curious about Bootstrap, or who are looking for something more challenging after the normal Hour  of Code, give our Hour of Code a try this year during CSEdWeek

I see announcements for Bootstrap professional development regularly. How do they workshops come about? Do districts come to you, ask for them, and fund them? Or is there some other model for when and where they are offered?
We run trainings for all our courses year-round, though obviously we do the bulk of them in the summer when most teachers are available for PD. The vast majority of our workshops come from either districts or states reaching out to us directly (Austin, Dallas, NYC, CPS, and DCPS just to name a few), or from companies looking to sponsor CS Education in their communities (Facebook, Palantir, LinkedIn, 3M, and many more). We encourage states, districts, schools and companies to contact us directly about running a workshop, at contact@BootstrapWorld.org.


What sort of background makes for a good Bootstrap teacher? Are you training mostly math and physics teachers to teach a new way of teaching their subjects? Who else picks up Bootstrap and adopts it?
We get a good mix of CS and non-CS teachers. In fact, we probably have the most diverse cohort of teachers in the business — with such a variety of courses, we have CS, math, physics, business and social studies teachers working with students as young as 9 and as old as 25, in settings from continuation schools in California to accelerated elementary schools Maryland! When computer science becomes “teaching a tool”, as it so often does, you tend to only get teachers who are excited by tools. But when you focus on teaching content, you get a much larger, richer and more diverse set of teachers reaching students everywhere. That’s been our experience with Bootstrap, and we’re going to keep using that strategy moving forward.

What might I not know about the current state of Bootstrap as an organization and curriculum that I should know?
People know that Bootstrap is one of the largest providers of in-school CS nationwide, but not everyone knows that we’re also one of the largest providers of in-school computer science to girls and students of color nationwide. Of the 20,000 students we reached last year alone, nearly 9,000 of them are girls and young women and nearly 9,500 of them self-identify as African American or Latinx. We’re also investing heavily on making our materials accessible to differently-abled students, thanks to support from the NSF, Google, and the ESA Foundation, and are a proud development partner with AccessCSforAll.

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, October 26, 2017

CS Educator Interview: Adam Michlin

Adam and I interact mostly on Facebook where he has created a number of very active Facebook groups including one called Computer Science Educators He's a man of ideas and opinions as well as a seemingly insatiable drive to share information with others. I was pleased he was willing to take the time with my questions.

Where do you teach? What sort of school is it?

I just started a new job at Golda Och Academy (K-12), a Jewish school in West Orange, NJ where I am responsible for the 6-12th grade curriculum.

How did you get started teaching computer science?

Historically, I have a Bachelor's Degree in Computer Science from the University of California, Santa Cruz, where I was an undergraduate teaching assistant to a whole host of lower division and upper division Computer Science classes.

When I finished my BS degree, I lasted (literally!) one day in the computer industry and went on to become a professional musician and music teacher.

Later, living in Naples, FL, my full time music teaching load was cut to 50% due to the national financial crisis and a single computer science class of all levels was added to my schedule for the following year to increase my load to 66% and give me full benefits.  Ultimately, that class turned into a full department of two teachers, 150+ students, and a four year 9-12 CS curriculum which I was training my fellow district teachers in for 3 years.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

My previous private school had Introduction to Programming for students 8th-12th using Visual Basic taught by a colleague and I taught Intermediate Programming (C/C#), Advanced Video Game/Mobile Programming (C#/Swift), Advanced Computer Security/Web Programming (Assembly, C, PHP and JavaScript), and AP Computer Science A. I am currently working on expanding this curriculum to include 6th and 7th grade as well as to replace AP Computer Science A with a class of equal or more rigor and expect to be adding Data Structures in C++ shortly.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

Having first taught (as a TA) in an university environment, I find myself to be fairly traditional in my approach with lectures combined with lab time and prefer straight rows of desks with computers and mostly shy away from group work except in the most advanced classes. Where I depart from tradition is I avoid tests and homework and work very hard to intrinsically motivate students with project based learning. Students seem particularly motivated to write their own video games and learn advanced computer security (truthfully, hacking in the older MIT sense of the word - students are inundated with media surrounding computer security everywhere they get their news and I have found it to be my most popular class). My running joke is that my biggest discipline problem is that students don't want to leave my class when the bell rings, which isn't far from reality.

What is the biggest challenge in teaching CS at your school?

My current administration is extremely supportive, but I will say that historically there are always two main challenges. One, is getting the administration to understand that the material being taught is experimental creating somewhat of a disconnect with traditional teacher evaluation solutions. Other people have books that tell them what to teach in what order and pretty much everyone agrees what should be taught in, for example, an Algebra I class, whereas I am working on classes with little to no precedent in K-12 that I ultimately hope to write the book for others to use. Two, is getting Information Technology to understand that the staggering pace of change in Computer Science means that a, to be diplomatic, less conservative approach to new hardware and software is necessary.

What is administration’s support (or lack of support) like at your school?

As above, administration is at my current school is extremely supportive. They well understand that Computer Science is a young subject and allow me the flexibility to create new classes and curriculum. Access to the 6th and 7th grade students is particularly exciting and I am already finding 6th and 7th graders who are capable of doing collegiate level Computer Science work.

How do you measure success for your program? For your students?

Having grown two entirely elective programs, one public and one private, to the point of overloading my schedule, the percentage of students involved in the program is part of how I define my success. We instituted a Girls Who Code club at my previous school and grew the female representation in the program from 5 students to over 50 in 3 years, which is one of the achievements of which I am most proud.

I also keep in touch with as many of my former students, particularly those majoring in Computer Science, to see how well prepared they felt walking in a collegiate computer science program. To me, a 5 on the AP exam means nothing if students aren't walking into college and knocking their CS classes out of ballpark. It fascinates me that one of most common things I hear from my students majoring in CS is how useful learning to programming in the Linux/UNIX command line was for them.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I am particularly proud of my interweaving of history with computer science. Students have access to a whole host of working vintage computer systems including Apple IIs, Ataris and (soon!) Commodores for hands on use. Vintage computers are also integrated into the curriculum using Apple IIs to teach beginners AppleBASIC, 6502 assembly to advanced students and we use famous early Atari games to teach concepts including object oriented design and applied trigonometry.
At the same time, other parts of curriculum are cutting edge with tools like Swift 4/Xcode 9 and Visual Studio 2017 (C#/Visual Basic). In part, the goal is to get students to stop worrying about Windows vs. Macintosh vs. Linux and realize everything is just a computer whether an Apple II+ from 1979 or their brand new Apple iPhone <insert latest number here> in their pocket. Hence the term "Cutting Edge Old School" (ceos) Computer Science.


Tell me about your online presence (if any)
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, October 25, 2017

Observations on Parents Shopping for High Schools

We had an open house for prospective students and their parents at school on Sunday. We’re a private school so getting parents to see a reason to spend the money for their children to come is important. We talk to a lot of parents at these events. While not data I had a few interesting observations.

One: More and more girls are expressing interest in computer science every year. Many of them are actually doing some programming of sorts in middle school. Some in school, some in clubs, some in FIRST Lego league, some on their own. A lot of Scratch for sure. But that’s fine. It is driving interest in learning more. Girls have been happy to talk about what they are doing.

Two: Parents often tell me their child is into computers. I ask the student if that means they play video games or do they write programs. For boys it is usually video games or a mix of video games and some programming. For girls it is almost always programming. There is more programming by both boys and girls than these was a few years ago.

Three: Lots of interest in robotics. I credit FIRST Lego League. On the other hand I had one father ask about girl's involvement in our robotics team. He seemed surprised when I told him that team wide and in leadership roles it was about 50/50 boys and girls. I think that was the answer he wanted though.

Four: Mothers are as likely to come visit the CS department table as fathers. And both ask tough questions about the curriculum. Parents are looking for a solid CS program in high schools. One popular question is how long do students have to wait to take a CS course. For us, freshmen year with a required course. Parents seem to like that we start early and have a solid path for more depth in CS.

Five: I'm hearing about more middle schools using Scratch with students. It will be interesting to see how that rolls into HS CS. Clearly though middle schools are jumping into computer science in increasing numbers. I worry about the students at those schools who go to high schools without real computer science programs. Will they lose the interest that is built in middle school?

Tuesday, October 24, 2017

CS Educator Interview: Jackie Corricelli

Jackie Corricelli conducts Advanced Placement Computer Science summer institutes for teachers. That is how I first met here. And I learned a lot from her. She teaches workshops the way she teaches students so so practices what they preaches. She has won several state-wide and national awards for teaching.
WHERE DO YOU TEACH? WHAT SORT OF SCHOOL IS IT?
Conard High School, West Hartford, CT
Public HS
HOW DID YOU GET STARTED TEACHING COMPUTER SCIENCE?

I had a background in programming due to working at Raytheon as a Systems Engineer.  I learned C++ and Matlab on-the-job.  In addition, while growing up, I played with Basic Programming on a Commodore Computer that my Aunt gave to me.  The programs arrived in Ranger Rick Magazines and I would save them onto a tape.  I used Basic to make shapes and later, in high school to program my graphing calculator.  I never saw these things (playing on the Commodore or programming my calculator) as "computer science".  I did not get the connection until I worked at Raytheon. 
My certification is in teaching math.  I guess I started teaching CS when I helped students see how to program their calculator in math courses. 
My official start teaching computer science coursework was about 5 years ago at Conard when my supervisor and I agreed AP CS A would be helpful to our students to become better problem solvers.  So we started AP CS A in Fall 2012.  I was trained by Stevie Lord at Taft; two years in a row (Summer 2011, 2012).  Then I got involved as an AP CS Principles Pilot Teacher in Summer 2013.  This meant I received a lot of great training from College Board and many great CS Teachers from across the US and contributed to training for other teachers for College Board to support implementation of this course.  I did not hear about the CSTA until the College Board Conference.  I joined while at that conference in Summer 2013 and this gave me a network of CS teachers close to home.   At Conard, we started offering CS Principles as a course in Fall 2014. 
 
DESCRIBE THE COMPUTER SCIENCE CURRICULUM AT YOUR SCHOOL. WHAT COURSES DO YOU HAVE AND WHAT ARE THE FOCUSES OF EACH?

We have courses in computer science listed on page 22 here: https://drive.google.com/file/d/0B9qL2-maX-Q0R2NGUWVUcDJKd3U3bTJRWDdjOFctd2Z2eWNZ/view
CS Courses are offered in our Math Department and in the Technology/Engineering Department.  Computer Science Courses are assigned STEM Credit. 

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

My philosophy is to continue to love to learn with my students so I can help them to do the same to the best of my ability.  What works each year depends on my students.  Sometimes I create videos or "flip" the class, but that does not always work.  Sometimes I create a great project as a way to help them to learn.  For it to work, the project needs to be a good fit.  Sometimes I lecture and/or drill a concept for them to help them become more fluent.  It really depends on the students, the class, and what is working.   My favorite thing to do is to help students do something with what they just learned.
 
WHAT IS THE BIGGEST CHALLENGE IN TEACHING CS AT YOUR SCHOOL?

The biggest challenge is to be sure that people understand what Computer Science is so that students understand the courses that they are signing up to take and how these courses are related to their future.  Computer Science is interesting, accessible to all, and fun.  However, when you really start tracing code or understanding programming languages, it is not easy.  Helping students to see joy in this struggle is the key.   We continue to use the Hour of Code and rely on the support of many adults in our large school to help all students realize this and sign up for computer science coursework.  We have several amazing teachers, interesting courses and many great clubs, all to provide different access points for our students.  The more ways students can see how they are connected to computer science and the more adults that are working together with this goal in mind, the more likely it is that they will sign up and love it!  
WHAT IS ADMINISTRATION’S SUPPORT (OR LACK OF SUPPORT) LIKE AT YOUR SCHOOL?

Administration in West Hartford Public Schools is extremely supportive.  The number of Computer Science teachers in our school has increased with student demand.  We have teachers in our math department and our technology and engineering department working toward helping students learn computer science.  For us to attend training, have time and space to run the Hour of Code, manage and be supported for Clubs related to CS, and continue to offer interesting and fun courses that appeal to our students, we have needed and enjoyed their support. Without it, we would not have been able to develop and sustain our growth.
 
HOW DO YOU MEASURE SUCCESS FOR YOUR PROGRAM? FOR YOUR STUDENTS?

Success is measured by the extent to which students feel supported and challenged while they are here and are able to graduate and be successful at college and career pursuits.  My number one goal is to help students realize that they are in control of their lives and that their most important tool is knowledge.
 
 
YOU TEACH ADVANCED PLACEMENT WORKSHOPS AND SUMMER INSTITUTES FOR TEACHERS. WHAT’S INVOLVED IN THAT AND HOW DID YOU GET STARTED?

As a pilot teacher, I was asked to teach for AP CS Principles.  I graded the Performance Tasks for ETS in June 2016 and June 2017 to continue to be sure I have the information teachers need to support their students.
To become an institute teacher, I recommend that teachers participate in the grading.  From there, you will develop experience with the course that could lead to having  opportunities to teach.
 
TELL ME ABOUT YOUR ONLINE PRESENCE (IF ANY)

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.