| Author: | Dr. Andrew N. Harrington, Loyola University Chicago |
|---|---|
| Date: | 2009-03-06 (Fri, 6 Mar 2009) |
Formatted with Python docutils and S5 [7]
Newly developed sub-notebook computers, are under $200 and going lower:
Symbol sense is the ability to manipulate symbols and more abstract quantities than just literal numbers.
This is important for students.
Hand symbolic calculations like simplifying a complex linear expression to solve a linear equation provide some symbol sense.
A black-box CAS loses out here - jumping to results gives very limited symbol sense.
There is a definite corrolation between symbol sense in programming and in math. It also goes the other way: those coming into programming with good symbol sense from math are most likely to have an easy time in programming.
Tie the importance of algorithms in math with some of the approach to algorithms in Computer Science.
Algorithm:
Clear, step by step instructions to complete a task in a finite amount of time
Good special-purpose beginner languages for fun, graphics, and an introduction to algorithms: Squeak [1], Scratch [2], Alice [3], TurtleArt [4]
Accessible, free, general purpose, powerful language: Python [6].
Python is sometimes referred to as algorithms or pseudocode with colons. it has excellent features for beginners, for high-level math constrcts, and also for professional programmers (1/3 of code at Google in Python).
The issue with CAS was the black box - gave little symbol sense
Stating the algorithms you are using in Python is quite easy, and also is highly symbolic - to succeed you need to develop good symbol sense!
Essentially discuss and write your own mini CAS - and then you intellectually own it.
Expressing in Python is also a modeling/translation exercise - an important skill.
You are totally free to take advantage of the fruits of your labor and understanding to solve large sized problems instantly.
You can also elaborate the code to solve a wider set of problem types.
This approach is centered on math, not making students into software engineers or computer scientists.
Obviously the exposure to easy algorithms in a neat language helps give exposure to some computer science ideas.
With computing so central to our lives this is reasonable, and not otherwise done in a No Child Left Behind, 3 R's only world. I will resist the temptation to get on my soapbox about all the ways average people see computers as infallible black boxes - really bad if you want to get into a discussion of electronic voting, security, phishing, medical robots, robot armaments...
In particular, greater ease with calculation algorithms is going to be helpful in science classes.
Further integration, math + computer algorithms + science would be a next step.
This slideshow at http://cs.luc.edu/~anh/HS/pyalgebra.html
All resources in http://cs.luc.edu/~anh/HS/pyalgebra.zip
Links
| [1] | http://www.squeak.org/ |
| [2] | http://scratch.mit.edu/ |
| [3] | http://www.alice.org/ |
| [4] | http://sugarlabs.org/go/Downloads |
| [5] | http://us.pycon.org/2009/tutorials/schedule/1AM1/ |
| [6] | http://python.org |
| [7] | http://docutils.sourceforge.net/docs/user/slide-shows.html |
| [8] | http://cs.luc.edu/anh/python/hands-on |
| [9] | http://cs.luc.edu/anh/HS/PythonShell.html |