Inventing Numbers
Annotated Class Description:
> I like to think of numbers as piles of stones.
Well, to begin with I do. Going from a pile of stones to the
complex number system is an interesting journey that usually
requires a semester's college course.
Our two hours in this course won't be enough to begin that journey.
Instead we'll ask: if we didn't have numbers how would we invent
them in Java? How would we imitate the arithmetic of adding and
subtracting piles of stones from each other?
I mean no ints, no arrays, no numbers!
At least no visible numbers, the Java run time system and the
computers it runs on will play all they want with numbers. We,
however, will do without. We can do without while staying pretty
much within the subset of Java that is covered in AP classes.
> As a mathematician and computer scientist I like to think of my
> work as inventing languages to accomplish abstract tasks.
The exercise of imitating pile-of-stones arithmetic in Java will
teach us something about creating our own computer models.
When we have got addition and subtraction working, multiplication
and division can pretty much be left as an exercise. We will move
on to translating our number system to and from Roman numerals.
Again, we will be thinking in terms of models that avoid Java's
numeric data types. We will try to second guess what the Romans
were thinking when they came up with their number system. Our Java
program will imitate that thinking.
> Taking the first steps in creating a number system from a pile of
> stones will give us chance to talk about this.
The Java code we will come up with may be a bit mind bending (for
those who haven't gone through a college course in data structures)
but it won't be long and detailed. That should give us time for
Q and A as we go along.
> Examples will be in Java because that is what is taught in high
> school.
Java is far from my favorite programming language but is popular and
what the College Board tests. This class will help you with that
exam.
The actual code presented in class will be available as a handout
during class and online afterwards.