Saturday, November 12, 2022

CSTA New England Regional Conference #cstaNE2022

This year’s CSTA New England regional conference is at the University of Massachusetts (Amherst) school of Education. It’s a great venue. There are around 150 people here. I can remember when CSTA national conferences were smaller than that. It just shows the growth in CSTA and the growing strength of CSTA chapters over the last several years.

I am running into a number of people I know and meeting some new people as well. That is what makes in-person conferences so extra special.

The energy level is high here with teachers from all over New England and New York. The opening keynote was by Dr. Cheryl Swanier who talked about “Changing the Face of Technology for Social Good.” Tech has a woman problem – we don’t have enough of them. As part of her talk, Dr. Swanier showed this video Girls in Tech for Web Summit - Ruthe Farmer – YouTube We’ve been taking about this problem for a while but we really need to take our actions up a notch. The case is pretty clear.  Dr. Swanier also talked about explicitly teach problem solving. Much as we’d like to think that teaching programming does that, the truth is that it has to be taught explicitly.

My first regular session was “Teaching with Minecraft: Education Edition.” You’d think I would know all about this but honestly I have trouble grokking it. My grandson has seen it and thinks its cool so I figured I should learn more about it. Minecraft Education requires a license. That may limit what I can do initially. However, it looks like there are a lot of resources for teachers including lesson plans, the ability to share worlds, create NPCs (non player characters), and portfolios. There are Code Builder options for blocks, Python, or JavaScript with MakeCode.There is a demo that can be used with “An Hour of Code” and I will play with that. I was pretty impressed with what I saw today.

There were 10 or 12 exhibits at the event. One that really interested me was the Kibo robot from Robot Kits For Kids | KIBO | Kinder Lab Robotics.

These robots are programmed with blocks. Not virtual blocks! Physical blocks that cane be connected together. Once the program blocks are together the bar codes on the blocks are scanned into the robot which will execute the program This looks pretty interesting.

After lunch, we had a panel of CS/STEM leaders from the New England departments of Education reporting on what progress the states have made in the last few years. The tl;dr of it is that there are been a lot of progress. But the efforts could really use more money. States have created certification programs, made progress in getting states to require schools to offer CS courses. We’ve still got a long way to go. We could use more money for teacher PD. We could require CS courses for graduation. Although in several states CS courses can count for graduation credits in various ways.

Next up for me, Kathy Kleiman, Founder of the ENIAC Programmers Project, who told the story of the women behind the ENIAC. A story I have heard before but Dr. Kleinman tells it really well. I loved that she talked about the history of these women after the war. A lot of information at ENIAC PROGRAMMERS PROJECT

Next up for me, Gencyber Teacher Academy @ the Univ of New Haven: Incorporating Cybersecurity Concepts into 9th-12th High School STEM Curriculum.

This program includes a week long summer "camp" and follow up virtual sessions. Last year the program just included 25 teachers from Connecticut but applicants from other states are welcome to apply for next summer.  Anyway, it comes with a stipend and some good free stuff. And a lot of good learning,

Last regular session of the day for me, Bring Computation to Life with the micro:bit. I love the Micro:Bit and always like to learn about how teachers are using them in their classrooms. I linked to the presentation above and on slide 7 you can find the mini project that opened the session with links to the code used. It uses the ability of the Micro:Bit to send and receive messages. You will find a lot of useful links on that slide deck including in the speaker notes.

The closing plenary involved a lot of recognition of CS teacher award winners. and door prizes!

Next year the conference will be on October 20, 2023 at the University of Connecticut Storrs. Should be a good one.

Tuesday, October 25, 2022

The Computer Science Professional Development Problem

Mike Zamansky is stirring up trouble again. OK not really his intent I’m sure but people can get defensive. I have to say that I agree in principle with most of his post at Why PD doesn't work for CS

Mike lists four different types of PDs.

  • Teachers sharing practices
  • conferences and meetings that teachers choose to attend
  • PD run by content providers, that is, people selling something
  • PD required by schools and districts

It’s as good a break down as any though the fourth kind can really include any of the first three. So I will zero in on those for now. Full disclosure: I have given all three of those types of PD in my time. This includes working for a content provider, Microsoft in this case, that was more or less selling something even though the stuff I was presenting to teachers was free.

I think that these types of PD can be great things for improving a teacher’s knowledge and skills. None of them are really good for starting from scratch.

Teachers sharing practices is a wonderful thing. At least if the audience has a solid base to start. We see a lot of it in social media. Not as much on blogs as I would like but still some valuable stuff is shared on Facebook and even Twitter. I have learned a lot from teachers sharing practices. I hope I have helped some teachers as well. Short bursts of knowledge is not a foundation to start a CS teaching career on though.

Conferences are wonderful. The sessions are short, typically 45 minutes to an hour and a half. They are great for sharing and for helping teachers to build on existing knowledge or to lead them in new directions for further exploration. But one should not expect a new to CS teacher to attend a conference (or two) and expect them to be a trained teacher.

PD run by content providers are typically longer form. Usually a week, sometimes two. These can be awesome especially if they are given to educators who have prior experience For example, a teacher who has taught simple web page building attending a session of a more advanced toolset for a more advanced course. Or a teacher who is learning a new programming language who can relate it to previous knowledge. These sorts of PD can be a mixed bad of course. Some focus totally on the tool and not much of pedagogy. Others are concept focused as much a tool focused. Regardless, these can be very valuable especially when the content provider is a non-profit with goals beyond selling product.

We’re getting to an interesting point in the development of CS for All. We’re rapidly outgrowing the availability of strong technical CS educators. Qualified CS teachers are hard to find. We’re not doing students any favor by putting untrained or antiquatedly trained teachers in the classroom. Colleges and universities have been complaining about having to reteach students who were poorly taught in high school for years. Do we really want to see more of that? I think not.

We really need more long term training for CS teachers. We’re starting to see some programs and more universities are developing CS education research programs and working with schools of education. That really needs to ramp up. States have to start requiring more training for CS teachers AND put some money into making it happen.

Friday, October 07, 2022

Micro:Bit Programming for Grades K to 3 With #MicroCode

The Micro:Bit is a pretty cool piece of hardware being used in a lot of schools. It’s mostly used in middle school and above but that may be changing. New from Microsoft is Microcode beta. Programming is via a MicroCode web editor at aka.ms/m9. Microcode documentation is at Microsoft MicroCode for micro:bit (beta)

Take a look at the intro video below.People who have used Kodu Game Lab will see some simularity in MicroCode. Although the graphics are very different, the programming modularity is similar. With both, programming is drag and drop using cute little kid friendly icons.

Besides the Micro:Bit itself, Micro:Code supports Jacdac devices which opens a lot of new prossibilities. I wrote about JacDac back in July - Jacdac and Micro:Bit 2.0–First Look.

I haven’t tried this with my 8 year old grandson yet but I hope to soon. I think he’ll like it.

Wednesday, September 28, 2022

How Far We Have Come With Programming Languages

Last night I had a dream during which someone suggested that COBOL would make a good first programming language. They tried to promote the data division and English language syntax as plusses. When I shared this on social media it got a lot of laughs. Few would take this as a serious idea and with good reason.

We used to joke that the hardest part of programming in COBOL was learning how to spell environment. (You had to be there) But really that data division was a bear to get right. The cognitive load was a lot for beginners. Today they are some who think that static variable declarations are enough cognitive load to hold students back and COBOL was a lot of effort.

COBOL is still around and I understand that it has changed somewhat. I thought that “Structured Programming in COBOL” (there was such a book) was a stretch but object oriented  COBOL just boggles my mind.

Most of the people in my age group in the industry have some experience with COBOL. For more than a few it was the first or second or, as in my case, third programming language. Learning multiple programming languages was a big thing early in my career. FORTRAN, COBOL, BASIC, and C (before C++)  were all a part of many people’s tool box. I worked on one project that had code in all four of those languages plus PASCAL.

Today we have a lot of new languages. C++. C#, Java, JavaScript, Rust, and I could go on and on. Today’s languages have more and more powerful decision structures, looping structures and libraries that do things for us that we used to have to program ourselves. We have improved error handling, the ability to use classes and objects, and many other cool features. That doesn’t even touch on powerful IDEs and the ability to compile and get results in seconds rather than hours and days.

With power often comes complexity. Complexity means cognitive load and potential for confusion and errors. We walk a fine line determining what to teach and how to prevent students from getting overloaded. It’s an exciting time to be teaching for sure.

Thursday, September 22, 2022

Dealing With Student Misconceptions

I was reading through The Big Book of Computing Pedagogy, as one does, the other night. Specifically, the section on student misconceptions. Misconceptions are one of my favorite topics in teaching computer science. The articles in this book are very helpful in understanding what student misbelieve and why they do so.

I’ve seen students with all of the common misconceptions and, of course, I try my best to help them overcome them before they get students into trouble.I tried to remember if I experienced any of them myself but memory of 50 years ago is very selective. What I do remember is that I had some experiences of getting very close to the hardware early on. While my first course was learning FORTRAN the computer we used required some extra (compared to today) to run. Specifically, it requires that one toggle in some instruction in binary using toggle switches to get it to read in a couple of punch cards that did the next phase of the boot up.

Not long after I learned the first two of what would be 7 or 8 assembly languages over my career. There is something about toggling a memory address so that one could read (in binary lights) or enter information in binary with those same switches to program a computer that give one a good understanding of what memory actually is.t

Those days are long gone of course and while assembly language still gets one close to the computer and gives an understanding of how things like memory work it can also be a gate or barrier to students. It’s actually not the ideal way to understand concepts that one might think. It’s not the sort of visual experience that today’s students are used to learning from.

What we really need is some better visualization tools for introducing concepts. My first thought was using debugging tools such as those built into tools like Visual Studio. One can single step though instructions and view the contents of memory (variable) locations. It works but it is slow and tedious. That may be fine for debugging but for learning it has a high cognitive load that gets in the way of what we’re trying to do in teaching.

So I have been thinking about how to create visualizations that are simple to use and that might help clear up misconceptions. Two things my thinking is focusing on are how variables and memory work and how loops and loop control variables work. Eventually I have to narrow it down to one of them to start. I should probably look at what might already be available first. I thought I would start by asking you, my readers, for suggestions. So, any ideas? How do you help students visualize these concepts? Any suggestions on tools for creating visualizations?

Tuesday, September 20, 2022

Coding It Yourself Can Be Fun

Every couple of weeks I bake a couple of loaves of bread. The bread mostly gets used for breakfast sandwiches. Now my bread does not look as perfect as what I could get in a bakery. And the bagels? Once in a while I try my hand at bagels, don’t look anything close to what I get at my favorite bagel place. But they all taste good and I find it very satisfying to make it myself.

Coding can be a bit the same. Not everyone writes professional looking (or performing) code but sometimes there is some satisfaction in having a program that works just they way you want it to and does just what you need. Maybe it is not “release to the public” neat and tidy. It may be what we used to call a “programmers program.” In other words, a program that only the programmer who write it could (or would) use. My Wordle solver helper program is one such. It works great – for me. It doesn’t have the error checking a released program should have. And maybe it should start at one and not zero. But it works great for me.

Programming is basically stating a process or method using computer code. My Wordle solver represents my thinking of how I think Wordle could be solved. It was fun to write and is fun to use. It’s not ready for prime time though. Does that make it a bad program? No more than my imperfect bread or bagels are bad. They both meet my needs and that, for me, for these, is all that matters.

In some ways, that is the message we may want to pass on to students. Many, perhaps most, of our students will not become professional software developers. They may still write code for their own tasks or interests though. We need to help them enjoy that experience. One way to do this is to assign projects that are interesting to the student. Open ended projects are good for this but even better is letting students select their own projects.

For semester ending projects, I used to allow students to select from a list of suggested projects and also to have the option to design their own projects (after discussion with the teacher) that solved a problem that they were interested in solving.  Helping students find the fun and satisfaction in solving an assignment promotes their learning. And, I hope, helps them think of computer science as worth doing for themselves.

Saturday, September 03, 2022

Names Have Power – Names and Programming

"A rose by any other name would smell as sweet" William Shakespeare.

There are cultures where people have a sort of public name and a secret or true name that is rarely shared because knowing ones true name gives people power over them.  In fact, knowing a name is powerful in all cultures. Consider the difference between calling “hey you” versus calling a child by their actual name. Which way draws them up sharp?

Naming is important in computer programming as well. It’s not always as easy or as simple as beginners assume it is. Mike Zamansky’s post Subtle Errors gives a good example.  Having more than one item with the same name causes the sort of ambiguity that computers do not handle well. Some names (identifiers as we often call them in programming) have special meanings. Getting names slightly wrong can cause other problems.

A name can provide a great deal of information to a programmer. To the compiler names are pointers to more information. A variable name identifies a location to the computer. Other information about the data stored in that location is specified in other ways. The computer doesn’t care what characters make up the name. That it is unique is important but not the characters involved. In many programming languages the case of the letters makes two names completely different. People tend to see them as identical.

Beginners often think that “the computer” pays attention to everything in a program the same way people do. That’s not the case though. I’ve had students write comments in their code believing that the computer will read the comment and perform the action. They may also assume that naming conventions, starting all integer valuable names with “int” for example, will influence the computer. Again, not usually the case.

[Note: back in the day, any variable starting with one of the letters “I” through “n” was automatically an integer.]

Names/identifiers can communicate a lot of information to programmers. They are pretty important for sure.It is easy to gloss over them and minimize their importance. Getting them right though is something worth spending time on.

Wednesday, August 17, 2022

A Spoon Full of Computer Science

I was thinking about data science lately. The problem is that I don’t know much about data science. I learned about data bases in school and worked with them some in industry but that was mostly about how they work internally. I used to give talks on how B* Trees worked and I could (back then) give serious talks on how databases do journaling. But I never did much of anything with real work data applications. Not professionally at lease. But I do like playing around with data and Excel is my friend.

So my first thought was to look at Bootstrap’s data Science curriculum. I did find their definition:

data science the science of collecting, organizing, and drawing general conclusions from data, with the help of computers.

Sounds good to me. I guess I have been doing some data science after all.

Looking though the curriculum had me thinking about Mark Guzdial's work with teaspoon languages. It feels like there are some things Bootstrap and Teaspoon languages have in common. The idea of teaspoon languages is to add some computer science to other subjects to broaden participation in CS. Bootstrap is using data sets from other subjects in their curriculum. So both are using CS and programming to help students learn about a lot more than just computer science or the subject they are taking. Note that Bootstrap also has Bootstrap Physics! and Bootstrap Algebra.

While I was doing all this thinking Mike Zamansky posted this post - Teaching CS - How early and how often? Mike askes a lot of practical questions about fitting CS into grades k through 8. It’s easy for us zealots to say that CS should be in every grade and expect K8 teachers to make magic but that is not really fair to anyone. Maybe the answer is to have some teaspoons of CS in existing subjects. It doesn’t make a lot of sense unless adding this CS makes learning the subject it is imbedded into better though.

We’ve seen for years in higher education that computer science and [some other area of study] can be a big win. Can we move some of that down to lower grades? Probably though it is going to take some time and some innovation. It’s worth doing, in my not so humble opinion. We use math in other subjects. We use reading and writing in every subject. Might not CS help teach/lean a lot more subjects than just programming? I think so.

Tuesday, August 16, 2022

Artificial Intelligence and CS Education

It;s seems like artificial intelligence has been “10 years away” for the last 40 years. Back in the mini computer days every computer was custom and configurations were designed by people. I worked for a company that believed that configuring computers was beyond the ability of computer software. From there I went to a different company that was developing rules based artificial intelligence. Using a special language called OPS5 they wrote software that configured computers faster and more accurately than people. Rules based AI was dependent on people to know the rules and properly prognathism. Limitations became apparent.

Today we have machine learning which basically means the computer is developing the rules. Rules is probably not the best definition though. We’re starting to see AI grow into many more areas than ever before. Think self driving cars for example. It’s becoming clear that understanding the world today means understanding something about artificial intelligence. What does that mean for K-12 computer science education?

The AI3K12 project is working on answering questions about teaching AI in K12. They have a lot of resources now and under development.

For now, most of the education is about AI. What it is. How it worse conceptually. What is  it being used for. And, perhaps most importantly, what does AI mean for society and the future. The math and science of creating AI platforms s a bit too much for most high school students let alone younger students. That can wait. Although there are tools that exist that students can use for their own projects which is pretty cool.

I am very concerned about bias in artificial intelligence (Bias in Artificial Intelligence. Inequality, racism and discrimination is just one article you will find from an internet search for “Bias in artificial intelligence) Systems that do not recognize that people of color are actually people is only one example Bias against women or various other groups of people can be baked into AI systems if developers are not VERY careful.

Also, how is AI being used? Facial recognition and privacy have become areas of concern in many areas and applications. 

These are more than just ethical issues, though ethics has got to be a core part of what we teach, as many other problems are unconscious bias or the result of innocent but false assumptions made by people who mean well but lack understanding of their own environment. Its a reason we need a lot more diversity is AI and CS as a whole. We have to teach students to think about these issues and to think beyond their own identities and beyond “the way we have always done it.”

Companies in industry are taking new looks at AI as well. One useful resource is Microsoft's framework for building AI systems responsibly - Microsoft On the Issues. The blog post talks about some issues Microsoft has faced and how they are addressing them. Companies are asking the “should me” question as well as the “can we” question. We need students to think about those questions from the start. The document itself is at Microsoft-Responsible-AI-Standard-v2-General-Requirements-3.pdf and makes interesting reading. It could start some class discussions as well.

Saturday, August 13, 2022

Cyber Security and CS Education

Way back in time, cybersecurity was all about controlling access to the computer in the locked room with the raised floor. Well, you had to trust the people you did let in of course. I will not say much about the students I went t university with who competed to create the best, most realistic login emulator to steal passwords because, you know, that was all in fun. Later in life I actually had supporting the real login software as part of my job responsibility.

We were more aware of security by then. It was the real world. We spent a lot of design time on our various OS subsystems to make sure that access was verified and that people could only access what they were authorized to access. Dial in lines and then networks made things a bit more risky. I remember one system that required a second password of 16 random characters that changed every 5 or ten minutes (I forget which). Someone broke in anyway. Social engineering not technical engineering. People were and are still the weak link in computer security.

In the early days few people had access to a computer. Fewer still had technical knowledge enough to crack into systems And most of them were (it seems) fairly trust worthy. As more people got access to both computers and knowledge breaking into systems became more common.

Today there is a lot of talk about cybersecurity and the need for more people to be trained in the field. What does that mean for high schools? For one thing, it means a lot of people are saying that high schools should teach it. What teaching cybersecurity means is a question with still developing answers.

Should schools offer a whole course in it or can they cover enough in an existing course? If a full course, a semester? A year? Some part of a year? You’ll get a lot of answers but little in the way of a consensus. A lot of discussion about this on Facebook group for  Cybersecurity Educators. Resources at CYBER.ORG are helpful as well.

For now, individual schools are making their own decisions. These decisions are based on things like teacher knowledge to teach such information, room in the schedule, and resources available. Some school IT departments are not willing to let students experiment on networks in a school. Or even, in some cases, to have students learn about network vulnerabilities! I suspect that career technical schools are going to be the main source of high school courses in cybersecurity. There is less focus on AP exams and more focus on preparing students for the work force sooner rather than later. Oh yeah, colleges and universities but they are not my focus.

Comprehensive high schools are more likely to add some cyber security information into existing courses. AP CS Principles for example. A few will have longer courses but I suspect most of those will be independent high schools and charters as they have fewer restrictions and their politics is different. (Different does not always mean better or worse to be clear.)

Maybe when (if?) we get to a place where the learning of coding is done well enough and deep enough in middle school we can move away from HS courses that “just” teaching programming and start using that programming to learn about other things in computer science. Like cybersecurity. Like data science (although we are seeing some of that in middle school already (Bootstrap:Data Science ) which is pretty exciting. And like more artificial intelligence.

Programming is cool (to me) and important (to everyone!) but there is more to computer science than programming. Security is an important part of that and high school CS educators have to have it on their radar and give serious thought to bringing it into their curriculum.

Thursday, July 28, 2022

Jacdac and Micro:Bit 2.0–First Look

Learning about Jacdac devices was my incentive to buy a Micro:Bit 2.0 The Micro:Bit 2.0 has a number of upgrades and new features from the original. These include a microphone and a speaker among others. That is probably justification enough to get an upgrade but being curious about the Jacdac devices, which requires the newer model, was the deciding factor. I am really enjoying spending time with external devices and the Jacdac devices are really easy to use.

I purchased the Micro:Bit from AdaFruit (micro:bit v2 Go Bundle - Batteries and USB Cable Included) Actually I bought two  because, well, why not? I bought the Kittenbot Jacdac Kit for micro:bit V2 from KittenBot My hope is that more manufacturers and suppliers will be offering Jacdac over time.

The kit comes with:

  • Jacdac Adapter – connects with Micro:Bit
  • Slider
  • Rotary Button
  • RGB Ring
  • 2 Keycap buttons
  • Magnetic Sensor
  • Light Sensor
  • Hub – for connecting even more devices
  • 5 cables of different lengths

Each part is labeled and has a QR code that will take you to documentation for that device. I took full advantage of that. One thing I learned the hard way but would have learned if I read the documentation is that the adapter has a switch that determines if the Micro:Bit powers the Jacdac devices or if the Jacdac (and some external power supply TBD) powers the Micro:Bit. Things worked much better with the switch in the right direction.

Once I got everything out and read some documentation I had to try something out. I started with the RGB Ring and the Rotary Button.  I started with individual example programs and then created my own. I had the rotor determine which LEDs were lit. Going backwards (negative numbers) had some issues of course. I might leave solving that to students if I were doing this in class.

I recommend starting at MakeCode Integration before you get to far on your own. It will step you though adding the Jacdac extensions to MakeCode, connecting to your Micro:Bit, and  other helpful information.

BTW, from MakeCode you can program using blocks (very easy) as well as either JavaScript or Python. You can move back and forth between languages as well. A lot of potential for learners there.

Next up I will be trying to think of some larger projects as well as experimenting with other sensors and gadgets.  I may even cut some boxes with my laser engraver for some projects. Making boxes with 3D printers is also an obvious thing to do.

Tuesday, July 19, 2022

Freedom To Teach Computer Science Our Way

Mike Zamansky had another interesting post (CS - it isn't all that) that got me thinking. The last three paragraphs started me going. For example

As CS becomes more part of the system I expect teachers to have less freedom in what they teach and how they teach. As a community we might be able to steer the ship towards keeping the good stuff but then again, we might not.

In talking to a lot of teachers at CSTA 2022, I realized that most CS teachers have a lot of freedom in what they teach as CS and how they teach it. Other than the Advanced Placement courses there are not many real limits on what and how we teach CS. One teacher said “as long as the students are happy I’m left alone.” That is both exciting and scary.

It’s exciting if a teacher with good content knowledge and skills in CS pedagogy says it, Scary if that is not the case. And the later is probably more common than the former. Of course there is a positive move in standards development and teacher certifiably rules that is trying to fix the problem of “anyone can teach CS.”

That has its risks as well. While most standards programs I am aware of are deeply involving experienced CS educators in their development, once standards start getting implemented by bureaucrats all bets are off. Standards can be inspiration or shackles. They can include people who are good at passing tests and exclude qualified people who don’t fit in the usual boxes.

Many, dare I say most, education administrators don’t really understand computers let a lone what it means to teach computer science. That is the source of some of our freedom but can also be a source of constriction if effective advocates for specific curriculum and teaching resources convince them to push things top down on classroom educators. I see it all too often “My administration wants me to use [some well sold curriculum]. Is it any good?”  Seems to me that excluding subject matter experts in the school should be making those decisions not people inexperienced with teaching the subject.

How we teach today is going to be influential If we teach everyone well we are more likely to keep some freedom in how we do things in the future. People tend to teach the same way they were taught. Given how much we still have to learn about how to teach CS we need to avoid that trap AND to promote a growth mindset that is open to new ways of teaching and learning.

It will be hard to keep computer science from being constrained in someone’s idea of neat little boxes. That is what bureaucrats like to see. As CS continues to grow we have to be flexible and we have to promote the need to be flexable to all the publics we deal with.

Monday, July 18, 2022

A Summary Look Back at #CSTA2022

CSTA 2022 was energizing! After three years of not seeing people in person it was awesome to reconnect with people. And to meet new people. The energy level was high through the whole event. Masks and proof of vaccination were required which I thought was great. It seemed to work out well at SIGCSE. Quite frankly, after lots of stories' of people getting COVID at ISTE which did not have those requirements I really apricated the carefulness of CSTA.

Masks did make it harder to recognize people. I’m glad I wore my trademark hat which one person told me was more famous than I am.

Sessions were very good as one expects. The exhibit hall had about 75 exhibitors and everyone was staffed by engaged, knowable, and upbeat people. The hallway track was really fun. I learned a lot from friends old and new in discussions. As I understand it there were about 1,700 people in attendance for everyone to talk to.

The venue, McCormick Place was huge. It needed to be to all all of the concurrent sessions. We only took up a small part of the place though. If you explored to far you could easily get lost. And I did. There was food available for purchase in the back of the exhibit hall. It wasn't bad. It was nice not to have to go far and wide to search for food. There were many good places to eat nearby however. I liked that I could get from the conference hotel to the conference without going outside. Especially the day it rained all day.

A good number of people approached me to say that they read and value this blog and/or my Twitter feed. I can't tell you how much that means to me. Thank you to all of you. You made CSTA extra special.

It looks like next year’s CSTA will be virtual. Sigh. I know that it will make it possible for a lot of people who can’t travel to an in-person conference to get valuable knowledge from sessions. A virtual exhibit hall doesn’t excite me though. And I will miss the hallway conversations. On the other hand, maybe we can have even more sessions and have them available to more people.

My previous posts on CSTA 2022

Sunday, July 17, 2022

My Day Four at #CSTA2022

It’s a short day today but with plenty to learn. Last night was a great party at the Museum of Science and Technology. I left early (age?) but I know that a lot of people stayed late and partied hardy. There may be some tired faces in sessions this morning. It was a great community building event so well worth it.

First session for me was “You CAN Teach Cyber Security with CYBER.ORG’s Cyber Learning Standards. CYBER.ORG is probably the premier Cybersecurity learning/teaching resources. CYBER.ORG is funded by the US Department of Homeland Security. We heard about a lot of their programs. It seems like they have something for almost everyone. I would start there for Cybersecurity resources for teaching.CYBER.ORG funded a large group of educators to write a set of Computer Science Learning Standards.

I had several good options for the last time slot but Nifty Assignments is a must see for me. The version at SIGCSE is always standing room only but apparently it is not as well known at CSTA yet. Baker Franke does a great job of putting this session together. For reference, CSTA Nifty Assignments are archived at CSTA Nifty Assignments SIGCSE Nifty Assignments are archived at Nifty Assignments. I was paying to much attention to take much in the way of notes but the archive should be updated soon. One of them can be played at Mind Reader - App Lab - Code.org The archive is updated and I can’t wait to try some of these when I get home.

That’s a wrap for me. I skipped the closing keynote to get to the airport early. I feel a little guilty but I’m also tired and my brain is kind of full. Some more general thoughts tomorrow.

Saturday, July 16, 2022

My Day Three at #CSTA2022

I got an early (for me ) start this morning. I attended a briefing session for session proctors (after missing yesterday’s) so that was good. A hot up of tea and some review of the schedule and I was good to go.

First session for me, Developing Cyber Sleuths (link to slides here) Cyber security is a rapidly growing area of need and of course creation. The latter not as fast as the former. One of the key early topics was related to the people side of security – policies and training for people. Hacking people is a key security flaw. New to me term, Purple Team. Combining Red Teams who try to break security and Blue Teams who try to stop hackers. Several interesting resources were shared. You can find them in the slides or course but I like Cybersecurity and Infrastructure Security Agency as a place to start. This sessions wasn’t quite what I was expecting but I feel like the links I got were worth my time.

After a couple of great hallway track conversations it was time for Creating All Year with APCS Principles. There were a couple of interesting sessions in this time slot so distance was a tie breaker. Of course, the create task is a special part of the APCS P exam (30% of the grade). This session was packed!

Jill Westerlund has her students create a video of their program running at the beginning of the school year.Videos must be in AP submission format and include what the create task requires. What a great idea for getting a jump on what they will need to the exam later! Snipping tools are introduced and required early as well. Require at least one mock task before they have to do the real thing. And grade it based on what they need for the exam. View it as formative assessment. Its about feedback to make sure they know how to do the real task. Be sure the mock task is not something they could turn in as a real CPT. Jill suggests requiring the official create task before your spring break. 

Bonus link: Jen Manly on Three Keys to a 40 Hour CS Teacher Work Week Jen is amazing. I love her short videos. I’ll bet this was a great session.

I spent lunch break and most of the first session period in the exhibit hall talking to people and catching up with some friends. Following people in social media is nothing like catching up in person. Another post on the exhibit hall is in the works. I took pictures.

My afternoon session was “Fun, Formative Feedback, and Assessments to Improve Learning” Slides are here. One of the first topics was Parsons Problems – one of my favorite tools. Apparently,  there is a Free, open-source graphical Parsons problem creator tool: https://codio.github.io/parsons-puzzle-ui/dist/ Next they talked about rubrics as tools to help and advise students. Next up was peer programming Here is a link to a CSTA Presentation - Pair Programming. Next up was some Autograding tools (links in their presentation)I encourage you to look at their slides for more information and resource links.


Friday, July 15, 2022

My Day Two at #CSTA2022

Day two started off great as I connected with several people from my home CSTA Chapter –CSTA New Hampshire. The CS community in New Hampshire is growing and the CSTA Chapter has been a part of that. I’m planning on getting more involved in chapter stuff  in the future.

My first session of the day was about teaching ethics when teaching artificial intelligence. Jeremy Keeshin (a last minute replacement as I understand it) from CodeHS was the presenter.  Seems like some good small group discussions took place. Maybe I was tired but I didn’t get into it very well. My fault. Wasted opportunity. I did get a copy of Jeremy’s book “Read Write Code” which I look forward to reading.

Next up for me was a session on preparing the future developers of the metaverse.  The presenters were from Carnegie Mellon. First I have heard of XR as a generic term to include Augmented Reality, Virtual Reality, and Modified Reality. We had some really interesting discussion of using virtual worlds in school. One school had a virtual birthday party in Minecraft. Minecraft has moved from pure play to an educational platform.

Students are picking different virtual worlds to play in as they age.It occurs to me that younger kids are building things in games like Minecraft and Roblox but older students, especially boys, and moving to games like Call of Duty which are more destructive. Something to think about.

My number one to look more into is Arena XR – An Augmented Reality Edge Network Architecture.

I really enjoyed this session and had some good interactions and learning with my tablemates. Slides for this session are at CSTA2022 NoStudentLeftBehind.pdf - Google Drive

Lunch break and more time in the exhibit hall. I got a close look at the Jacdac devices for use with a Micro:Bit. I may splurge and buy a starter kit. Note that I posted a brief look at Microsoft and other big companies exhibits at Amazon, Google, Meta, and Microsoft at #CSTA2022

First afternoon session was about writing for Hello World magazine. I was proctor and arrived before it started but after most people entered the room. Watching the clock is important as it is so easy to get distracted with so much going on. Anyway, the slides for this talk are available at CSTA_Writing Workshop Presentation.pptx - Google Slides  A lot of good stuff here. I hope this gets more teachers to write for the magazine.

Next up was a session on cryptography with an exercise in creating a Pringles can Enigma machine. We started the session with an brief introduction to Cyber.org and with an introduction to the Pigpen Cipher. (Note that this is one of the ciphers covered in my (PDF) free Tiny Book of Simple Cryptography)  We had some fun creating our mini Enigma machines and working though how they work. We only used one rotor but I brought home some sheets to make a larger one with a larger can when I get home.

Overall, a pretty good day. Some very good sessions, some good conversations at the exhibit hall, and many amazing face to face conversations with friends. I am exceedingly glad to be here this year.

Amazon, Google, Meta, and Microsoft at #CSTA2022

I blog about what interests me or stirs my curiosity. One thing that fits that is what are the really big tech companies doing to support CS education. So I am going to write briefly about the presence of Amazon, Google, Meta, and Microsoft (alphabetical order). Anyone else notice that we never see Apple at CSTA?

All of these companies have sessions at their booths and as regular conference sessions to talk about what they offer. If you are at CSTA you should at least stop by and see what they have to offer. It’s a lot.

Amazon and the Amazon Future Engineer Program

Amazon had one of the large end cap booths with a lot of people and materials. Their main emphasis was the Amazon Future Engineers program. This program offers curriculum for all levels of K-12 as well as resources and opportunities for teachers.

Amazon Future Engineer is a comprehensive childhood-to-career program aimed at increasing access to computer science education for children and young adults from underserved and underrepresented communities.

Google and programs' for CS Teachers Another big booth on an end cap. Lots of color and fun graphics. And swings! Also free messages.

The big thing here is Google’s CS First program. This is a great collection of curriculum and supporting resources that can be used during the school day or as an afterschool program

Meta and Meta Engineer for a week. You’re probably not surprised that the link for more information on this is at Facebook. Engineer for the Week | Facebook but also at Engineer for the Week (fb.com) The curriculum has a strong “coding for good” component.

Started in 2018, Meta's Engineer for the Week is a free program that introduces engineering to learners (ages 11-18) historically underrepresented in STEM. Over the course of 15 - 20 hours, learners work alongside adult facilitators to build tech prototypes that address a social issue of their choice.

Microsoft and MakeCode, MakeCode Arcade, and Minecraft

Also a nice sized booth on an end cap. Not as fancy as Google’s it gives the impression it was designed by software people not marketing experts. The emphasis was on writing code, especially with micro:bits, using MakeCode, games with MakeCode Arcade, and teaching CS using Minecraft. Lots of things including Micro:bit powered arcade games to touch and explore.

Thursday, July 14, 2022

Day One #CSTA2022

Well it was day one for me. I know that some people got in yesterday or earlier either because they were taking a workshop today or were part of the Chapter Leadership program. For me, today was about getting settled, meeting with old friend (and making some new ones), and the exhibit hall. Wow! has the exhibit hall grown. The conference as well. Apparently there are about 1700 attendees registered. I remember thinking 300 was big some years ago. Looks like about half the attendees are first timers as well. That is amazing and wonderful

My trip was good. I checked in for my flight with an app. I paid for the El (Chicago’s mass transit trains) with an app, and checked into my hotel with an app. Travel seems to be all about the apps these days.

The exhibit hall was open soon after I arrived at my hotel so I went right in after registration. Proof of vaccination is required to attend and wearing masks is required as well. I’m good with that. I hear a lot of people got COVID at ISTE and these measures make me feel safer. It seemed to work at SIGCSE!

I met many old friends while in the exhibit hall and walking around the conference. Catching up was great. We also talked about CS issues of course. So great to have people who share ideas. I couple of people I have not met in person before but who I know from social media visited with me as well. It is so good to put faces with names and be able to get to know each other. If you are at CSTA and are a blog reader or Twitter follower I would love to chat with you.

I walked through the exhibit hall several times to get a feel for what themes there are. I’ll be blogging for about that as the conference goes on but I’ll share a few first thoughts here now. Physical computing is big in the exhibit hall. Lots of robots but also many other programable gadgets. Cyber security was represented by several exhibitors as well. We really need to teach more of that in the US so I was glad to see thing. Several artificial intelligence programs were being highlighted in the exhibit hall. I want to dig into that more this conference.

Lots of curriculum providers are exhibiting which is not surprise. They’ve all be exhibiting at CSTA for several years. The companies with hardware all have curriculum as well. It’s not like the old days when people dumped some hardware and said “here. Figure out something interesting to do with this.” Progress I think.

Google, Microsoft, Meta, and Amazon have booths as well. There is a set of swings in the Google booth (Pictures tomorrow) I’ll write about their programs as well when its not 11PM my body time after getting up at 6AM and travelling all day.

Today was everything I wanted my first day at in-person CSTA. Still more friends to meet and make and lots more to learn.

Tuesday, July 12, 2022

Dice, Simulations, and Math

My friend Andrew Parsons send me this link to an interesting video The unexpected logic behind rolling multiple dice and picking the highest. Now I love simulating dice on the computer. Creating a Die class is one of my favorite projects for teaching objects and classes in programming classes. I’ve long kept example of dice with other than six sides around to help students think outside the six sided dice box. So this video grabbed my interest.

Basically the presenter is looking at what happens if you roll two dice and pick the higher value of the two. What sort of advantage does it provide?.  So this gets into some probability and some related math. One of the first things he does is to look at the problem through a simulation (His Python code is here) OK now I personally would be happy with the simulation but of course that gives one the “what happens” but doesn’t go into why it happens. The math does that. The math is presented in an interesting way if a bit fast for me. I can see it being useful in an algebra or statistics class though. Lots of good math stuff. (Can I say “math stuff?)

For a computer teacher, the things this goes though are ripe for simulation problems though. What is the result for two dice? For three dice? And what about dice with more sides than six? What do you think? Have students watch the video at home and build their own simulations to compare with the mathematical results?

BTW the dice at the top of the post were made with a laser engraver that I have been playing with. Figured dice in binary would be fun.

Monday, July 11, 2022

Getting Ready for #CSTA2022

The CSTA Annua Conference is only days away. I’m pretty excited about it. It’s my first plane ride since CSTA in Phoenix in 2019. That’s a long time for me. Or was.  The online conferences have been excellent but there is nothing like seeing people in person. Attending SIGCSE this past winter really brought that home to me.

I’ve taken a couple of quick looks at the schedule but I still have to finalize (as much as possible) what sessions I want to attend. I am not doing any workshops this year so I don’t get in until the 14th. But the rest of the conference should be full for me. If not regular sessions, I am hoping for some great conversations in the “Hallway Track.”

Packing is something I will probably not do until the day before I leave but I’m making decisions about what to bring. I got a new phone for example. Battery life on my last on was horrible and my new one will go all day. I’ll bring a laptop as well. I like to take notes for my blog posts and also to Tweet live. Since I am not presenting one should be enough. I tend to bring a backup if I am presenting. I’m loading some books onto my Kindle for reading on the planes. I have charging cables ready for all three of course. And an extension cord with USB plugs as well as standard sockets. Don’t leave home without one!

In previous years I packed extra cables for just about anything I could think of because you never know what someone will need. I’m going light this year. My backpack just got to heavy. Plus I want room for swag. I do plan to come with badge ribbons (Troublemaker and “I follow AlfredTwo”) if I can find them. Probably some business cards. I recommend these if you have them BTW.

I’m looking forward to the exhibit hall as well. I already know some booths that are “must see” for me. I am told that Microsoft will be there with some of their new Jacdac kits and I want to check them out. I am hoping that there will be some booths on cybersecurity (CYBER.ORG is a sponsor so they will probably have a booth). I’m always up for robots and I expect to see some of those as well.

If you’re there I hope you’ll find me and say “hello.” If not, follow the #CSTA2022 hash tag on Twitter and visit my blog for updates along the way.

So are you ready? What are you excited about?

Tuesday, July 05, 2022

Teaching Computer Science–Moving atoms not pixels

On my first visit to the Lifelong Kindergarten Group and the MIT Media Lab, I notices a message on the windows. “Some people would rather move atoms than pixels.” That has stuck with my for years now. And it is quite true. Robots, game controllers, Internet of Things, and more are ways that computer science interacts with physical objects and not just pixels on a screen. These are ways that teachers can bring more students to more interesting (to the student) to get involved with computer science. But where to start?

Recently I posted curriculum resources that are especially good for teaching traditional computing courses. Well, cyber security is a bit new but anyway. Read that post at Welcome New Computer Science Teachers Today I want to provide some resources to bringing physical computing into the classroom.

Starting with a couple of devices that operate as “brains” for deeper involvement.

Raspberry Pi and the Micro:Bit are two of the most popular. Arduino and the Lego ev3 have been around for longer and are in wide use as well. One could get lost exploring all that LEGO Education has to offer. The Arduino Online Shop has a lot of resources as well.

Personally, I am a fan of both the Raspberry Pi and the Micro:Bit. Both the Micro:bit Educational Foundation and the Raspberry Pi Foundation have a lot of resources. Those are great places to start your exploration.

Ok, let’s talk hardware. While the sites for the Pi, Micro:Bit, Arduino, and Lego EV3 have a lot of links to resources there are more places to go depending on your interests.

Two of my favorites are AdaFruit Industries and Kitronik Ltd. They have devices that work with a lot of "brains." They have devices for all sorts of robotics or Internet of Things projects. I can spend hours looking through both getting idees for projects.

Also for the Internet of Things, I have bought a bunch of devices from Phidgets Education. I have been using these sensors and controls with Raspberry Pi in Python but Scratch, MakeCode, and Java are among other language choices. Speaking of MakeCode, that is an awesome platform for programming Micro:Bits.

I recently discovered Jacdac from Microsoft Research. Right now these devices only work with Micro:Bit but Raspberry Pi and a USB connection for laptops/desktops are projected for the future.

I could, and probably should do a post just about robots and robotics. But here are a few places to get started.

I promise a more comprehensive post of robotics soon.

Sunday, July 03, 2022

Welcome New Computer Science Teachers

Spring is an interesting time on social media. I help moderate a couple of CS teacher groups on Facebook and let me tell you, membership is booming! Why? Well, several reasons. For one thing a lot of teachers have been voluntold that they are going to teach computer science in the fall.Some have never taught CS before. Others have some CS background but are being asked to teach a more advanced course. In general, a lot of teachers are looking for help getting ready.

Hopefully, all CS teachers join the Computer Science Teachers Association (CSTA). There are both free and paid levels of membership. I am a paid member (AKA CSTA+) It’s worth it for the extra benefits. You’ll want to join and get active in a local CSTA chapter as well.

A book I highly recommend for anyone teaching computer science is Computer Science in K-12: An A-to-Z Handbook on Teaching Programming I can’t tell you how much I learned from this book.

Instructors are many Advanced Placement Summer Institutes are pointing teachers to Facebook groups. Two favorites for AP CS teachers are:

They're both outstanding resources for teachers of those courses.

Many people also join Computer Science Educators which is a wide ranging group for CS teachers.

Cyber Security is getting huge in schools (which is a good thing) and there is a great Facebook group for that. Cybersecurity Educators

If game development is your thing there is the Unity Teach Community group.

If you’re teaching an advanced placement course, hopefully, someone has pointed you to AP Summer Institutes. Really valuable for first time AP teachers.

There are also some curriculum providers that offer training and resources. A few of them are:

  • code.org – they offer several levels of courses including pre-AP courses as well as AP courses.
  • CMU CS Academy – curriculum, resources, and (I think) training
  • CodeHS – Curriculum and resources
  • CYBER.ORG – Cyber security resources, training, and curriculum
  • Project Lead The Way – curriculum, training
  • Bootstrap – CS with math, physics, or Data Science

I’ll finish off with a couple of blog suggestions

  • Mark Guzdial – He’s currently doing research on teaching other subjects using computer science and what he calls “Teaspoon Languages” but he has a lot to say about how to teach CS.
  • Mike Zamansky – Mike is building a program to teach CS teachers at Hunter College in NYC. Mike shares a lot of good advice and ideas about teaching.
  • Garth Flint – Garth teaches at a small private Catholic school where he wears a lot of hats. He has some interesting takes on things and shares a lot of good ideas.

I’ve only scratched the surface here of course. But they’re a good start with places to ask for more help. Welcome to teaching computer science!

[Edit] if you are interested in using some physical devices in your course check out Teaching Computer Science–Moving atoms not pixels

Monday, May 16, 2022

BINGO Inspired Projects

My son’s school, he’s principal of an elementary school, had a Bingo themed fundraiser yesterday. I can’t help but think about how things are done with any event like this. My first thought was about the Bingo cards themselves.

Typical Bingo cards consists of a five by five grid. The letters B I N G O label the columns and each column has a random number. The center square of the grid is a “free” square and doesn’t have a number. Obviously, generating Bingo grids is a logical project. The numbers in each column must be without a specific range and duplicates are not permitted.

The next obvious project is one to “call” the numbers. The numbers must be identified by number and column where the column is identified by the letter above the column. Drawing duplicate numbers is not permitted so keeping track of numbers drown is important. Keeping track of numbers drawn is also important for verifying Bingos. A program should have a way to do that . This becomes a user interface problem as well as a data storage problem. That may be the most interesting part of the project. At least it is for me.

Now if you really wanted to get complicated, one could design a system where Bingo cards are numbered and their contents stored. One might then be able to use that data with the data of numbers drawn to verify if a Bingo was on the card using only the number of the card. I see this as a group project where individual students would write parts of the program and have them work together. A lot of planning would have to go into this of course.

The Bingo at my son’s school used a traditional ball cag. That seems more fun somehow than drawing the numbers on a computer. That doesn’t mean that software would be a bad way to keep track of numbers drawn and used to verify a Bingo. Another project idea perhaps?

On the other hand, the whole idea opens a discussion of “just because something and be computerized does that mean is should be?” The human factor is an important one. I’d love to have student discuss the pros and cons of computerized Bingo and old fashioned ball cages and physical tracking of drawn balls. Which is more authentic? What does authentic even mean?  That discussion might be just as useful as discussion of what data structures should be used to track Bingo numbers.

Friday, May 13, 2022

Teach CS in K-12? Please Help Gather Data

The Computer Science Teachers Association (CSTA) and the Kapor Center are conducting a survey of K-12 computer science teachers in the United States. The CS education landscape continues to evolve, and we want to hear directly from teachers about your experiences, challenges, and what resources would be most useful to you at this time. Having detailed and current information allows policymakers, curriculum & PD providers, State Departments of Education, membership associations, and other organizations to better understand and meet the needs of teachers. Results will be used to make specific recommendations to improve support for CS teachers.

If you teach K-12 computer science, we need your voice!

We invite you to participate in this national survey, which will take approximately 20 minutes of your time. Responses are confidential and optional.

As thanks for your time, the first 3,000 teachers who complete the survey will receive their choice of a $10 Tremendous gift card. All participants will be entered in a raffle for one of five $200 gift cards.

Please encourage other CS teachers to also complete the survey, and if you have any questions, please contact membership@csteachers.org or research@kaporcenter.org. Many thanks again for contributing vital insights to improving K-12 computer science education!

With appreciation,

CSTA and Kapor Center

Build

Learn more about the Computer Science Teacher Association here.

Learn more about the Kapor Center here.

Wednesday, April 13, 2022

Last Mile Education Fund–Making a Big Difference

We often underestimate the difference that small things can make. When I was in high school all I could afford was a cheap plastic slide rule (no calculators back then) and it really slowed me down with math. I sometimes wonder what a more expensive and accurate slide rule would have done for me. I had other privileges and did well in the long run. But that is not the case for everyone.

Privilege often gets conflated with potential when in fact a lot of potential gets short circuited because of obstacles that are more common for non-privileged students. Things that are non-issues for many become showstoppers for far to many others.

Picture a student with great potential in computer science who can’t afford a good laptop? Or cannot afford her textbooks or lab fees? Low income students often take longer to graduate because they don’t have adequate preparation and need some extra courses and time to catch up. That often means they run short of funds even with the finish line in sight.  Even good scholarships often leave gaps in funding that limit students from underprivileged backgrounds.

That’s where the Last Mile Education Fund is making a difference today. From the mission statement of the Last Mile Education Fund:

  “The Last Mile Education Fund takes an abundance approach, investing in a broader group of students already committed to technology and engineering fields, providing support for challenges they face beyond their control, and incubating them to be the next generation of innovators. “

Last Mile Education Fund invests in striving, low-income students pursuing degrees in the high-demand fields of technology and engineering to support them in their last mile to graduation and into a career.

A number of grant programs are available. Some of them specifically for female and non-binary students but a number of them are available to all genders.  The Microsoft Cybersecurity scholarship is for community college students of any gender for example. Full information about these opportunities is available at the Current Funding Opportunities page. I have links attached to some that have pages with more details.They include:

  1. EMERGENCY MINI-GRANTS
  2. Bridge Grants
  3. LAST MILE GRANTS
  4. MICROSOFT CYBERSECURITY SCHOLARSHIP PROGRAM
  5. NORTH TEXAS BIOTECH WORKFORCE FUND
  6. REU PARTICIPATION FELLOWSHIP

If you know of students who could take advantage of these grants please spread the word.  And let teams/people at universities and colleges who support low-income students know about these programs as well. They can help a lot of high potential students with some hurtles that could but shouldn’t hold them back.

Monday, March 21, 2022

Word Games and Cryptography

My latest discovery, thanks to Doug Peterson, is Crazy Phrase. Crazy Phrase is something of a variation of Wordle except that in Crazy Phrase the player is a phrase to discover. Clues are similar to Wordle with visual clues like green being a letter in the right place, yellow being in the wrong place but in the right word and blue being a good letter for the phrase but placed in the wrong word.

I was a bit intimidated when I first visited this new puzzle. I soon realized that some things involved in decoding cryptograms can be helpful. As with Wordle, looking for common letters is particularly helpful. With phrases we have the added option of looking for common words. This is especially true with two and three letter words. Words like “to”, “on”, “of” and the like can be very helpful in spotting the direction a phrase of going.

There is a proliferation of games on the internet inspired by Wordle these days. They offer a lot of possibilities for teaching problem solving. Creating new versions of games is an obvious programming project. Discussing these as cryptography related is an other possible topic. The use of computers to analyze strings is widely used for many applications so getting students to think about the process as used in games can be very helpful. And fun.

Tuesday, March 08, 2022

APCS A–Java or Python?

There is a lot of discussion about moving the Advanced Placement CS A exam to Python from Java. The Collegeboard is reluctant to do so. They see APCSA as the equivalent to CS1 or the first course for CS majors in university. They cite research that indicates that APCSA students for very well in CS2 (usually data structures) and that CS2 is almost always taught in Java or C++. On the other hand, at many universities the purpose of CS 1 is growing and the audience is widening to include students from many different majors. I wrote about that yesterday (What Should APCS A Really Be About?) Mike Zamansky took it on on his blog as well (SIGCSE 2022 - What language APCS-A part 1 - the intent)

It seems like we have to first agree on the intent or purpose of APCSA (and CS1) before we discuss language. Given that agreement is never going to happen – CS people can’t agree on anything. So I will start my discussion from the standpoint of APCS A should increase diversity in computer science and prepare students for using computing in CS as well as other disciplines.

This is a concepts first decision not a language first decision. I feel that non-CS majors need the same concepts as CS majors. SO what are those concepts? Not a lot changes except that in computing widely APOs are bringing far more critical than they used to. They enable programmers to easily do things that used to be hard. They also more things we used to do early to later in a CS major.

Sorting is one example. With so many libraries to do sorting why should we spend a lot of time in a first course having students write sorts? We know they sorts they will write are not going to be up to the standards and power of sorts they can call that exist already. Algorithms? Surely there are other algorithms we can focus on to help students learn to study problems and developing algorithms?

So if we want to increase the number of students who study computer science beyond the limited scope of would be computer science majors preparing students for CS2 loses some power in the argument. And Python gains some because of all the APIs that are available and all the other disciplines that are already using it.

At SIGCSE, the panel members arguing for Python talked about much of what I write above. They also talked about Python avoiding some of the “cruft” of Java. How much easier “Hello world” is in Python for example. The “other side” focused mostly on the costs of changing and not specific criticisms of Python. There are things about Python that people do raise. It’s dynamic typing rather than Java’s strict typing. I’m a strict typing person myself but I can be open minded. Also the use of white space. Now it is not clear to me that either white space or curly braces have advantages over the other so I see that as a wash as well.

The post panel poll, FWIW, had 57% saying to switch to Python and 28% saying “keep Java” with the rest being answers all over the map.

I have no dog in this fight since I no longer teach AP CS but I am leaning toward that it is time for a change. I like the idea of a high school course, even on modeled on a university course, preparing a wider range of students for a wider range of majors.

The Collegboard is going to do what they want and the costs of changing may be as big a factor as anything. They are also driven by what universities do and as universities revisit the purpose of CS1 that will have more impact on anything anyone in high school has to say.

Mike Zamansky has a different take on this at SIGCSE 2022 - APCS-A Language strengths and weaknesses

Monday, March 07, 2022

What Should APCS A Really Be About?

Perhaps my favorite panel of SIGCSE 2022 was debating the question of should the APCS A course switch its language from Java to Python? During the discussion it occurred to me that there was a bigger question that had to be answered first That is “what is the purpose of APCS A?” Now the normal and obvious answer is that it should be equivalent to university CS1 courses – the first course CS majors take in university. That's too easy and also not helpful.

What should CS1 be all about? Traditionally, CS 1 was a course taken by CS majors and was preparation for the rest of the CS curriculum. Today it is not that simple. Increasingly, other departments in other disciplines are wanting their students to take CS1 or something much like it. Engineering, astronomy, physics, and business are just some of the areas where programming is growing as a tool. The CS department is the best department to teach this first course.

What does that mean? Well, for one thing it opens the door to more programming languages. While Java and C++ are the big languages for a next course for CS majors the same is not true for other departments. Without getting into the language discussion (until my next post) we need to look at what concepts are needed and ask if they are similar enough for everyone.

Owen Astrachan suggested at SIGCSE that the “A” in “APCSA” has traditionally stood for “Algorithm” but should now stand for “API.” Not that we ignore algorithms of course but that APIs were the way computing was increasingly being done. If we look at how non-CS programs are using programming we see that this is very much the case. This probably means that for CS to remain and improve as a teaching, learning, research tool it has to focus on APIs as well.

That is probably only one example of things we should look at changing (in APCSA and CS1) I  get the impression that many university departments are already changing and looking at changes as they see their CS1 course serving more than just CS majors.

Circling back to APCSA in particular, are all of our APCSA students going to major (or minor) in CS? Probably not. Many? Perhaps. But a majority are probably going to move into other areas of study. To we ignore their needs to focus only on future CS majors? That seems a recipe for turning students off from computing completely. High school courses should never be weed out course. One can have a rigorous impactful course without scaring people away from the field.

There is a lot of thinking about what CS1/APSCA should be about and I want to learn more about how university departments are adjusting to today’s  needs for students. Keeping things the way they are today just because we have always done it that way seems a lot less than ideal.

What is your thinking? What should CS1/APCSA be focusing on?

Sunday, March 06, 2022

Final Thoughts on SIGCSE 2022

I had a great time at SIGCSE 2022. As an introvert I probably suffered less from not being with people than many but after two years I really needed to be with people. I was able to connect in-person with friends I had not seen in years. Some a decade or more. That was truly awesome. The community building of an in-person conference should not be understated.

I had some great “hallway track” conversations. This is not nearly as easy in a remote conference and it contributed to what I was learning. Besides being with people I really did want to learn. So my hallway conversations were not all catching up with friends. I was able to ask a lot of questions about the work various people were doing. Things often outside the scope of a specific talk or panel that I attended.

I visited with Ruthe Farmer of the Last Mile Fund. The Last Mile fund is “investing in a broader group of students already committed to technology and engineering fields, providing support for challenges they face beyond their control, and incubating them to be the next generation of innovators.” It’s an amazing program that helps students who are missed by a lot of programs giving them the help they need to complete their educations. They are particularly focused on women but have some money for men in community  colleges. Check them out if you know someone who needs a little help making it through.

It seemed like there were multiple interesting sessions in every time slot. Where I had to choose I picked panel or supporter sessions over paper sessions. Mainly that was because with paper sessions I could at least read the paper. Not the same thing but it was that or miss out on a panel completely.

The elephant in the room may have been COVID and masks. COVID times was a topic of conversation but masks? Not that I heard. The conference organized stated that even though CDC guidelines had changed the attendees had signed up expecting everyone would be masked so they were going to stick with that. I think it was the right decision. While masks are not always comfortable and they make it a little harder to recognize people it added to comfort levels for many attendees. Including me.

Sessions were split between the Rhode Island Convention center and the Omni hotel. The two are connected and traveling between them was pretty easy. I have a bias to all being in the same building but honestly I have walked further between sessions in some convention centers so there is that. The rooms themselves were large, accommodating people sitting apart if that made them more comfortable. I suspect that is what required using both facilities when one might have divided large rooms under normal circumstances.

Hybrid sessions where some or all of the presenters were remote were interesting. It worked pretty well overall. I hear there were some that were played recordings with no interaction but I didn’t “attend” any of them. The real bonus of a paper session is being able to ask the author questions so that is important. Mike Zamansky has more on this on his post at SIGCSE 2022 - Conference format.

I left Providence with a lot to think about and some great memories of visiting with people face to face – even with masks. Now to renew my passport so I can attend next year in Toronto!

Saturday, March 05, 2022

SIGCSE 2022 Day 3

Saturday at SIGCSE was a short day but there was still plenty to learn. Shaundra Daily. Her talk, based on her own history, was about how their are barriers making it hard for women, especially women of color and women who are also mothers, and who generally don’t fit a specific mold. This fit in with other conversations I had this conference about getting students to start CS at the university level don’t have the support they need once they get there. Filling the pipeline is not enough if the exit is blocked.

After the keynote I grabbed a quick bite to eat and ran into Mike Zamansky. Mike has a great blog post about the things he plans to write longer posts about. SIGCSE2022 - Things I plan to blog about We spent a lot of time discussing those topics. We agree on much and disagree (in a friendly way) on some. Look for future posts from both of us on these topics. Mike Zamansky blog

My first paper session was CSF2: Formative Feedback in Autograding. I'm of mixed feelings about autograders but more on that another time. This particular tool moves away from the binary pass/fail of autograders to provide feedback and hints. The tool also helps educators see where students are getting stuck. I want to look into this one some more.BTW, hinting is hard.

After the morning break, Nifty Assignments. I just could not resist as I love new assignments. This year’s assignments as well as previous year’s assignments are available at Nifty Assignments (stanford.edu) So I’m taking the easy way out and not saying much more about them.

For lunch time, SIGCSE set up a K-12 meetup lunch time in a conference room. I really enjoyed chatting with other K-12 people. Next year I hope they can come up with a way for us to connect earlier though. The k-12 ribbons were nice but ribbons get visually lost at times.

Friday, March 04, 2022

SIGCSE 2022 Day 2

The morning keynote was by Barbara Ericson. She talked about a lot of her early work including some of her online books CSAwesome and her work with the free online CS textbooks at Runestone Academy. I need to look at these some more https://runestone.academy/runestone/books/index She also talked a lot about Parsons Problems - a subject I am really interested in. One project is Sisters Rise Up which provides mentorship for women taking AP courses. She’s got a lot going now as well. She is an inspiration.

First Paper Session:Trends in CS Teacher Professional Development: A Report from the CSTA PD Committee. A lot of CS teachers are experienced teachers but not experienced in CS. Teachers want PD but it can be hard to find. The PD committee is evaluating and accrediting CS Ed professional development. You can see their efforts at the CSTA web site

Next up was Detecting Struggling Students from Interactive eBooks Data: A Case Study Using CSAwesome This talk was by Barbara Ericson and was about data from ebooks on Runestone and CSAwesome. Barb was able to collect a lot of data.  Students don’t watch videos to completion a lot which doesn’t surprise me that much. A lot of information in this talk. I recommend reading the actual paper. (Available for free for a limited time) I really need to look at these ebooks and see if they are something I can/want to try and create myself.

Last of my morning papers was Who Belongs in Computer Science? This study looked at middle school students to see what their perception was of computer scientists and how that impacted their feeling of belonging. In brief, boys and girls had the same perceptions but girls didn’t see themselves in what they perceived as being a computer scientist.

I took advantage of the “hallway track” to talk to Aman Yadav (author of the paper above) about the importance of CS teachers talking about race and computing. We need students to understand how bias works its way, usually unintentionally, into software. Both white and non-white students need to know about this. We clearly need a diversity of involvement in computing if we are going to have a chance as software that is fair to all.

After lunch, a GitHub Supporter Session: Scale your classroom with GitHub Classroom and Codespaces. A tough decision as there was also a panel I was interested in attending. I was curious about GitHub though so … The features of GitHub classroom including connections to LMSs, automated assignment distributing, auto grading and more seem pretty exciting. I also like the idea that students will create GitHub repositories that can act as a portfolio. The demo was great. I have set up a GitHub Classroom but I need to play around and try some things before I feel like I can use it. I think I need to create a “student account” as well. We’ll see how much time I can put to it.

Next up was a Microsoft Supporter Session: Core developer tools for your computer science classroom because I wanted to  see what Microsoft was promoting for educators to use for teaching CS. That was once my job.

They started with talking about VS Code and VS Code Coding packs are a tool to make it easy for students to set up a development environment. They are available to set up VS Code for Java, Python, and .NET. The packs for .NET and Java are available for both Windows and MacOS.

Next up was Development Containers and VSCode.dev which is a web past development environment so no installation is needed. This combination makes it easy to ensure that all students have the same development environment. This looks pretty cool for bring your own devices schools. There was a lot presented in a short period of time. I need to dig into some of these things on my own.

Over all a great day for me. I have some things to look through tonight.

Thursday, March 03, 2022

SIGCSE 2022 Day 1

SIGCSE 2022 is my first in-person conference in over 2.5 years. It’s my first SIGCSE in a lot longer than that. It looks to be a great conference . There are 1518 people registered in total with 780 attending in person. I HAD to come in person. Honestly, I missed people and a lot of people I know in CS Education and CS Ed research are here. There is a lot to learn here as well.

The opening keynote was Barbara Liskov. This was a fascinating talk that covered a lot of the history of her work. She started publishing and researching what became object oriented programming while I was in the early stages of my career. Several papers she studied and referenced were published the year I got my undergraduate degree. I remember clearly many of the issues she discussed and problems she was looking to solve back then. I hope we can get access to her talk and show it to students.

My first session of the day was a panel discussion of should AP CS A switch to Python from Java. Needless to say, the room was full. The stick with Java people had two main issues. One was the work involved in changing – new resources, teaching aids, test questions, and the like. The second was that while there is a slight edge in universities using Python over Java for CS1, Java and C++ are FAR more widely used in CS2 courses. The current course results in students who do very well in CS2 and that is important.

The argument for Python is multiple. One is that it opens the door wider for using APIs for making more interesting projects. Another is that there is less syntactic “cruft” in Python which reduces cognitive load. A third is that Python is increasingly used in disciplines that are not computer science. For example the Physics and Chemistry departments are Stanford want their students to take a Python based CS1 course. FWIW, the school I retired from added Python in part because the Physics teachers encouraged it. I am finding the arguments for Python more convincing than I expected.

After lunch, It Seemed Like a Good Idea At The Time (COVID-19 Edition). The session opened with examples from the past: see if you can hack the department mail server; open book exams without a time limit; exponential time examples are actually cubic. Victoria Hong shared a study she did where she asked one section to write questions for the final exam. The cohort that wrote questions did worse on the final than the cohort that didn’t write questions. The opposite of what was expected. Ellen Spertus talked about a course without deadlines. This set off a lot of discussion about deadlines and the different ways to allow or not extensions. Some have tokens that students can use for an extension. I hope this was recorded because I can’t do the discussion justice here.

Next up for me was another panel: Advancing Opportunities for CS Teachers: How To Best Support Professional Development for Experienced Teachers in K-12 CS Education This session was hybrid which means that most of the panel was remote and not physically at the conference. More on that later perhaps.

Most professional development for CS teachers is focused on new and early career CS educators. We have a good number of experienced teachers (10+ years of teaching CS) and their needs and backgrounds tend to be different from new  CS teachers. A lot of the initial presentations was stating the problem.

Don’t tell anyone but I jumped out early and dropped in on a Special Session: K-12 Computing Education and Education Research Resources. Colleen Lewis talked about Computer Science Teaching Tips (csteachingtips.org) and a Teaching Practices Game. This can help teach about microaggressions. Briana Morrison introduced Engage CSEDU: www.engage-csedu.org which has a searchable database of CS Ed resources. Davina Pruitt-Mentle introduced NATIONAL INITIATIVE FOR CYBERSECURITY EDUCATION (NICE) which has a lot of resources for teaching and learning about cybersecurity. More information can be found at Cyberseek.

Got some dinner skipping the Birds of a Feather but I’ll go back for the reception. Overall, a very good day for me. Learned some things and connected with a bunch of great people. More tomorrow I expect. If you are reading this and at SIGCSE please look me up and say “hello.”