Send Close Add comments: (status displays here)
Got it!  This site "eahs1974.org" uses cookies. You consent to this by clicking on "Got it!" or by continuing to use this website.  Note: This appears on each machine/browser from which this site is accessed.
Teaching and learning computer science
by RS  admin@eahs1974.org : 1024 x 640


1. Teaching and learning computer science
To me, the essence of teaching and doing computer science is that of learning algorithms and data structures. Here are some skills that used to be emphasized in K-12 grades but, today, appear to have been eliminated or deemphasized.

From more than 20 years of teaching computer science skills at the college level, here are some areas that I consider important at the K-12 level. These ideas will be expanded on and elaborated on over time.

2. Manual arithmetic
Some of the best data structures and algorithms to learn are single and multi-digit addition, subtraction, multiplication, and division as used to be an important part of grade school (fractions too).

In learning such skills, as in studying and learning logic programming, the skills can be divided into two parts. To do manual arithmetic one first memorized facts such as single-digit addition, subtraction, multiplication and division tables.

Then one learns rules for doing multi-digit addition, subtraction, multiplication and division tables.

If one tries to convert the process into all rules (such as might be done in "common core", so I have been told), then it does not work well.

Once one learns the facts and rules, intelligent people learn how to use heuristics to approximate or find quicker solutions.

If one tries to just learn those heuristics to approximate or find quicker solutions, that does not make one intelligent nor does it help in always finding quicker solutions.

3. Cooking
Another close mapping is that of leaning to cook since preparing a recipe (program) is made up of data structures (ingredients) and algorithms (the written recipe) - computer science involves efficiently arranging objects and events in time and space - just like cooking.

Making a meal (multiple recipes at the same time) in representative of parallel or concurrent programming.

Catering a meal (large quantities) is representative of scalability and many issues in what is called "big data".

4. Shop class
Shop class is excellent for learning how to visualize the architecture of making things so that, say, when one gets to a database or software system, and one can no longer see the whole structure and relationships, one can still visualize it (that's how I do it).

5. Legos
Building with Legos involves and develops many of the same skills.

6. Music
Another important part might be music, where one must learn a complex abstract language notation (written music) that has a physical realization (sounds we call music). A programming language is just an abstract notation for describing a computation.

7. DNA code
The DNA code involves 3D computer-like manipulations that result, in part, in an 3-D protein structure.

8. Graphics code
Creating programmed graphics and visualizations often involves programming principles and abstractions but in a graphic space instead of a program space.

9. Summary
There are other connections, but learning methodologies and skills such as manual arithmetic, cooking, and shop activities help one get that kinesthetic learning that can later be applied to very abstract computer science in the form of programming.

by RS  admin@eahs1974.org : 1024 x 640