Showing posts with label CS4All. Show all posts
Showing posts with label CS4All. Show all posts

Wednesday, December 03, 2025

Are We Really Teaching Artificial Intelligence

According to Code.ORG

The Hour of Code is now the Hour of AI

The Hour of AI makes teaching AI literacy easy, engaging, and fun. Empower your students to become the next generation of innovators with AI.

Of course the web site has a lot of activities that are still labeled “Hour of Code” but it raises the question: What does it mean to teach artificial intelligence?

In a conversation, a very smart friend talked about how there was a time when we taught Office applications (Word processing, spreadsheets, and the like) and called those classes computer science classes. That’s not real computer science and the CS education community has fought that characterization for years. With some success!

My friend made the comment that much of what is called teaching AI today is the AI equivalent of teaching the Office application of AI and not the science of AI. For example, is teaching AI teaching how to use an existing AI tool and having students train it to recognize some type of object. Is that the same as teaching how the AI works or what sorts of algorithms are behind the training? Of course not.

Likewise, teaching students how to write good prompts to a LLM is not the same as teaching how a LLM works. In fact, I would argue, its not any different from teaching students to write good instructions to another person.

Now I am not saying that learning how to write a prompt or train a machine learning tool is not valuable. Clearly it is. Arguably it is even necessary. But is that really teaching Artificial Intelligence in the same way that a course like AP CS is teaching computer science? Or is it more like teaching applications without teaching how it works?

I have heard the argument that students are not ready to learn how AI works or that the algorithms are too complicated. I would agree that students may not be ready to create an AI at the level of ChatGPT but that doesn’t mean they cannot handle the concepts behind that sort of software.

The truth is that a lot of what AI, especially machine learning and Large Language Models are doing is not really that new. What is new is that we have lots more data for AI to work with and we have processing speed that is a lot faster than what we used to have. Machine learning is heuristics on steroids. LLMs are data analysis with lots more data and faster CPUs.

We had software learning by asking questions and trying different options 50 years ago. Now we have the software asking itself the questions and finding new paths based on data. We had rule based software for decades but now we have better algorithms to evaluate data against rules. We’ve been studying text looking for hidden meanings throughout history. Now we have more text for algorithms to analyze and the ability to analyze in more ways in less time. We can start with simple data sets and basic concepts that teach the roots of AI. Students can deal with it. They do that sort of thing with human intelligence all the time.

If we are serious about preparing students for the future of AI we really need to get serious about teaching some depth of concepts. Let’s not stick with the Office applications equivalent and lets move on to the real science.

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.

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.

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.

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.

Monday, March 09, 2020

What is The Best Way to Provide #CSforAll?

Getting more computer science education to more people is something I think about a lot. Mark Guzdial, I want to be him if I ever grow up, has me thinking in new directions lately. Take his recent blog post for example - Defining CS Ed out of existence: Have we made CS too hard to learn and teach? You really should read it and the comments as well. I started to write a comment but WordPress “ate” it so I’m writing some more thoughts here.

The primary way we have been trying to get CS for everyone in the US is through stand alone computer science courses. It seems great in theory but we have a couple of thorny problems. One is fitting it into the curriculum. Another is finding enough teachers. Mark lays out some other problems or potential problems in his blog post. the tl;dr of it is that doing it this way is really hard and may not be the best way anyway.

One thing Mark has been talking about lately (I try not to miss his posts on Twitter or Facebook) is how Norway is moving in CS education. Basically, Norway is moving to teach CS in context with a bunch of other subjects rather than as a stand alone course. I really want to learn more about his but in general I like the idea.

For many years I have been talking about the value of using CS to help students learn other subjects. In y early teaching days, 20+ years ago, when I thought programming might be out of reach I was suggesting using spreadsheets in math and social studies. How better to process and analyze data than a spreadsheet? And graphs? A computer spreadsheet can let a student look at the same data with different graph types in a short period of time.

These days with have block languages like Scratch, Alice, Snap!, and more that can be used to program by young students. Telling stories to build up language skills. Analyzing data and showing it in interesting ways. Well, you get the idea.

Maybe if we did this in the early (primary grades and middle school grades) students would see computer science as something they can handle in secondary school. Maybe we could even go deeper into CS concepts if we didn’t have to teach secondary school students what a loop is all about. And much more.

We know that students make decisions in middle school that greatly impact their trajectory in later education steps. If CS is part of their environment, and is a learning tool they are comfortable we’ll get more students in deep pure CS courses. Even better, they’ll have CS as a powerful tool in secondary school as well.

This can’t happen over night of course. There is a lot of work. Teachers have to be taught. Curriculum has to be written. And that curriculum has to be interesting, relevant, and shown to promote learning of more than just CS tools., Maybe teaching CS as incremental steps and in context will help teachers and students alike to be less intimidated by it.