(λx)mortal(x)
Ted
I forget exactly when we first encountered the upside down A ("for all...") and the backwards E ("for each...").
Kirby,
The first time I became aware that the subject of logic even existed
is when I read "The Lion the Witch and the Wardrobe" by C.S. Lewis in
the 5th grade (which was around 1975). In this book the Professor
rants “Logic! Why don’t they teach logic at these schools?”. The next
time I was exposed to logic (apart from the Boolean logic which is
taught in digital electronics classes) was in 2008 when I started to
study how CASs work.
A year or so ago I obtained a copy the Wff 'n Proof logic game, and my
understanding is that K-6 students are able to play it. What are your
thoughts on other ways to teach fundamental logic to K-6 students?
Ted
To be fair, I am a westerner. From Belgium.
The old school way of introducing mathematics was to begin with logic. And more precisely being able to differentiate "true" from "truth" and "valid" from "correct", "just" and "accurate".
Then we had basic arithmetic (on N) and ven diagrams.
From there, we learned Z which was simply a generalisation of N. Then went back on Venn to show how N,Z,R and Q are related.
Someone leaving primary school knew the basics of set theory and logic of predicate. (Eg. 《How can one prove that all cat aren't necessarily black?》)
This was the kind of question a 10 year old would have laughed at!
Based on this, we had things like "compound surfaces" etc.
The 6 years of primary school have been spread on higher classes and the curriculum overly simplified.
I remember havinh learn to cook and sewing. I even learned to read lables. These alongside reading various symbols (bio hazard, acid, prone to explode, no ironing, hand washing, ...)
And we had days where we didn't really "learn". Where we did go to museum, prepare a piece or even come to school dressed as 30 years ago and use feather to write.
It was a school from a small village. With very old tradition and traditional teaching.
When I joined an ELITE high school (one of the most difficult due to my high grades in primary school), I literally thought a mistake was made and that I was with the dumbest people!
I wasn't and hardly learned that "thing had changed and the old way of teaching is revolved".
I then moved in another school to be a computer scientist and, gosh, It was worse!
We hsd thing like "boolean algebra". I saw the beginning and told "Ah well, it's on par with set theory isn't it?" and the teacher was like "What?!". I then started to explain the relations between the two and how logical it was. She was stumped and told me something like this: 《How do you know set theory, it is academic subject?》. And I thought "What ? They speak of red cars and red trucks in academy?" (one of the many examples we had when constructing Venn diagrams)
I had the same surprise in other subjects!
Luckily people are kind of returning to bases : learn logic first, fil learning, etc.
When old fashioned is very modern :-p
Kirby,I see your video has prompted an interesting discussion on teaching logic.
Now it seems to me all these curricular ideas are "bottom up",starting with building blocks and then creating grander and grander structures.
There is an alternative approach, supported somewhat by lambda calculus: the "top down recursive" approach.Start with an assertion of the "answer", gradually break it down into components.The latter approach would seem to provide better motivation.Start with the question, or the "application". And keep "peeling the onion" until you get to the fundamentals(if you ever need to get that far.)
Consider modern society. All necessary "math" for most jobs can be condenses into a smart-phone or computer "app".
The practicing professional only needs to know what the inputs and answers mean, and how to set up the problem and enter it into the app.Of course, there is a profession of "app builder". But even this works best when the app builder is familiar with the profession that uses the app.
We have all too many apps designed by computer geeks who have no concept of the real-world challenges of the would-be app user.
(So I would agree with teaching "app building" skills to all professions, just as we acknowledge that all professions need reading and writing.)
I continue to believe that the fundamental "application" of math/CS is "building models".
Specifically, models of "measurable (sensible) relationships in the real world."
These relationships could be quantitative.
Or they could be qualitative (kind)--which might be modeled by set theory.
Or they could be "positional" (geometric or topological), as for example the chemical configuration of biological structures.
What if we replaced "numbers" and "points" with "rigid bodies" (six degrees of freedom) or "deformable media" (tensors) as our "fundamental" units?
We know logic and set theory are equivalent, but which is "real"?I'm thinking that what we call "logic" might be ultimately derived from the properties of "sets," that is, common properties and inclusion.In any case, "sets" are typically easier to visualize and model than "truths".So why isn't logic or set-theory taught? And if taught, why not more used?Perhaps because we have focused so much on "counting" and "measuring" that we have neglected "positioning" and "classifying" and "inclusion".
In a culture in which everything is reduced to time and money,"diversity" has become something to be abstracted away instead of explored for it's rich variety.What if, instead of counting apples and oranges, and building with Legos,our children were taught to count hydrogens and carbons and oxygens, and build hydrocarbons and sugars and proteins?
What "math" could they learn exploring the oxidation of hydrocarbons or the metabolism of starches or the reproduction of bacteria?
So even before logic, we need the "raw materials" on which logic and other "math" is based:Similarities and differences; inclusion and exclusion; relative position and orientation; count and quantity (and the difference between them).I would never introduce "numbers" without qualifying "units" and even "position/orientation".So I guess my "math" would be more like geometry than arithmetic.E.g. "John and 3 apples and Mary has 2 (apples) " is not merely 3 + 2.It's also a statement of set membership and like units.
I guess I'm starting to ramble, so let me close with a parting thought:What makes elementary math "hard"?Two things:1. The decimal place-value number system and algorithms for doing arithmetic with it.(Consider teaching "arithmetic" with unary numbers--what would be lost, theoretically speaking?Even "binary" is as much easier than decimal as decimal is easier than Roman numerals.)2. Trying to do "word problems" without "algebra", that is, without the rule-based rearrangement of statements of quantitative relationship.(Consider a COBOL-like "limited vocabulary" for expressing quantitative relationships, and devise a set of "rules" (analogous to the Greek rules of logic) for interpreting and rearranging them.)Joe Austin
Great ideas!
"the fundamental "application" of math/CS is "building models"It was always for measuring and modeling real stuff before it was turned into "pure" math.Using Python sets (OK, other languages might work, too) to LEARN ABOUT SETS is brilliant. Gonna steal that.
I'm going to get some flak for this, but the meaning of anything is how it's used. You might "see the logic in it" much later, or you might never need to. And if you need to, you have the experience to build on.
The answer to "why are we doing this?" might be "Because it's fun!" Making interesting designs, models, and games is analogous to using our three chords to play a song we like. Why play a song you don't like? Actually, I played guitar in a duo where I was asked to learn songs by a famous act I don't particularly like, but I'm glad I did: I got better at the guitar by doing it! But we also played a lot of songs I did like.Peter
MathPiper has all of these characteristics right now :-)
Ted
On Apr 14, 2016, at 7:57 PM, kirby urner <kirby...@gmail.com> wrote:So what should math teachers do? Learn to code. It's obvious.
On Apr 14, 2016, at 7:57 PM, kirby urner <kirby...@gmail.com> wrote:So what should math teachers do? Learn to code. It's obvious.
On Apr 14, 2016, at 7:57 PM, kirby urner <kirby...@gmail.com> wrote:So what should math teachers do? Learn to code. It's obvious.And also, because "it's MATH."But not only math teachers need to learn to code.Any more than we would say only math teachers need to learn math.
The older I get, the more I realize that "you can't teach old dogs new tricks."
Fortunately, there are always new dogs coming along.And as I argued earlier, if you wait until they become "teachers",you've already waited too long.
If you already know how to code, become a code teacher.
<quote section = "ibid">
• Because there are so few computer science teachers,
they lack a community.
They don’t have fellow teachers to discuss the challenges in their classroom.
• Computer science class content changes often. A
mathematics or physics
teacher can count on the content remaining
mostly the same over many years,
so that the teacher can focus on
teaching better. A computer science teacher
also has to deal with changing programming languages and tools.
• A good computer science teacher often develops the
computing knowledge
sufficient to work in the computing industry—for significantly more income.
</quote>
Remember I was solving 1 and 2 by saying "lets leave it to the math teachers"
i.e. we really don't need to import a whole new cadre of CS teachers. We're
talking about flavors of math here, though not every English speaker is fast
enough to think that.
Then I was solving 3 by saying "lets pay them more to source their own
curriculum because big publishing has no suitable offerings, period."
Want your school to look smart in the year view mirror? Don't wait.
Who needs big publishing of wood pulp textbooks when our math
faculty and students are doing such great work filling the school
servers with such wonderful heritage?
Teach your kids or your grandkids. Teach seniors or youth at the community center or at church.Put a Raspberry PI in the Toys for Tots box.
Now as for CS being "math"--I suppose it's incumbent on us Computer Scientists to translate CS into their language,if they won't learn ours.
Even if they don't accept Church or Turing, they already accept Boole.Let's axiomatize!
I've been starting to re-think Science and Math along lines of "Conservation Laws."An "equation" is basically a "conservation law" between the two sides.
Take a sum or product:We typically teach the "table" as:2+0=2; 2+1=3; 2+2=4; 2+3=5; 2+3=6; ...2x0=0; 2x1=2; 2x2=4; 2x3=6; 2x4=8;...What I'm saying is, this is wrong thinking.The way we should be teaching it is like this:4+0 = 3+1 = 2+2 = 1+3 = 0+4;12x1 = 6x2 = 4x3 = 3x4 = 2x6 = 1x12;
We can develop all the same sums and products this way,but we present it in the context of conserved quantities.I maintain that no natural process yet discovered creates or destroys anything;it is all rearrangement.
So why should math not accept the same constraints?It is all rearrangement!So how does this apply to CS?If CS is modeling, we model conservative systems.
(Remember the old double-entry bookkeeping? For every debit, their must be a matching credit.)Calculating is rearranging. Math is rearranging.Let's systematize the axioms for rearranging, and they become the primitives of our coding language.We can rearrange quantities. We can rearrange sets and symbols. We can rearrange points and lines and areas and volumes.We can rearrange atoms and molecules. And we can rearrange money in time and pockets.And thus we can rearrange the curriculum.Joe Austin
On Apr 15, 2016, at 12:53 PM, kirby urner <kirby...@gmail.com> wrote:whether to teach "JavaScript only" as a Turing Complete language
On Apr 17, 2016, at 7:40 PM, kirby urner <kirby...@gmail.com> wrote:If you wait for the new kids to grow up that's too much waiting.
I'm working with the crop of adults already here.
Of course it's changed somewhat since them. I'm curious what systems you are using to teach javascript today.Joe Austin
On Apr 17, 2016, at 7:40 PM, kirby urner <kirby...@gmail.com> wrote:If you wait for the new kids to grow up that's too much waiting.
I'm working with the crop of adults already here.I't not "either/or" but "both/and".I'm saying, "don't wait for the math establishment to accept CS."I think you are saying the same thing.
I'm flanking. You are over-flying and infiltrating.And let's not give up on the frontal assault either.
I think there are two parts to the battle:1. Accept the use of technology for doing "math".
2. Expand and clean up and the theoretical foundations of "algorithmic math" that have become relevant because of available technology.
I need to take another look at your "lambda track".Joe Austin
We have machine-only code too i.e. pretty much unreadable by
executable (binary code). (Hx + Mx) is the synergy we're experiencing,
in these newer kinds of math language (L).
Mx <---- L ----> Hx
On Apr 15, 2016, at 2:47 PM, kirby urner <kirby...@gmail.com> wrote:any "just one language is enough for me" approach is bankrupt from the get go.
On Apr 15, 2016, at 2:47 PM, kirby urner <kirby...@gmail.com> wrote:any "just one language is enough for me" approach is bankrupt from the get go.I guess that depends what you want to teach.
The Turing machine and lambda calculus (LISP) are each thought to be capable of expressing any "computable function."Most "practical" languages are not so rich.
So are we trying to teach "math" (M) or "technology (T)? Or I suppose some would advocate for Engineering (E) as in "software engineering".
I've believed that traditional blackboard decimal arithmetic could be taught more rigorously and informatively using a 2-D Turing machine operating on binary digits. Instead, we try to explain arithmetic algorithms in words and "watch how I do it."
Since you proposed the "Lambda" track, I assumed you would be happy with LISP, Scheme, or one of it's successors.
But if one really just wants to teach "Technology", I'd lobby for adding T and E to the curriculum instead of trying to force-fit it into "M".
I don't think it's necessary to teach "everything" in school. Teach the fundamental concepts in a language designed for learning,
(that is, a language system that allows easy experimentation and provides lots of debugging assistance)
then invite the students to explore other concepts on their own.
The internet is full of tutorials for just about any practical algorithm or language.
If you are teaching it as "math", then focus on the fundamental primitives (axioms)and techniques for building more complex functions (theorems) from the primitives.
Try "building" an arithmetic expression evaluator or relational algebra search function.Joe
Python has lambda too, just it's not meant to do a lot. If you not a long and complicated function, best to give it a name as you'll likely need it again.
Good Morning, Kirby,The Lambda track looks ambitious!Are you envisioning a 4-year curriculum, a one-semester course, or somewhere in between?
Great list of topics, but can we put them into a pedagogical sequence,starting each with appropriate motivation?
Pursuing my suggestion that "math" is "modeling",I'd think we would want a "real" system as the prototype for each of these areas,and if it's a HS level class, a system that would be relevant to adolescents as well as adults.
For example, I was reading Boole on what we now call Boolean Algebra, and he took an approach more motivational than the typical textbook.(I think it was a chapter in Hawking's God Created the Integers.)At the end of the course, I would like the student to come away with the idea that"axiomatic, algorithmic modeling" can be applied to a variety of real-world situations.That in fact, we can "invent our own" math system as the occasion requires.(That's how the math we have came to be!)
"Math" is like a bucket of Lego bricks. A few dozen "bricks" can handle most of the "bread and butter" problems,but occasionally it's OK to use, or even invent, a "special" brick for a unique application,as long as it fits together with the others.
BTW, I'm a great fan of the Logo Turtle and it's extension to Star-Logo. I'd put that in somewhere.Joe
On Apr 21, 2016, at 11:00 AM, kirby urner <kirby...@gmail.com> wrote:We need to help them break out of the 1900s model that life is in three phases: (A) education (B) workplace (C) retirement.
On Apr 21, 2016, at 11:00 AM, kirby urner <kirby...@gmail.com> wrote:
It's just that now we can use computer programming as more of a unifying skill and develop that skill more methodically over at least two years.
On Apr 21, 2016, at 11:00 AM, kirby urner <kirby...@gmail.com> wrote:It's just that now we can use computer programming as more of a unifying skill and develop that skill more methodically over at least two years.Kirby,The advantage of the computer is that it makes practical the execution of long and intricate algorithms,making it possible to model the macroscopic effect of the global interactions of microscopic activities.
I've never been a fan of "science-fiction" and super-heroes. The reason is, there are no "rules".You never know the limitations of what is possible, so you can never fully appreciate the "danger" of a given situation.
So, computing can be unifying, IF we begin to think of the world in terms of state transformations (conservative transformations in particular).
And begin to think of "computing" as modeling the state transformations of real things.
Learning the concepts per se is not particularly difficult or time consuming.The challenge is developing a facility for applying them to significant real-world situations.
I was able to learn FORTRAN in a week because I already understood algebra and subscripts and induction.I suspect someone could as well learn MATH in a week if one had already been exposed to coding of non-numerical symbolic applications.Joe
Here's a brief lambda track outline, off the top of my head:Abstract AlgebraSets (use Mx with set built in)Group, Field, Ring (hands on intro)Finite Groups (of totatives of N, cayley tables)PermutationsCyclic NotationAxioms and Theorems (preview of Sylow's)
You are outlining the basic distinction between "theory" and "application."Of course, at any level we accept certain things as "true" without proof, and build on/with them.
In terms of curriculum, this becomes "bottom up" vs. "top down".So much of our curriculum is "bottom up", with requires introducing concepts with no motivation in order to build a "solid foundation".
Could we instead start at the top, and successively "peel back the onion" revealing the next-lower foundation of that immediate layer?Joe Austin