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!