Message Boards Message Boards

9 Replies
19 Total Likes
View groups...
Share this post:

Learning Mathematica Programming Through Examples

Posted 11 years ago
I have long felt that the best way to teach Mathematica Programming is by introducing interesting problems and encouraging students to get involved in their solution. Students learn programming, step by step, along the way.  I have followed this approach in teaching a course at Queens College, CUNY over many years with my colleague, John Kennedy. We authored a book, Discovering Mathematics with Mathematica which is now out of print. Recently I have created some notebooks based on this text and have put them on my website. They can be accessed here:

I would be grateful for any feedback and/or discussion of this approach. Also I would be interested in learning about other people using this kind of teaching strategy.
POSTED BY: Robert Cowen
9 Replies

   I was one of the lab assistants Bob Cowen spoke of. I went on to complete degrees in Math and Physics and finally became a high school teacher. A couple of years later I abandonned that career. The test focused curriculum and the destructiveness of the political climate made it clear there was no future in teaching at the public school level. Now I work at Queens as a Lab tech and instructor. Part of my resposibility is to evaluate our labs and contribute to their effectiveness. This work and my training as a teacher has lead me back to basics.  What are we trying to teach, and how best to teach it? 

   While completeing my undergraduate degrees I did some research in both Math and Physics and one of the most important things I realsized was that skill based courses don't prepare students for or enourage research were they have to learn to apply basic skills in new and ever more abstract ways.  Students joining a project have no idea what their getting into and worse, most don't even consider it, for them Math has become a chore. How do we fix that? How do we get them ready for experiences like the Mathematica Summer Camp.

   Introducing Mathematica as a tool to teach high school freshmen how to  factor quadratics is,in my opinion, problimatic. These students are typically struggling with abstract thinking and, again in my opinion, need more tangible tools. Mathematica, unless very carefully used, could easily become a crutch, something that can do the work for them.
What is needed is a bridge, a research course with training wheels.

   That's what Bob Cowens, M Ryohei, and others have done. The course I worked on with Bob had sections from local high schools, and others math majors, and even prospective math teachers. The problem focused, lab style course allows the instructor to choose problems of sufficient depth to satisfy many levels of mathematical maturity.

   In Bob's example, the students were introduced to the Josephus problem on paper and then shown how to use Mathematica in a more or less brute force approach. The emphasis here is on the abstraction not  on Mathematica. They go on to learn that simple models can be solved in many ways and learn that there are more elegant ways to solve this problem. Finally, after a couple of iterations, they chose their own research project and with guidence and peer review learned how to report their results. This works. I helped one class of high school students produce a magazine based on their research into two person impartial games. Some of our students not only contributed to the magazine, they went on to present papers at a local Mathematical Association. You can't argue with sucess.

   Why does this work? This is a question with millions of research dollars behind it, here's my two cents. This style of teaching works because it's immersive and inquiry based. The students have to immerse themselves in the problem, looking for patterns abstracting the data. They also have to learn to use the tools by doing, working out methods as they go. And in the end,  they get real results they can call their own. 

   The challange is to get this kind of learning into the high school curriculum. Bob trained high school math teachers and that's a good start. As is preparing well designed problems sets to be used at that level. Beyond that we have to get the word out that this is easy to impliment, gets results, and is fun.
POSTED BY: Weldon MacDonald
Hi, Todd.

The feedback from students was almost always positive. Students were excited to actually be doing research for the first time in their lives and recognized that the skills they were learning in writing up their results and presenting them to their classmates and in some cases at conferences would serve them well no matter what they eventually decided to do.

At Queens College, we had student evaluations of all courses and I found that this course was always highly rated. Hopefully my colleague, John Kennedy, will also give feedback on his experiences. Also if any former students or lab assistants are following this discussion, please feel free to add your comments.
POSTED BY: Robert Cowen
It might be a good idea to make good examples of Mathematica codes by peoples in this community, and upload it on Wolfram site.
If we can make quite a number of examples with a wide range of various area of mathematics, these examples can be good steps for students to begin their research.
With a trial version of Mathematica it will be easy to start research. Once the research produce research, then they can buy Mathematica.
POSTED BY: Miyadera Ryohei
Here is a link to Ryohei Miyadera's paper
POSTED BY: Todd Rowland
Hello! I am Ryohei Miyadera. Prof. Robert Cowen invited me to join this community. I have published our article in Mathematica Journal last December, and in this article I and my students presented method used in our research.
I and my students have been doing research on combinatorial games, and our ideas originated reading Prof. Cowen's book.
We learned how to calculate P-position (previous player's winning position) using Mathematica in the book. By learning an example of calculation it was quite easy to generalize the method for other combinatorial games.
My aim is to find new formulas and theorems with high school students, and by using proper examples of Mathematica program it is quite easy to do that.
We have published papers in many math magazines, and publish demonstration in Wolfram site, too.
If we can upload good examples of Mathematica codes for various mathematical problems, many high school students and undergraduate students can do research of math.
This will change the math education very much.
POSTED BY: Miyadera Ryohei
What we did at Queens College is we gave a course in a Labratory setting, each student having their own computer and the instructor having a computer with a screen in the front.
After a short interactive introduction to Mathematica, we started with the Josephus problem notebook (I have put updates of some of these notebooks on my website--there is a link in my first post). This introduces the Josephus problem and step by step introduces enough Mathematica programming to get results. Then by looking at these preliminary results, students are encouraged to find patterns that lead to much better computational algorithms.  After completing work on the Josephus notebook, we went on to the 3x+1 problem, etc.  The highlight of the course was the section on two person impartial games. (See also my paper with Robert Dickau: We included problems, to be handed in, and also required a short and a long paper of the student's choosing( although suggestions were provided).  I even had students critique each other's first drafts.  Finally students gave presentations on their final projects. In additon, I and my lab assistant were always available to give advice and suggestions.  I also provided my students with a Writer's Manual that explained how to do a research paper (It can be downloaded here: You are correct; just giving examples is not sufficient.  This approach requires work, but it is also a joy to teach this way and the results are very rewarding.
POSTED BY: Robert Cowen
In principle teaching with examples is a great idea.  A classroom lecture needs to have content but it also needs the students to stay awake. 

But to play devil's advocate, one might ask how would one learn basic principles from a series of examples.

Or one might ask what you are trying to teach.  Is Mathematica a skill or a language or something else like a mathematical system?

I need to correct something Vitaliy has said.  At the Wolfram Science Summer School, the projects are more involved than a demonstration, even though it is common for spinoffs from the projects to become demonstrations.  Instead the projects are either open ended research projects or technological developments, in either case based on Stephen Wolfram's A New Kind of Science or more recent initiatives like data science, natural language programming,  or whatever initiatives are upcoming.

While the summer school is not about teaching Mathematica, all these projects use it and there is not much time, so we need everyone well prepared beforehand.  Still we have a couple lectures on Mathematica.  It's sort of a mix of styles, including examples.  Hard to say what is most effective, but it seems to vary for the students.  Some respond well to the examples while others get more out of more traditional lectures that cover builtin functions or general ways of thinking. 

Sounds like a complete college curriculum. What sort of feedback did you get from the students?
POSTED BY: Todd Rowland
Robert, welcome to Wolfram Community and thank you for sharing ideas and notebook! I actually taught at CUNY too - physics and math at the College of Saten Island. I visited Queens College and found it to be wonderful! I used a similar approach as you do in my calculus and physics classes. Specifically I was designing extracurricular heightened difficulty exploratory problems and encouraged my students to use Mathematica to dig through them and experiment.

I looked through your notebook - looks great - thorough and educational - I loved Sudoku Puzzle section.

Another interesting idea is to find projects that can result in a publication at the Wolfram Demonstration Project. In this way students can "solidify" their achievement, add it to their resumes and even become discoverable on internet ;-) This is actually practiced already by Ryohei Miyadera & Students from Kwansei Gakuin High School in Japan and students in our Mathematica Summer Camp and Wolfram Science Summer School.

Thanks again for sharing!
POSTED BY: Vitaliy Kaurov
Thanks Vitaliy! I met Ryohei Miyadera at a Mathematica conference in Japan several years ago and gave him a copy of our Lab Manual, Discovering Mathematics with Mathematica, and he has kindly credited me with introducing him to this discovery method using Mathematica(see his recent Games paper in the Mathematica Journal). He and his students have certainly accomplished quite a lot and I am happy to have been a positive influence.  Also I like your suggestion about doing projects that can be used for Wolfram Demonstration Projects. Actually I did one on the game of CRAM (see:  
POSTED BY: Robert Cowen
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract