What would an exceptional middle and high school computer science curriculum include? -... - 39 views
What would an exceptional middle and high school computer science curriculum include?
This isn't a complete answer, but one thing the very first introductory classes should require is that the students turn off all their electronic computers and actually learn to walk through algorithms with a computer that exists only on paper. (Or, I suppose, a whiteboard or a simulator.) This exercise would give the students a grounding in what is going on inside the computer as a very low level.
My first computer programming class in my Freshman year of high school was completely on paper. Although it was done because the school didn't have much money, it turned out to be very beneficial.
Another class I had in high school, that wouldn't normally be lumped into a Computer Science curriculum but has been a boon to my career, was good old Typing 101.
If you followed the CS Unplugged curriculum your students would know more about CS than most CS grads:
It's a really great intro to basic computer science concepts and very easy for students to understand. Best of all you don't even need a computer per student if your school doesn't have the budget,
- ...6 more annotations...
For younger students, I think that the ability to make something professional-looking, like a real grown-up would, is paramount. Sadly, I think this means that LOGO and BASIC aren't much use any more*.
So, we have a few choices. You can try to write phone apps that look just like real phone apps, design interactive websites that look just like real interactive websites, or do something with embedded systems / robotics. Avoid the temptation to make these things into group projects; the main thing every student needs to experience is the process of writing code, running it, debugging it, and watching the machine react to every command.
It is important to consider what an 11 to 18-year old is familiar with in terms of mathematics and logical thinking. An average 11-year old is probably learning about fractions, simple cartesian geometry, the concept of units, and mathematical expressions. By 15, the average student will be taking algebra, and hopefully will have the all-important concept of variables under his/her belt. So much in CS is dependent on solid understanding that symbols and tokens can represent abstract concepts, values, or algorithms. Without it, it's still possible to teach CS, but it must be done in a very different way (see Scratch).
At this point, concepts such as variables, parenthesis matching, and functions (of the mathematical variety) are within easy reach. Concepts like parameter passing, strings and collections, and program flow should be teachable. More advanced concepts such as recursion, references and pointers, certain data structures, and big-O may be very difficult to teach without first going through some more foundational math.
I tend to agree strongly with those that believe a foundational education should inspire interest and enforce concepts and critical thinking over teaching any specific language, framework, system, or dogma.
The key is that the concepts in CS aren't just there for the hell of it. Everything was motivated by a real problem, and few things are more satisfying than fixing something you really want to work with a cool technique or concept you just learned.
shared by mgranger on 20 Jan 15 - No Cached
One day or ten years? Just how long do you need to learn how to teach coding? - TechRep... - 38 views
shared by Rachel Hinton on 05 Sep 14 - No Cached
Coding for Kindergarteners | Edutopia - 51 views
shared by Chuck Holland on 08 Jul 14 - No Cached