Sunday, March 30, 2025

Teaching The Writing of Secure Code

One of the great problems of teaching computer science is that there is a limited amount of time to teach and an unlimited amount of things that can be taught. There is very little degree of agreement of what must be taught. Teachers do the best they can but there is a good amount of variation on what gets taught. One thing that seems to always (or close to always) get left out is writing safe and secure code.

Few teacher give more than a cursory mention of error handling for example. The try/catch keywords get a little use but not much. For the most part, when a student program goes wrong it just crashes. Student programs tend to depend on the user entering information in the way the program is set up to receive it. This works, more or less, in the context of student projects because the projects are generally designed to test or use specific concepts other than error handling.

Outside of school, validating data as it is input is pretty important. There is a classic XKCD comic that highlights this idea. Bonus as it includes a school context. This is one way to at least talk about the concept even if there isn’t a lot of time and ability to reenforce it with a project. Though, string manipulation projects are sometimes a good way to talk about writing code to force specific forms of data formatting.

 

Back in the day, learning C (before C# or even C++) we talked a lot about memory management and things like overflowing strings and buffers. Ignoring those things was a major cause of security breaches. That’s probably true today as well.  Modern languages with string objects, garbage collection, and other forms of memory management reduce some of the risk but students will benefit with some discussion of the topics. 

Another topic that merits some discussion is validating where inputs come from. Data from a user input is obvious, usually.  Data from files a bit less obvious. Data from other code is the least obvious and potentially the highest risk.

Many years ago I was part of an operating system development group and we were adding many layers of security. Great stuff but we thought a great deal about making sure the right security information was passed along. Code deep in the OS was responsible for sharing security information with user level code. We worked hard to make sure that only trusted information was allowed to reach different levels of code. We also worked hard to make sure that only reliable information went down to lower levels.  That users can’t always be trusted is an important lesson at any level.

Secure code is a complicated issue of course. I have a great book called “Writing Secure Code” and it is almost 800 pages long. Not realistic for a high school CS class of course. I do think we can and should spend some time on the topic though. Ideally in the context of various other topics during a course. A few stories, or even cartoons, may help make the topic more memorable.

Tuesday, March 25, 2025

High School Cybersecurity Course–What Belongs

The last few years have seen a huge expansion in the number and types of cyber security courses in high schools. Much of this has been driven by a growth in the realization that we, society, governments, businesses, need more help making our systems secure from bad actors. CS ed as career development. Great in career technical schools of course. Yet another CS elective in comprehensive schools as well. Pretty easy to sell to school boards and administrations.

The CollegBoard has jumped on the bandwagon with AP Career Kickstart Cybersecurity Pilots.  I did take a look through that program. To me, the first course looks a lot like a standard IT/Networking course. I guess that makes sense as a prerequisite. After all,step one of a secure network is setting up a network.

The second course looks a lot more like what I think about as cybersecurity. Could be a good course. I hope that some of the pilot teachers will share what they learn while teaching it.

I don’t know that all courses calling themselves cybersecurity are that deep though. From what I have seen, some courses that call themselves cybersecurity are mostly about staying safe on the internet. That’s not a bad thing as long as proper expectations are set.

One related topic I have been thinking about is writing secure code. Is there room for that in high school? On the other hand, are we doing students a disservice by not talking about it at all? That’s the area of cybersecurity I hope to spend some more time thinking about. I’m more of a coder than a network guy.

Sunday, March 23, 2025

Should K-12 CS Education Be About Belonging in CS

I’ve been rather wrapped up in moving the last few weeks so haven’t been thinking about high school, or K-12, computer science education as I intended since my last blog post. Mark Gurdial thought has been doing some thinking. Check out School teachers don’t need to recruit students into CS: An alternative model for K-12 computing education for his latest post.

Mark has also been looking at the effort to rewrite the CSTA standards which I have been ignoring. Perhaps I should be paying more attention. Anyway, Mark argues that “Sense of Belonging in CS” should not be in the list of goals. When I read that line in Mark’s post I wondered what “sense of belonging in CS” actually means. Does it mean that students should see themselves as future computer scientists or software professionals or CS majors in university? All of that seems like over much to ask.

I’ve said for a long time that we don’t teach physics in high school to turn out more physicists (And similar analogies) Do we expect students to feel like they belong in physics? I don’t think so. We do want students to understand something about how physics impacts the world around them. And if they develop an interest in studying more physics that is great but its not a goal.

We do want students to exit high school knowing something about computer science. We want them to see how it impacts the world around them. I think we also want them comfortable with the idea that they cab do something with computers and computing. Helping them to see how computing relates to what their major interests are is great. Belonging in CS? Maybe a bridge to far.

Visit Mike Zamansky’s take here https://cestlaz.zamansky.net/posts/cs-for-all-or-all-for-cs/

Friday, March 07, 2025

Rethinking High School Computer Science

I love programming. I took a computer science course as an undergraduate and really fell in love with programming.While I made my living writing code for many years, my wife once wondered if I would have been happier with coding as an avocation rather than a vocation. That’s a bias I have no doubt taken in my teaching career. But is it the right bias for developing high school CS curriculum? I’m starting to wonder about that.

I’ve said in a number of ways that we don’t teach high school physics because we need for physicists. We teach HS physics to help students understand the world they live in. The same needs to be true for high school computer science.

A recent blog post by Mark Guzdial brought that into focus. (CS doesn’t have a monopoly on computing education: Programming is for everyone) The key line in that post was this: Computing education for non-CS majors is different than what we teach CS majors.

Now we talk a lot about computer science for all and that teaching high school computer science should not be about vocational training or just preparing students to be CS majors. But is that how we are developing our curriculum and our ideas about what students should be taught?

Note: The rest of this post is based on a comment I left on Mark’s blog post BTW.

Often we're lucky to have any CS courses even with improvements in recent years. SO having a variety of courses for different types of students seems impractical. High schools don't have the resources that universities do. Actually, small colleges and universities don't have the resources that schools like Michigan does!

But circling back to high schools which is my focus, what should we be teaching? For the most part, high school CS is largely still preparation for CS majors in university or for vocational preparation. The growth in cybersecurity courses in indicative of the vocational focus, for example.

Some schools do have the ability to offer multiple courses. It takes a larger CS program to do that though. The high school I retired from did adopt a course teaching Python largely at the request of the Physics department, for example. R is a big language in many university majors but we don’t see much R in high schools. Should we? I am not sure. Many schools will be limited to one or two courses that have to prepare everyone in any case.

Advanced Placement Computer Science Principles is probably the closest course available for computing education for meeting multiple computing paths. It's still controversial in HS CS with its perception in some circles as a watered-down CS course. It may just be the course we should be paying the most attention to though.

Writing requirements for HS CS is going to remain difficult though. Getting people to give up or even depreciate loops is going to be impossible. (Reading the Guzdial post makes that last line more understandable. Not all programming requires loops.)

Ultimately, high school computer science is all over the map from schools that offer little to none with few taking CS to schools offering multiple options and requiring all students to take some. Universities cannot expect students to have even a base level of CS. Some students are going to have huge advantages. And that makes me sad.

Monday, February 24, 2025

Writing Directions Is Hard

I finished assembling a new bed frame yesterday. I seems solid with good quality materials and seems well designed. The directions on the other hand left something to be desired.  Some things were unclear and resulted in some errors on my part. The “steps” were diagrams that usually clearly showed where all the pieces should go. It was not clear in what order things should be attached leaving the assembler to  make assumptions which sometimes resulted in things being more difficult than they might have been. In at least one place, it would have been helpful to say something like “leave some slack here until step x” where step X involved pieces that had to fit in with the pieces in that step.

And finally, saying that a piece goes on the left or right is less helpful if the instructions are unclear about if left is based on facing the headboard or facing the foot board.

So what does this have to do with computing? Well, I kept thinking about how a robot AI would assemble from these directions. I decided that a robot AI would require a lot more in the way of direction. Software, even so called artificial intelligence software, does not handle ambiguity well. Even things that are obvious to humans need to be spelled out for software.

We’re probably a long way from having general purpose robot assembling household furniture but even if the hardware was ready I don’t think we’re ready for giving it instructions.

We’ve joked about a “do what I mean” instruction for decades but even humans struggle with interpreting ambiguous instructions. We’ve all heard someone say “just do what I mean” expecting people to understand jargon or figures of speech. Those things require a knowledge of context and individuals ways of speaking that are often culturally dependent. Can we program all that into an AI? Maybe one day though I expect that AIs will have to work with people for a while to really get solid understanding. Each person may have to train the AI individually.

Circling back to directions. Today’s AIs like ChatGPT and others are given prompts. It often takes several iterations of prompts to get the results that users want from the tool. I have actually seen course descriptions that include learning how to properly give prompts. Yes, it seems that humans have to be taught how to talk to artificial intelligences. It seems to me that learning to program may be helpful here.

Programming is writing directions for the computer.  It involves taking very human prompts and writing directions that interpret what the user actually wants in terms that the computer understands. It involves removing ambiguity. Programming, and computer science more generally, help people understand the world of computing. That is becoming ever more important in understanding the world we live in every day.

I’ve been saying for a long time that we should not be focusing computer science in education as a career subject. We should be focused on helping students understand the world they live in. That is why everyone needs to learn some computer science.

Friday, February 21, 2025

CSTA Ends Free Membership

I suppose it was inevitable. In the beginning, CSTA only had a free membership. The organization was originally funded by outside sponsors. An NSF grant covered membership for the first six years. This was probably never really sustainable. After a few years, the CSTA Board, I was a board member at the time, started talking about paid memberships. Going totally paid, as most professional membership organizations seem to be, seemed like a big jump. Eventually, two tiers were developed. A free membership and a paid membership that had additional benefits. CSTA+ was born.

It was something of a struggle to define benefits to make a paid membership seem worthwhile but the differentiation grew over time. For many CSTA members, including myself, the fact that a paid membership was a positive financial support for the organization was really enough.

Things change over time and CSTA recently announced that the Plus was going away and there would only be paid CSTA membership. The benefits of a free membership, like the category itself, are going away. Joining a local chapter will require a paid membership. Participation in most chapter events will be limited to paid members. Local chapters can still hold events open to non (paid) members but there will not be support from the national organization for them.

Like many members, I am disappointed in the change. I am sure it makes some financial sense for the organization but it feels like they (I almost said “we”) are abandoning a lot of now former members. This is especially true of the many teachers who don’t self identify as computer science teachers. Many see themselves are math teachers or science teachers or elementary school teachers or , well, you get the picture, rather than computer science teachers. Many of these teachers are already paying members of organizations they identify more strongly with. Will they spend more money to join CSTA? Often, I fear, not.

Unlike many companies and some universities, K-12 schools don’t often pay for professional memberships. Some programs, like Amazon Future Engineers, will offer scholarships with some attendant hoops and commitments. Some teachers will get memberships through CSTA Conference registration which many districts will pay for in part. A lot of teachers will question the value. Sure it’s “only” $50 but we have a lot of underpaid teachers who are already spending out of pocket to support their classrooms.

We’ll see where CSTA membership is a year from now. Personally, I’m retired and I’m making a lot of decisions about my discretionary spending. I just renewed my ACM membership – paid. I don’t know if I will do so next year. I love the magazines and I download a lot of SIGCSE papers to read. They are not as relevant to me as a retired teacher but I love keeping up. For now at least.

I have loved being a CSTA member since the very beginning. It feels like my tribe. It has always been a highly inclusive organization. I’m still a CSTA+ member, or just member now, until this summer I believe. I will decide then about continuing or not.

Tuesday, December 31, 2024

H1B AI and the Future of Computer Science education

H1B visas are back in the news these days. One one hand we have some loud calls for more H1B visas with a claim that US native workers are not up to snuff. Or at least that there are not enough good ones locally. On the other hand, people claim that well qualified Americans are losing out because foreign workers are taking jobs at lower pay. That the call for H1Bs is all about saving money. Amidst all of this, American students are wondering about future jobs for them between artificial intelligence and H1B workers taking all the jobs.

H1B and both hiring and salaries are actually more complicated than many think. Some claim that H1B workers work for less but the law and most hiring companies payH1B workers and natives the same salaries.Plus it can be hard to hire H1B workers because of government rules and paperwork.

On the other hand, supply and demand are involved. If H1B workers increase supply than salaries may be lower for everyone. My friends and contacts in the software industry complain that there is an over abundances of programmers and that the need is dropping because of AI. Other industries may very well be different. I just don't know.

From what I have read a majority of H1B visas these days do got to software developers. Are Musk and Ramaswamy talking about a need for other types of engineers? Are we facing a shortage of other engineers? I don’t know but I will focus on computer/software types because that is where my expertise rests.

Some of that Musk and especially Ramaswamy are saying is that US student don’t work hard enough and that the US educational system is not helping. Leaving aside that many of the people who agree with them want to cut funding for education and make the system worse aside, what is happening.

I have taught a number of international students over the years. These students generally do work harder and show more respect for teachers and for learning. Ramaswamy is not totally wrong on that. The students I have had are not typical in many ways from their peers in their home countries. I would hesitate to extrapolate to what goes on in those countries. Lets face it, it takes a very motivated and privileged student to go study in another country.

Priorities are a bit off in some respects in American education though. Look at how many states where the highest paid public employee is a college football or basketball coach. In other countries sports and school are not as connected as in the US. How often to athletes get special treatment in American schools and college admission! And yet, students come to the US from all over the world to study at American universities. Clearly, we’re doing some things right.

Cost of higher ed is a turn off and a burden for many. Universities are spending money on some non-academic things to attract students which adds to the cost. That is in part, I think, because the US has cut funding that could help students get a good education. People forget that the greatest growth in the economy came from GIs getting free tuition after WW II. Reducing government funding of higher ed is a direct cause IMHO, for a perceived need for H1B workers. If Musk and Ramaswamy think there are problems with US education spending more money IS the answer.

What does this mean for American students? Well, for starters it means they need to do more to prove themselves. Years ago I was working for Microsoft on a competition called the Imagine Cup. International students took to it and worked their tails off. American students, especially those at top universities, said that there wasn’t enough prize money to make it worth their while. A degree from a name university was all they needed. They saw no need to try to prove themselves. Those days are gone! And good riddance.

A student today who wants a career in software or related fields can get it but they should not expect it to be handed to them. The evidence companies are looking for are not grades or what university you attended but actual evidence of accomplishment. A solid portfolio in GitHub for example. Or projects completed in an internship or working to help a non profit. Or perhaps building out systems for a small business. What did you do outside of classwork?

High school students work very hard to get into universities. They research what universities are looking for and they build impressive resumes. Too often they coast once getting into university. Oh sure, the academics can be hard and they have to work at it. But universities have all sorts of support for students once they get into the university. It is tempting to think that university is about having a good time before being handed a good job. That is the mentality that hurts students.

Can American students have a good career in computing in spite of AI and H1B visas? Absolutely, but they cannot take it for granted.

Saturday, December 28, 2024

Three Keys To Being A Great Teacher

For the last 20 years or so I have been able to meet some truly great teachers. Some I visited in their schools. Some I met at conferences. Some I have become good friends with. I have concluded that there are three things that make good teachers into great teachers.

One: Relationships with students. Great teachers truly care about their students as people. They build relationships with students. They may not be close to all of them but they try to build relationships with as many as they can. They listen to students. It’s not about the struggles the student is having with the subject, thought that is important. They hear about the students struggles with life, with other subjects, and with what happens today. They respect students as people. Students feel that the teacher likes them because the teacher does like them. That is what lets them build a relationship.

Two: They are enthusiastic about the subject or subjects they teach. This can be difficult in elementary school where teachers have to teach a lot of different subjects.  Great teachers can fake it to some extent because they are passionate about enough of what they are teaching to know what that feels like. Passion is contagious. It also means that one wants to share that passion as well as the specific knowledge they are trying to share.  Students who have a relationship with a teacher will naturally want to learn what is being taught so enthusiastically.

Three: Innovation. A superintendent of schools once told me that there is a difference between a teacher with one year of experience 20 times and a teacher with 20 years of experience. The great teachers I have met are constantly innovating They may start with a canned curriculum, though rarely, but if they do they make it their own. They add, subtract, and move things around. More often though, they make their own curriculum. Oh, sure, they abide by necessary standards but they teach their own way. They are rarely satisfied. You’ll find a great teacher modifying their presentation, their project, anything, before teaching that material again. They often make up their own courses and adapt them to meet the needs of the students in front of them. And the times in which they live.

They also borrow from other great teachers. They are not afraid to find ideas from others and fit them into how and where they teach. These are the teachers you find at conferences. They are presenting but they are also there learning. If they present at a conference or PD session they welcome feedback and new ideas. They are talking to others in the “hallway track”, sharing meals and activities outside the conference. They are always listening and learning.

Bonus: The great teachers share their knowledge with others. They will share their curriculum. They will present at conferences. They share not for ego but because there is something about being a teacher that just makes one want to help everyone become better. Better about teaching. Better at knowing things.

Seek out the great teachers. Become a great teacher.  Make the world a better place. Make that part of your New Year’s Resolution.

Sunday, December 01, 2024

December Adventure–Write some Code Everyday

Eugene Wallingford let me in on A December Adventure  From the website “The December Adventure is low key. The goal is to write a little bit of code every day in December.”

It’s sort of like an Advent of Code but not as intense or competitive. I love the idea of the Advent of Code but it’s more work than I want to put into something. On the other hand, I like to idea of spending a bit of time on a new project every day.

Of course now I have to come up with and good project idea. I have been working on my Hexapawn game and it is tempting to just work on that a bit more. It still needs work.

It may be time to try something new for the month though. Maybe something Christmas related. Any ideas?

Tuesday, November 26, 2024

Hour of Code and Corporate Involvement in CS Education

An interesting article was shared on Facebook recently -Is the 'Hour of Code' the New 30-Minute Saturday Morning Cartoon Commercial? Take a look at it. It may make you think.

One statement there is that "corporate-sponsored Hour of Code tutorials for the nation's schoolchildren have blurred the lines between coding lessons and product infomercials." Well, that is something to think about. Blurred or crossed?

Those who know me know that for over nine years I worked for a big tech company supporting computer science educators. So clearly, I think that a lot of "big tech" involvement is a good thing. Is it now manipulating children? Well, that gets interesting.

BTW I am also friendly with people at Code.Org and have done work for them in the past. While I don’t/haven’t agreed with them on everything I think they are good people with good motivations. Just being clear on my biases here.

First off, I think there is a big a difference between Hour of Code and Saturday morning cartoons. Prime among those differences is teacher involvement. Teachers are the gateway to Hour of Code. And in fact, they are the gateway to just about all tech influence in CS education. While there may be some students finding and participating in Hour of Code, most students use Hour of Code in the context of the classroom, computer lab, or library under adult supervision.

My understanding is that many of these product placement modules in Hour of Code are solicited to attract/interest students in learning computer science. Put another way, computer science is the product and Minecraft or Disney characters are the show bringing the audience. In a sense, Computer Science is the advertisement and the corporate tool/characters are the show.

Does doing a Minecraft Hour of Code encourage students to play more Minecraft? Perhaps. Though my ten year old grandson hardly needs more encouragement as it is.

This can be a slippery slope or course. Where is the line between promoting computer science and promoting a commercial product? That’s hardly unique to Hour of Code. My grandson has a Chromebook because that is what his school uses. I doubt that is the only product that children want because they see it or use it at school. I trust teachers to be a good influence on their students. I don’t see they becoming salespeople for the companies helping support Hour of Code. I think they know when to encourage and when to point in other directions.

Companies know that Hour of Code is a gateway towards learning computer science. They see that as a good thing. If that leads to more students interested in their products as well I am sure they are happy about that. But they are still selling computer science first. Blurry lines are not the same as crossed. We should keep an eye on that though.

Monday, November 25, 2024

Artificial Intelligence Machine Learning and Hexapawn

A presenter at the recent New England CSTA New England Conference mentioned the game Hexapawn.  Hexapawn is hardly new. It was first introduced in 1962. I first ran into it in the early 1970s and found it to be an interesting challenge. One I was to intimidated to try at the the time Be that as it may, the paper introducing Hexapawn used it as something that was open to what we call today machine learning. That is to say, the more one plays it the better the computer gets at playing. The term my professor uses was heuristic programming.. Machine learning is a more accurate term for programs that learn though.

When I think about it, we were learning about artificial intelligence 50 years ago. Progress has been slow. It seems like “true AI” has been ten years away for all of that time. I am skeptical that we are there yet though clearly we are getting closer.

Returning to Hexapawn. There are several ways one can build code to play against a person. One way, the way involving machine learning is for the program to save every move and evaluate if it leads two a win or a loss. Each game leads to moves that are clearly not going to win and others that are more likely to win. This information influences each new game.

An other way is to hard code in moves based on a set of rules. I confess to playing with this strategy a bit. For example, a rule might be as simple as “if there is a move that places a piece in the wining row – take it.” Or perhaps, “if a move prevents the human from moving – take it.”

Rule based AI had a period of popularity especially in the 1980s. OPS5 was a rules based programming language that was used to create an “expert system” to configure computers. Configuring computers back in the mini computer era was a complex process. I worked for one company that believed that configuring computers was to difficult a task for computers. Configuring computers was an important part of my job there. When I left there and went to work for Digital Equipment Corporation I found that they had solved that question.

Which method is better for a game like Hexapawn? Programming rules based seems a little easier. It probably works for a limited game like Hexapawn but I doubt it scales. A machine learning program probably takes more initial work. In the long run it probably results in a more reliable winning game.

Hexapawn is a small enough project that it probably makes a project for helping students write actual artificial intelligence code. Are you using it?

FWIW I blogged about Hexapawn several years ago at Hexapawn–An Interesting Programming Project

Thursday, November 21, 2024

Interested in Industry Visitors to Your CS Class?

I get interesting messages from all sorts of places. Recently, I received this message on LinkedIn. I love the idea of bringing industry professionals in to talk to students. If you’re interested, check out their web  page and use their contact form.

  • I’m a software engineer at Microsoft and a volunteer computer science teacher at Kansas State School for the Blind

  • Outside of work, I’m starting a free initiative to bring guest speakers from the tech industry into high school, community college, or university classrooms or clubs to share their experience and do a q&a.

  • It’s called Insight Crew:https://insightcrew.org/

Tuesday, November 19, 2024

Online Programming Environments are Poor Preparation

Got your attention didn’t I? More and more teachers are using online coding environments to teach computer science. I used one myself to teach Advanced Placement Computer Scie3nce Principles. I’m not sure I did the right thing. Let me explain.

Recently I attended a panel talk at the CSTA New England conference on what high school teachers could do to better prepare students for university level computer science. Yes, I know that not all of our students will take CS in university but a great many of them will. So what did university people suggest?

As with most things, it’s complicated. Apparently, university professors are finding that students do not know how to do some simple things like deal with file directories or install software or use installed IDEs. Phones and apps are responsible for a lot of this. Students do not know where there work is stored or how to move files to a download location.  Some universities have actually added class modules to help here. Yes, remedial computer usage! Do your students need that?

They are also struggling with the tools that university professors expect them to use. Like installed IDEs. In university, students are expected to use IDEs like Eclipse, Visual Studio, Visual Studio Code or others. They are also expected to know where the files are being placed. They do not learn any of that with online IDEs.

Now I understand that for teachers working with incompetent IT departments, of which there seem to be far to many, are limited to online IDEs. It seems like IT departments are often the biggest obstacle to teaching computer science. But teachers need to fight back more. Teachers who can use installed IDEs should do so.

Online IDEs really do to much. Or perhaps I should say that they hide to much from students.  I am not advocating going back to the punch card days, fun as that might be, but we need students to get closer to what universities and industry are doing if preparation for later CS is our goal. And it should be a goal.

Installed IDEs do a lot for students. That’s true. They also force students to do a lot for themselves. That’s good. It helps them later on.

Monday, November 18, 2024

Does AI Mean The End Of Teaching Programming

The tl;dr of it is no. At least not yet. As more and more people use artificial intelligent agents to help write code we’re learning that AI is not quite all there yet. Take this article from CIO magazine Devs gaining little (if anything) from AI coding assistants

It appears that there is still a lot of need for people who know how to code to do debugging and tuning or AI generated code.

My former students who are developers tell me that they are using AI quite a bit. And they say it helps them. No one has said they have been replaced by AI yet. Frankly, I don’t see that coming anytime soon.

A professor from a major university told me about a study where students were asked to write secure code. Half were told to do it on their own while half were told they could use AI. The students without AI wrote more secure and less buggy code.

More research needs to be done and we can argue over research methods as well. But I think that the jury is still out on AI. Will it get better? Probably. Will AI reduce the need for human programmers? I don’t think we have that answer yet. For the time being though we’re going to need actual people involved in the software development arena.

Sunday, November 17, 2024

Changes in Social Media Where to Find Me

It appears that a lot of people are leaving X (formerly Twitter) I confess to being one of them. Frankly, X isn’t the same for me. A lot of people seem to be moving to BlueSky and I have created an account there. You can find me at @alfredtwo.bsky.social I am trying to get the #CSed hashtag as a popular way to connect with other computer science educators. If you are on BlueSky, I hope you will join me.

I am on Threads and Instagram as well.

Saturday, November 02, 2024

CSTA New England Conference 2024–Exhibit Hall

Today I was able to attend the 2024 CSTA New England conference. There were 14 exhibits at the conference and I spent some time with several of them. One of the images below shows the list of conference sponsors. It was great to see so much support for CS education.

GradeThan was one of the firsts booths I visited. They have an online development environment that incorporates Visual Studio Code. I was impressed with the demo I saw. It's worth a look if you are looking for an online IDE. Especially if you are limited to Chrome books. It's not free BTW.

imagi was another interesting exhibit. Also not free but they have these cute imagi charms (pictured below) that I think a lot of younger students will like. They have curriculum of course.

Lego Education was there showing their curriculum and device options. I have to say that LEGO Education seems to be very interested in supporting CS education. And selling product as well of course but they show up!

Pickcode is another online IDE based product. PickCode was originally developed by a CS teacher.  There is a limited free version for individuals but for full teacher/class support there is a cost. Also web based BTW.

Sphero was there with two booths. They have some very cool robots. One or two I have thought about buying for my own use or for teaching my grandson.

KinderLabs was there showing of Kibo which is screen-free coding for PK through grade 5. Programming is done with actual physical blocks.

The Lifelong Kindergarten from MIT was also there with a display. They were highlighting octostudio Something for FREE! It is a coding app that runs on phones. It lets one

“Create interactive animations and games on your phone. Shake, jump, and tilt to interact with your projects. Share with family and friends.”


I didn't get a picture but Kira Learning was there showing their “AI-powered” teaching solutions.

Well, that’s a snapshot of what I saw. I hope it gives you some things to look into. And maybe an incentive to attend next year’s conference. Rhode Island next year.

Saturday, October 19, 2024

NCWIT Aspirations in Computing High School Award

The NCWIT Aspirations in Computing High School Award is an amazing program for young women THe students I have had who earned these awards have found it very useful. And yes, it looks great on a college application. Encourage your students to apply.

From the web site:

The NCWIT Aspirations in Computing (AiC) High School Award honors 9th - 12th grade women, genderqueer, and non-binary students for their computing-related achievements and interests, and encourages them to pursue their passions. Award recipients are selected based on their aptitude and aspirations in technology and computing, as demonstrated by their computing experience, computing-related activities, leadership experience, tenacity in the face of barriers to access, and future plans. Since 2007, more than 25,000 students have received an AiC Award.

The multi-tiered award structure includes Winner, Honorable Mention, and Rising Star designations at National and Regional Affiliate levels, serving all 50 states, the District of Columbia, Puerto Rico, the U.S. Virgin Islands, Guam, all U.S. overseas military bases, and Canada. Regional Affiliate Award programs are hosted in 79 locations nationwide by NCWIT Alliance member organizations—a powerful, national network of universities, companies, non-profits, and government organizations working to increase the influence and meaningful participation of girls and women from every community.

Wednesday, August 21, 2024

Questions Keeping Me Awake Tonight

It’s about 2:45 AM as I start this post. Why am I writing at this hour? Well, it’s because some things are keeping my mind from shutting down and maybe by writing them out I can get back to sleep. Basically there are a bunch of questions about teaching computer science that have no good answers. Certainly none that everyone can agree on.

Let’s start with “what should CS teachers know (in CS concepts)?” The answer really depends on a second question – what should students know about CS when they finish K-12?

The answers to that second question range from more than we could possibly teach in the time available to eh, not much. How one looks at that question depends on what is the goal of teaching CS in K-12?

I think most agree that we're not trying to make everyone a CS professional or even a CS major. Can we? What then in the goal?

We, as a community, have some projects going on to provide some guidance but I wonder if we’re going about it correctly. Now the CS Standards from CSTA, ISTE, and others are being revised again. We have the CS Framework that came out several years ago.  Attempts are being made to bring input in from wide swaths of the CS teacher community. I wonder if we’re ready for it.

Now, Alfred, the Framework came out in 2016, we’ve been doing this standards stuff for close to ten years. And discussing it for far longer. What do you mean are we ready for it? Just that. We don’t have answers to the important questions. Yes, the Framework and standards are an attempt to answer the question of what should K-12 students know and when. I’m just not convinced that they are the right answers.

They are popular answers. And they may be close to the right answers. Maybe the best we can do right now. I’m just not convinced that they are the end all and be all that many want them to be.

We’re just not talking enough.They want be 150 or even 200 people involved (in theory) but most of the conversations are happening in private meetings with reports being presented and put open to comments. That’s probably all that is practical but that doesn’t mean it is enough.

There are too many teachers still who don’t even know these documents and their writing processes even exist. There  are too many teachers who are not members of CSTA or who are but who don’t pay much attention because they are to busy being to hard at work trying the teach and have some work/life balance. We’re getting standards written by the activists – the people who know a lot and who often know more than the average CS teacher. Many of them have specific goals in mind before starting the process of writing standards. Oh, really we all have goals in mind before starting. That’s why we volunteer.

So we get highly motivated people. Great. We start with an end goal in mind. Maybe great. And who ever is in charge of selecting the prime movers selects people with their shared vision. What? Tell me  it isn’t so! Can’t do that. It’s human nature. It’s even done with the best intentions.

Yes, I know there are “public feedback periods, several in-person feedback sessions, virtual focus groups, and strategic interviews” going on. Not impressed. Public feedback is easily ignored and the rest involve hand selected individuals. How many of those selected were known or expected to be dissidents? Without strong push back and resistance weak ideas can prevail.

I don’t have good answers to any of this. If I did I would be writing them up and not laying awake in bed stressing over stuff like this. What I would like to see is a lot more conversation in a lot more places. I see some on Facebook but not nearly enough. Blogging is just about dead. Many of my favorite bloggers are retired and not blogging. Or blogging a lot less (like me). Comments just don’t happen like they used to. Maybe CSTA chapters could have discussion sessions although disseminating the various points widely is difficult, if even possible.

As I said earlier, maybe we’re doing the best we can. I just wonder if it is enough.

Sunday, July 21, 2024

Post CSTA 2024 Thoughts

The 2024 CSTA conference was the best one ever for me. It was wonderful to catchup with old friends and to talk to many people I had never met before. CSTA is about community for me so an in-person conference is the dream for me. The sessions were also good and I learned a lot. The Thursday keynote was outstanding and I hope it was recorded. It was that good.

Thursday I would have said that this year’s conference would be remembered as the first big Artificial Intelligence conference. For many of us, we will remember it as the conference we had trouble getting home from. CrowdStrike is now a “dirty word” for us. I am writing this from a hotel room in Las Vegas two days after the conference ended. Hopefully I will get home tomorrow.

I guess  we all have another story to tell about bad software and the need for testing.

But back to the conference. The venue was great. We had lots of sessions but getting from onto the next was easy. The exhibit hall was large and roomy. The exhibitors were friendly and seemed happy to be there with us.

Las Vegas had plusses and minuses. Hotel rates were pretty good for the most part. Food was expensive though and options without going in the heat were limited. Did I mention the heat? For a New Englander like myself who looks forward to winter 110 degrees is hot. I would have preferred an airport with more direct flights.

The conference committee  did  a  good job selecting session (if I do say so as a member of the committee) and there were many good options every day. As expected, AI was a focus of many of they. I wonder how many of them will be as valuable in two years. What I mean is that we still don't really understand the impact of the uses of AI. Not just in CS education but in the wide wide world.

There are still more questions about AI without good answers.

Friday, July 19, 2024

CSTA Day Four

Last day of the conference and I woke up to news of a global network outage that was causing delays in thousands of flights. Including my trip home. Oh well. I wonder if I will need this fan that was in the conference bag at the airport. I hear it is crowded.

I still jumped into the conference though.

My first session was AP Computer Science A: Using Data Files for Authentic Problem Solving. I've been using files in class for a while but not in Java or an AP course. This session was really APCS A teachers who haven't been using data files in class before. So not what I was looking for but I think it was probably super valuable for the target audience. The room was pretty full so I suspect that the addition to the exam requiring file usage is going to make some work for a lot of teachers.

Nest up was Visual Programming Graphics and GUI for Beginning Students. I was surprised by the light attendance. The talk was about an open source package called GUI4Sher. The system was designed based on Visual Basic but for Python. It was also designed to make things easier for students to create graphic, which can be hard in Visual Basic. I don’t think it is really Visual Basic like but it is interesting. I have downloaded it and I do intend to play with it some when I get home. If you are teaching Python it may be worth a look. But it is pretty simplistic.

Last up for the conference is, After the Classroom: Reflecting on the K-12 CS Experience. The reflections of a pair of students was interesting. I think we all appreciated the credit they gave to their teachers.

Honestly, with all the travel mess, I largely stayed to the end to find out where the next two conferences will be located.

2025 – Cleveland OH

2026 – Atlanta, GA