Friday, October 6, 2017

The Beginner's Garden Of Concepts

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...

3 comments:

  1. Bottom-up programming
    top-down programming
    encapsulation
    parameters

    There are probably a dozen other that I cannot think of at the moment. Depending on the level of the programming class the list can be shorter or longer. I commonly teach my intro programming class using Small Basic. No parameters or arguments. The list can change depending on the language used.

    ReplyDelete
  2. I've been thinking about this topic for a while and I always get tripped up by the fact that there are multiple levels of sophistication within these topics, and I feel that you need to teach all of them over and over again, with increasing nuance.

    ReplyDelete