- #1
- 1,231
- 0
I just gave a presentation today on my team's server which we are writing in Java as part of a plugin to an existing application, the other parts being done by other teams. In the course of this presentation I realized just how well I know the code: I know useful information on virtually everything written in the whole server program, which is about 3000 SLOC (source lines of code, defined as non-comment, non-blank lines of code) or about 5000 lines total including comments and blank lines, covering 30 different classes and six different packages. Objectively speaking this is a small program (though the largest I've ever been involved in writing). Not only do I know my way around almost all the code, I know it with just about absolute rigor; you can't write a working program without being almost absolutely rigorous.
Now what if the program had been some kind of mathematical construct instead? Then instead of knowing my way around some program I'll probably never use again after this semester (not that the experience isn't good), I'd know a good amount of math, i.e. permanent knowledge. And I'd know it to a higher degree of rigor than is demanded in any of my other classes. And any moderately skilled novice programmer must have the same learning ability, or else they would not be able to make working programs either.
At the moment I tend to perceive a math problem that takes a few pages to solve as "long." Our program printout would be about a hundred pages, and any professional programmer would call it small.
Is there a teaching theory that makes use of this--a math curriculum from a very basic level onwards, centered around implementing as much knowledge as possible as working programs? I am aware there are math courses that deal with Matlab or Mathematica (for some reason I have not taken one yet) but at the undergraduate level I'd imagine the amount of code written is usually very small and only supplemental to the course material.
Somehow, with training, people have the ability to be astoundingly good at writing programs, producing very large volumes of very rigorous work. Education should capitalize on this.
Now what if the program had been some kind of mathematical construct instead? Then instead of knowing my way around some program I'll probably never use again after this semester (not that the experience isn't good), I'd know a good amount of math, i.e. permanent knowledge. And I'd know it to a higher degree of rigor than is demanded in any of my other classes. And any moderately skilled novice programmer must have the same learning ability, or else they would not be able to make working programs either.
At the moment I tend to perceive a math problem that takes a few pages to solve as "long." Our program printout would be about a hundred pages, and any professional programmer would call it small.
Is there a teaching theory that makes use of this--a math curriculum from a very basic level onwards, centered around implementing as much knowledge as possible as working programs? I am aware there are math courses that deal with Matlab or Mathematica (for some reason I have not taken one yet) but at the undergraduate level I'd imagine the amount of code written is usually very small and only supplemental to the course material.
Somehow, with training, people have the ability to be astoundingly good at writing programs, producing very large volumes of very rigorous work. Education should capitalize on this.