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.