Thursday, August 8, 2013

Everybody’s Coding: A critique of math education and new tools for computer-oriented learning





HCESC Tech Academy August 8, 2013
Talk by Fred Annexstein, University of Cincinnati




The next ten years present an important turning point in mathematics and technology K12 education. Will computers be an integral part of standard K12 education? Will computer science be an essential and mandatory part of every high school curriculum? Will high school mathematics curricula be refactored to take advantage of the calculation and visualization powers afforded by modern tablet computers?

The technological world has changed dramatically in the last 20 years. However, as a professor of computer science at the University of Cincinnati, I have seen little change in the skill set of incoming freshman. Math and quantitative literacy are certainly among the most important skills that new students bring to their higher education institutions. However, when reviewing standard middle and high school mathematics textbooks, I see a disconnection from my world-view as a working professional in mathematics.

All our futures are now tied to the advances in computing, and the math, logic, and software that defines computation. Therefore, much is to be gained by addressing the role of computers and math in K12 curriculum directly. Articulating the design of a mandatory curriculum that integrates math, digital literacy and computer science, can and will have a positive impact on individual students, and have a significant impact on society as a whole.

First, there is the economic impact associated with having a better technically trained and scientifically educated student body. The demand for tech skills in the modern workplace is well documented. (A sense of the scale of the demand is reflected in the fact that there are currently 3000 unfilled IT and Computing jobs in the Greater Cincinnati area.) Second, there is the intellectual impact associated with understanding the scientific significance of computers, statistics, and information theory, which is accessible to every high school student. Third, there is the emotional impact associated with the feelings of freedom and the joys of discovery that can emerge from young people through interaction with and control over technology. Fourth, there is the cultural impact associated with a tech knowledgeable and civically engaged citizenry. There is no doubt that to understand and engage with issues of cybersecurity and NSA surveillance, for example, one needs to know how computing system such as PRISM and XKEYSCORE work, and this requires a basic understanding of computers and their design.

On the other side of the fence are those who prefer to avoid going down the route to integrate computers and computer science into standard K12 curriculum. One argument on this side is that for most careers domain knowledge is more important than computer coding skills, and most people will not be coding directly, even if students will likely be using modern computers in the workplace of the future.  Another set of arguments against integrating technology in schools has the effect of “ghettoizing” computer coders into an elite class of mathey nerds, often with a prejudice that coder culture is exclusive, puerile, and male.

Deep Digital Literacy

To achieve any level of depth in digital literacy, students must be able to learn and produce computer code. This digital literacy extends into quantitative, math and science literacy and has the potential to bring the curriculum of those subject areas up to date and present them in a context that would be more recognizable to a modern working professional.

Concepts of the Internet
To deeply understand the Internet and the World Wide Web a student needs some coding skills. The Internet is coding “all the way down”, from front-end technologies such as HTML, Javascript, CSS, to the back-end technologies such as SQL, Linux, Windows; from the specs and protocols running the worlds networks such as HTTP, TCP, FTP, to the mobile applications running the modern economy such as Android, iOS, Gmail, Twitter and Facebook, and the scripts and programming frameworks that glue it all up together such as Ruby, Python, Java, C++, Perl, ObjC.  Of course, a student could only learn a small fraction of details of the coding architecture of the web, however understanding its overall design and underlying principles are within the grasp of every student.

Concepts of Physical Simulation
Physics and engineering in the real world is understood through numerical simulations performed by computers. This is the real math, and why math is important, and how math gets done. High school math curriculum that focuses on hand-calculations at the expense of avoiding a focus on this real-world math is doing students and society a disservice.

Concepts of Information Science
The digital age begins with the theory of information science created by the pioneering work of people such as Alan Turing and Claude Shannon in the 1930s and 1940s. The concept of the algorithm, the universal machine, entropy, encoding and decoding information—this is the foundational science part of the digital age. Turing’s breakthrough idea was that computer code is universal, that is to say, anything that is possible to compute is possible to compute with a very simple machine and an algorithmic idea expressed in a form appropriate for that machine.  Turing’s genius is still underappreciated today. James Gleick’s book “The Information: A History, a Theory, a Flood” presents this new science of information through engaging biographies, such as those of Turing and Shannon.

A visionary who took early note of the power of computers in science and math education was Seymour Papert.  Professor Papert is credited with an influential theory on learning called constructionism, and he states, “The role of the teacher is to create the conditions for invention rather than provide ready-made knowledge.” In his seminal book “Mindstorms: Children, Computers, and Powerful Ideas” (1980) he speaks on the revolutionary impact of project-based student work using computers.

The Problem with Algebra

“Is Algebra Necessary?” is the title of a provocative NY Times opinion piece by Andrew Hacker that was published July 28, 2012, and has provoked over 500 comments and many blogs. Hacker argues that when legislators require that “every young person should be made to master polynomial functions and parametric equations”, then they are missing the point of quantitative literacy. Educators are trying to respond to a looming crisis in which there are math education mandates and widespread dislike by students and other stakeholders for the current state of curricular affairs. A number of educators have suggested that introducing computers can address some of these issues, but in most states computer science is an elective that does not satisfy any math requirements. The quantitative literacy of American students is under scrutiny, and traditional algebra courses do not seem to add up.

To get a sense of the disconnect in K12 math affairs, let us consider a well regarded textbook and curriculum provided by SaxonMath, published by Houghton Mifflin Harcourt. The principles underlying the design of SaxonMath are that it provides “Consistent Lesson Structure” and “Distributed Units of Instruction.” The motivation being that a consistent structure provides teachers with a “predictable routine” in the classroom, and the distributed practice claims to “provide students with depth of understanding”. The curriculum is divided into many dozens of micro-lessons with topics changing on a daily basis. Topics are shuffled in and out through the year.

For example, here is a selection of three contiguous micro-lessons from Saxon Algebra 1, which would probably be covered in one week in an 8th grade classroom setting:
*Lesson 12 – Using real numbers to simplify expressions
*Lesson 13 – Calculating and Comparing Square Roots
*Lesson 14 – Determining the Theoretical Probability of an Event
The textbook continues in this way covering over 120 micro-lessons.

Each of these micro-lesson topics is, of course, on its surface very important to mathematics education. But where do we see any “Big Ideas?” How do all these shuffled lessons fit together into a coherent picture of mathematics? And how do students react to the material? Do students reflect on the material beyond the fact that “math is too hard for me,” or “math is an easy A!”? We should desire and celebrate situations where a student says, “Hey, I can do that problem easier on a calculator or computer.” Recognizing when a problem is in a form ready for calculation by code reflects depth of understanding. A student who understands some simple ideas of computer math, e.g.,  a computer algorithm to calculate square roots and code that can estimate theoretical probabilities would be far better equipped for today’s world.

A recommended online resource is a TedTalk entitled “Stop Teaching Calculating, Start Teaching Math” by Conrad Wolfram in which he advocates for a new math curriculum based on using computers for calculation (see website http://computerbasedmath.org ). Wolfram indicates that math is a four step process: 1) posing the problem, 2) formulating in mathematical language, 3) calculation/computation, and 4) verification. He suggests that currently 80% of student time is spent in doing step 3 using hand calculations, whereas ideally computers should be used to free students to devote more time to other steps. Students can achieve greater depth of understanding when curriculum is directed at formulating and modeling problems mathematically. Recently, efforts in this direction have been adopted by some European nations, thus far focusing on statistics curriculum in high schools, with potential to expand to other math grades.

A Project-Based Curriculum using Computers and Coding

High school students must become familiar and comfortable using computers as calculation engines. At the start of such an endeavor, there are great benefits to giving students an artistic experience with technology. Such experiences can strengthen students, giving them self confidence, and can work against the more harmful effects of technology in the modern age.  One curriculum idea that I have worked with in the setting of an 8th Grade classroom is to use modern software on laptops that provide a platform for students to become “Algorists.” An algorist, or algorithm artist, is someone who uses computer coding to generate artistic media, images, sounds, etc. Much more than cut and paste is expected here, and students really create their own art works. This fits the need for middle schoolers to experience self-reliance and supports their inclination to create their own media.  There are several actively supported computing platform tools to help students achieve this goal. There are very good Java and Python media computing textbooks that support introduction of computer science concepts, such as Barbara Ericsson’s and Mark Guzdial’s (Georgia Tech) An Introduction to Computing and Programming with Java: A Multimedia Approach (2006).

Computer gaming is an excellent way to both engage students and to introduce physical simulation. The mathematical modeling of gravity, the science of falling and projected bodies, and the algebra of force vectors are all well motivated in computer games and animations. There are several low-overhead entry points for students and teachers to begin working on computer physical simulations.

Scratch/TurtleArt – TurtleArt and Scratch are applet based art-programming environments, Both can be used by young students to generating images using turtle commands, such as move, turn, and pen down. Scratch has been designed with “wide walls” allowing the popular platform to be used for many purposes. In these friendly environments, students program by snapping colorful code fragments together like Lego building blocks. Scratch is excellent choice to use to support digital literacy, digital design, and when introducing basic computing concepts like variables and flow of control (see, http://scratched.media.mit.edu/ )

Linux/Python/Perl – It is relatively easy, using these technologies, to set up a command line (non proprietary) environment that gives students more control over the processing power of the computer. Python and Perl are languages that can be used to provide an important functional programming environment, one that is used successfully by students to do powerful text and media processing.

Processing - Processing is a programming language designed to promote software literacy within the visual arts and visual literacy within technology. Initially created to serve as a software sketchbook and to teach computer programming fundamentals within a visual context, it is now very mature software and exciting for more advanced students.

Here are some final thoughts: Technology moves very rapidly, and computer languages and platforms come and go with increasing frequency. Teachers must give up on being gatekeepers to tech knowledge and focus efforts on mentoring in a tech culture. The focus of education should be on creating environments where students care really “see” math in action and building school cultures where self-assured students armed with computer lab or simple tablet and an ability to code can meet important challenges of science and technology straight on.





Handout for talk on “Everybody’s Coding”
Mathematics/Computer Science/Technology - Resources for K12 Education
By Fred Annexstein, University of Cincinnati, fred.annexstein@uc.edu

“The context of human development is always a culture, never an isolated technology." - Seymour Papert, mathematiciancomputer scientist, educator, founder of MIT Media Lab.

Inspiring TED Talks:
*Mitch Resnick: Let's teach kids to code: http://youtu.be/Ok6LbV6bqaE
*Conrad Wolfram: Teaching kids real math with computers: http://youtu.be/60OVlfAUPJg


Supporting Websites:
*Computer Science Teachers Association: http://csta.acm.org
*Computing at School (UK): http://www.computingatschool.org.uk/
*Code.org: http://code.org
*Mark Guzdial’s Computing Education Blog: http://computinged.wordpress.com

Curriculum Resources:
*UK K12 Computing Curriculum:


Supporting Platforms and Tools:
*Scratch  / TurtleArt  “visual programming using legos” http://scratched.media.mit.edu/
*Processing  “software literacy within the visual arts “  http://www.processing.org/
*Alice  “OO programming in 3D environment” http://www.alice.org/
*Code Academy “learning in web-based javascript  environment” http://www.codecademy.com/
*Linux Environment for Education: http://www.edubuntu.org/
*Microsoft Dreamspark “MS software for students and educators”