Many people have said "teach everyone to code!" or cheer-leaded for "learning to code!" but there hasn't been enough discussion about what a Computer Science component to a liberal arts education ought to look like.
In mathematics we have many lists and trees of what mathematicians think people ought to learn, what order it should be learned in.
Not so in computer science. We just say "learn to code" this would be like if math people said "learn to integrate functions!"
Notice that "integrating functions" is an outcome, a specific skill. A nice one that implies you know a lot of math... maybe. But not all math curriculums end there. There is a robust debate in math education about if we obsesses about The Calculus too much, everyone understands that doing some integrals isn't "knowing math."
I think most CS educators understand something similar but there is much less consensus about what it is that we are teaching if not "how to code."
For me the major topics of a CS education for the general public are:
* Computer Hardware
* Encoding and Decoding
* Logic and Control Structures
* Iterration
* Objects & Functions
* Databases
* Ethics and Applications
* User Interfaces and Design
* Computer Networks
* Computer History
This list keeps changing every time I revise my courses which is every year.
I added functions with objects, but students learn about functions almost from day one.
**File Structures need a clear home.
@futurebird I feel computer networks are missing here?
I agree. However, as a HS teacher the resistance and total lack of support I get when I want to teach about networks is remarkable.
And computer history should include a history of networks explaining why the internet is the way that it is.
I'm realizing a big part of the resistance I'm facing is because the adults I'm working with don't understand networks themselves, and they do really do want the best for the kids...
But, it must be very scary to have someone talking about teaching this very powerful important dangerous stuff when you are scared of it yourself.
I'm certain that the majority of our faculty (many who have PhDs in their subjects) couldn't *clearly* define what a server is.
We recently had a "professional development" day about AI. And the teachers here are more well-informed than most. I was generally impressed. However, we are all too old to have had such an education. It's something new we must create.
@futurebird yeah, I've been lucky with both schooling in education as computer science, that and networks haven't changed much...
@futurebird @wmd
If it doesn't exist yet, there's a niche in the book market for "Computer and network basics for kids and their parents"
There are a few very good resources in this area, I don't want to discount that work. It's just NOTHING like what I have to work with when I teach math. Planning lessons for math is a cake walk compared to planning for CS. I have so many choices, and so many *tested* lessons and resources. I know exactly what I'm preparing students for next year. I know what kind of tests they will see and what courses they might take in college.
In CS there are so many blanks.
@futurebird @Anke @wmd
I was terrified of networking until I did the TCP/IP elective module on an MCSE in '97 and it's actually pretty simple. There's got to be a way of getting the basics across so people understand enough about their home/SOHO network and its relationship with the rest of the world. Hmm...
@davep @futurebird @anke There are for sure, but good materials are scarce.
@Anke @erosdiscordia @futurebird @wmd This is a great idea! I don’t know anything about computer programming or networking, but I can see my brightly colored. Illustrations now! We need to have simple accessible history and learning about building systems rather than just grabbing devices and scrolling.
@Anke @futurebird @wmd If someone writes one, I will buy copies for my representatives in the legislature. Just in case they want to fix copyright laws.
@futurebird @wmd I wonder how many of my colleagues working in cloud infrastructure could, for that matter. :-)
@fivetonsflax @futurebird @wmd
In a better world, #PersonalFinance and #SystemsThinking are required courses to graduate from an #American high school.