How can programming-based learning enhance mathematical understanding and rigor?

  • Thread starter Thread starter 0rthodontist
  • Start date Start date
AI Thread Summary
Programming-based learning can significantly enhance mathematical understanding and rigor by requiring students to engage deeply with concepts to create functional programs. The experience of writing extensive code fosters a level of knowledge and precision that often surpasses traditional classroom learning. A professor's innovative teaching method, where students built a Pascal interpreter, demonstrated that serious programming projects can instill confidence and a sense of accomplishment in students. This approach emphasizes the importance of creating real, working solutions rather than merely completing assignments. Overall, integrating programming into math education can lead to more profound and lasting comprehension of mathematical principles.
0rthodontist
Science Advisor
Messages
1,229
Reaction score
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.
 
Mathematics news on Phys.org
This is not absolutely math related, but anyway, it's on the same subject as the OP. Yesterday I was talking to my professor for theory of computation, and he said that he once taught a class in data structures at Duke. He had never taken a course in data structures (he had been a math major, though having done programming for years he was familiar with the subject) so he looked around to see what books there were. He discovered that the prevailing teaching method was extremely stupid, on the order of "This is a stack... now write a ten line program using a stack. This is a queue... now write a ten line program using a queue." Instead of doing that, he created his own course where the students wrote an interpreter for Pascal excepting the branching or loop structures, and each part of the course was to write a program (incidentally using a newly-introduced data structure at each stage) to implement another part of the Pascal language. Each new module the students wrote had to integrate with all the earlier (working) modules.

He said he had 24 students in the class. 8 of them dropped by mid-semester, 8 of them failed, and 8 got A's. Of those that got A's he said that several came back years later expressly to thank him for teaching that course--it gave them a lot of confidence in their abilities, even if they never continued in computer science.

What that shows, I think, is that if a student is dedicated enough to succeed, a serious programming project really feels like making something real. You do not depend on the whim of graders, and the standard is the very solid one of "works" or "does not work." If you don't absolutely know what you're doing, you can't write the program--as simple as that.
 
Last edited:
Yes

I can personally testify to this. As a student last year, I created a math application that could do anything we were learning, which was eventually built up into data modeleing/pattern finding/equation solving semi-full featured piece of software. A side affect was a very firm understanding of the underlying concepts, because, inorder to code for something, you need to fully understand it.
 
Fermat's Last Theorem has long been one of the most famous mathematical problems, and is now one of the most famous theorems. It simply states that the equation $$ a^n+b^n=c^n $$ has no solutions with positive integers if ##n>2.## It was named after Pierre de Fermat (1607-1665). The problem itself stems from the book Arithmetica by Diophantus of Alexandria. It gained popularity because Fermat noted in his copy "Cubum autem in duos cubos, aut quadratoquadratum in duos quadratoquadratos, et...
Insights auto threads is broken atm, so I'm manually creating these for new Insight articles. In Dirac’s Principles of Quantum Mechanics published in 1930 he introduced a “convenient notation” he referred to as a “delta function” which he treated as a continuum analog to the discrete Kronecker delta. The Kronecker delta is simply the indexed components of the identity operator in matrix algebra Source: https://www.physicsforums.com/insights/what-exactly-is-diracs-delta-function/ by...
Thread 'Imaginary Pythagorus'
I posted this in the Lame Math thread, but it's got me thinking. Is there any validity to this? Or is it really just a mathematical trick? Naively, I see that i2 + plus 12 does equal zero2. But does this have a meaning? I know one can treat the imaginary number line as just another axis like the reals, but does that mean this does represent a triangle in the complex plane with a hypotenuse of length zero? Ibix offered a rendering of the diagram using what I assume is matrix* notation...

Similar threads

Back
Top