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

  • Thread starter 0rthodontist
  • Start date
In summary, the conversation discussed the speaker's presentation on their team's Java server, their knowledge of the code, and the potential for incorporating programming into math education. The conversation also shared a story of a professor teaching data structures through a programming project and the impact it had on students' understanding and confidence in their abilities. The speakers emphasized the importance of truly understanding a concept in order to successfully code for it.
  • #1
0rthodontist
Science Advisor
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.
 
Mathematics news on Phys.org
  • #2
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:
  • #3
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.
 

What is "Programming-based learning"?

"Programming-based learning" is a teaching and learning approach that integrates programming and computer science concepts into the curriculum. It involves hands-on coding activities and projects to help students develop critical thinking, problem-solving, and computational skills.

What are the benefits of programming-based learning?

Programming-based learning has several benefits, including improving students' computational thinking skills, problem-solving abilities, and logical reasoning. It also helps students develop creativity, adaptability, and collaboration skills, which are essential in today's digital world.

Do you need prior programming experience to learn through programming-based learning?

No, you do not need prior programming experience to learn through programming-based learning. This approach caters to students with all levels of programming experience, from beginners to advanced learners. It starts with basic concepts and gradually progresses to more complex ones, ensuring that students of all levels can learn and succeed.

How is programming-based learning different from traditional teaching methods?

Programming-based learning differs from traditional teaching methods as it focuses on hands-on coding activities and projects rather than passive learning through lectures and textbooks. It also emphasizes problem-solving and critical thinking skills rather than memorization and rote learning.

What subjects can be taught through programming-based learning?

Programming-based learning can be used to teach various subjects, including math, science, social studies, and language arts. It can also be applied to other fields such as art, music, and physical education. The goal is to integrate programming and computer science concepts into different subjects to enhance students' learning and understanding.

Similar threads

  • General Math
Replies
16
Views
2K
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Academic Advising
Replies
12
Views
1K
  • Programming and Computer Science
Replies
8
Views
873
Replies
40
Views
2K
  • STEM Academic Advising
Replies
11
Views
418
  • STEM Academic Advising
Replies
4
Views
197
  • Programming and Computer Science
Replies
1
Views
726
Replies
6
Views
1K
  • Programming and Computer Science
2
Replies
55
Views
4K
Back
Top