80 views

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.

Document Related

Document Description

A Proposal to Pioneer a Role for Python Within Alternative K-12 Mathematics Track

Document Share

Document Tags

Document Transcript

A Proposal to Pioneer a Role for Python Within anAlternative K-12 Mathematics Track
byKirby UrnerJune, 2005Oregon Curriculum NetworkPortland, Oregon, USA
A Proposal to Europython 2005
A Proposal to Pioneer a Role for Python Within anAlternative K-12 Mathematics Track
By Kirby UrnerJune 3, 20054D SolutionsPortland, Oregon, USA
Nomenclature
Given this paper was designed for an international readership, I should not assume auniversal namespace when it comes to education matters. For example, when Itransferred to the British system for a year in the mid-1960s, I became aware that what Icalled “third grade” my counterparts in Britain called “first form.”In the USA, the namespace features twelve grades pre-college, plus kindergarten andpossibly pre-school. College is typically a four year experience, leading to a Bachelor of the Arts or Sciences degree. Further degrees require additional years of study.These pre-college years are generally referred to as K-12 (kindergarten through twelfthgrade). Or one might say K-16 to mean all formal schooling through the end of college.The term
high school
(or
secondary school
) embraces grades 9-12.I will use the above terminology on the understanding that rough translations to otherschooling systems, including home schooling, will be required. Given we all grow olderaccording to various biological clocks, at least the aging variable may be taken as global,even while the steps to higher learning are differently defined and described.
CP4E
Since the early days of Guido’s DARPA-funded “computer programming for everybody”proposal (CP4E), elements within the Python community have harbored the ambition tosee their language integrated into various curricula, with a special focus on those who arechoosing other walks of life besides computer science (CS). The CP4E strategy is toreach beyond the walls of CS to embrace, well, everybody with a desire to learn.
1
This strategy is realistic even within the standard college computer science curriculum, asthe introductory courses tend to be designed to accommodate non-CS majors, as well asthose expecting to continue in CS. In other words, students in neighboring departmentssuch as physics or biology, may fulfill various requirements, or simply amplify their skillsets in relevant ways, by diving into a CS sequence. Teachers are finding that if suchstudents first encounter Python, versus say C++ or even Java, their satisfaction with thecourse material tends to increase, given Python’s relative ease of use.
Version 1.3, 9 June 2005
A parallel strategy is to reach into the pre-college years and find ways to leverageexisting and/or traditional content in ways that foster a more mature approach tocomputer technology. At least in the USA, pre-college mathematics text books andteacher groups such as the NCTM give lip service to “technology in the classroom” but inpractice this mostly translates into calculator, not computer use. The current status quo,as of 2005, is that programming of any kind is usually not discussed in math class. Onthe other hand, elective computer science and programming courses are beginning toappear at the high school level, and mathematics
is
discussed in them. In sum, pre-college CS is where math and programming currently come together.My interest is in strengthening the pre-college CS curriculum to where it becomes less anexotic elective, and more a viable alternative to the standard mathematics sequence. As astudent, if you find yourself attracted to programming, and to more computer andtechnology use in general, then you may seek to escape the non-technologicallysophisticated mathematics curriculum of the past, and learn what you need in a new way.
2
Python may well be a part of this experience, and the mathematics content in this newtrack will be strong enough to bring you up to a college level of preparation,independently of the traditional math curriculum.
OO and Mathematics
The task of integrating mathematics in a contemporary computer language such asPython brings up the question of how to fit object oriented thinking into an integratingframework. We don’t want our discussion of classes and objects to come across as someelaborate digression that has no relevance to mathematics as traditionally taught, sincethe whole point is to achieve a better synthesis between pre-college math andprogramming.I believe the solution is to recast mathematics as an extensible type system, with OOlanguages providing concrete examples of what this means in practice.
3
Once you havesome primitive types available, such as integers, floats and strings, your job as aprogrammer and mathematician is to develop new types by means of composition andinheritance. A type defines both properties (or state) and behavior i.e. nouns and verbs.An object of a particular type generally has its individual values, such as numerator anddenominator in the case of a rational number, plus all the method-defined behaviorsassociated with this type, such as an ability to add or multiply with other objects of thesame (or perhaps a different) type.In other words, bringing traditional mathematics into an OO context involves making“dot notation” a more ordinary and intrinsic aspect of math notation generally. Studentsshould develop an appreciation for how
object.method
(arguments)
and
object.property
expressions give form to standard algorithms. Additionally, theyneed to understand constructors (e.g. Python’s
__init__
) whereby new objects comeinto existence. The difference between a class definition, and objects as specific
instances
of a class, will be used to discuss and manipulate such mathematical entities asrational numbers, polynomials, vectors, matrices, and polyhedra.Kirby Urner 3Proposal to Europython 2005
Version 1.3, 9 June 2005
Data Structures
Typically, the one data structure that has received the most attention, especially since theso-called “new math” (SMSG) in the 1960s, is the set.
4
Students learn that a set consistsof unique elements, with membership determined either by roster (a simple listing) or byrule (criteria). Sets may contain finite or infinite members, the latter tending to be rule-defined (e.g. all even numbers). Once the set concept is established, operations such asunion and intersection are introduced. In the USA, the “new math” started introducingthese concepts as early as 2
nd
grade.There’s a lot of history behind this push to introduce sets early in the curriculum -- andbehind its fading momentum. Partly the idea was to get students used to new symbolism.The symbols for “is an element of” (membership), “is a subset of,” union andintersection, were becoming more common in college level reading, and the idea was toget students fluent in higher math more quickly.In Python, we have a set type (a built-in as of Python 2.4), but it comes across as aspecialized kind of dictionary, one with keys but no values. The unordered aspect of dictionaries is thereby preserved (no integer-indexing of the membership, unless you’veused integers as keys – but even then, no slices), plus the uniqueness of dictionary keys isconsistent with the set concept. However, the set is but one example of a collection type.Lists tend to be the more common workhorse of the Python language, thanks especiallyto list comprehension syntax.I would propose a parallel shift in emphasis in K-12 mathematics, at least along thisalternative CS-informed track, where programming in Python will be a popular option:keep the material on sets, including the specialized notation, but integrate it into a largerdiscussion of collection types. Use dot-notation to provide a more universal way toexpress static and dynamic aspects of collections (sets included), plus use thisopportunity to introduce integer-based indexing. Mathematics is replete with indexing,including in two-dimensional tables such as matrices. N-dimensional structures followby extension (a quick foray into some array-based language, such as J, might make senseat this point).
5
The rule-defined infinite set becomes a useful jumping-off point for getting into Pythongenerators, i.e. some rule keeps giving a next member of the set, indefinitely and
ad infinitum
. It’s not that the members “already exist” in computer memory, but that theirsuccessive generation has been algorithmically defined. This shift in our approach toinfinite sets has philosophical implications which I consider both demystifying andhealthy.
Sequences
The common wisdom in CS pedagogy is that the class/object discussion should comesometime after practice has been gained with the easier concepts of assignment toKirby Urner 4Proposal to Europython 2005

Search Related

Previous Slide

Next Slide

Similar documents

We Need Your Support

Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks