So I'm going to throw this out there to my colleagues with more miles down this road than I have. I'm wanting to craft up a "language agnostic" list of core concepts and key terms for computer science, mainly because I want to develop some kind of "mastery" checklist or scale scoring, reminiscent of what the typical kindergarten progress report looks like. You know, the ones that have a list of things like "can tie own shoes", "counts 1 to 10", and so on. I know this kind of list would look different and be more lengthy as a student progresses beyond beginner level, but I'm aiming for what the foundation should be, regardless of programming language or platform.
The items that pop to mind for me, in no particular order, are:
- inputs/outputs
- loops (for, while, chained, nested)
- conditionals
- Boolean logic
- variables
- abstraction
- algorithms
- decomposition
- procedures
- functions
- arguments
- lists
I'm sure I'm leaving something out of these concepts, and this list doesn't have the key terms that would be much longer I'm sure, but hopefully this is a start of a good "core". The one thing I think is tough for my Intro kids (mostly freshmen) is getting them to understand this isn't something that you just observe and memorize to regurgitate back - putting these concepts into use requires actual understanding and higher level thinking! Oh, those freshmen...