Test 1: BABBBADBCB
Test 2: BCDBED
Test 1: BABBBADBCB
Test 2: BCDBED
We started programming in the MATLAB course a couple of weeks ago. It’s been… interesting. Keep in mind that 75% of the students in the class have never written a program of any sort before; half the class rates themselves below a 6 out of 10 in “comfort level” in using computers at all. As with everything else in this course, the audience is everything.
I started this three-week unit last week with a minilecture on FOR loops. But wait, you say: I thought you were using an inverted classroom model for the MATLAB course, where students are assigned reading and viewing tasks outside of class, accompanied by homework assignments designed to help them extract the relevant information and then do simple applications of what they’ve learned. Well, yes, that’s been the plan, and the practice up until now.
But I decided to go with a minilecture/activity model for the programming unit for two reasons. One, as has been the case much of the time when putting this class together, I wasn’t finding any materials out there to give out to students on the absolute basics of MATLAB programming — by which I mean the concept of the function M-file and looping structures (we’re getting to branching structures later) — that is suitable for a total-novice audience. The Mathworks, Inc. tutorials, usually well-suited for this kind of thing, were just a little too advanced. And there just wasn’t much else out there on this subject that I’ve found that was free, online, and well-suited for this kind of thing. If you think that smells like a screencasting opportunity waiting to happen, you might be on the right track.
Secondly, the students have been struggling with this inverted classroom model even when the materials I give them are good and the subject (like curve fitting) is both familiar and pretty basic. The struggles have been mainly cultural and psychological, not intellectual. The students are plenty smart enough to pick up the basics on their own. But we’ve run into some linear combination of these issues:
I asked students in a questionnaire what changes to the class would help them learn MATLAB better. Overwhelmingly (75%) the students said that a lecture before the lab activities would be helpful, even though this would mean drastically reduced time on the labs in class and therefore more time spent outside of class, which is something they (understandably) don’t want. When I asked a couple of students what they expected to get from a lecture that they can’t get through online materials, use of the class discussion board, office hours, or conversations with their lab partners, the answer was: We’d just feel better about things if you’d lecture.
So, as I said, I started the first programming class with a minilecture. I walked students through the creation of a function called sin_period:
function period = sin_period(p) period = 2*pi/p; x = linspace(-2*pi, 2*pi); plot(x, sin(p*x))
So this is an unsophisticated example of how you can write a MATLAB function that does a couple of pretty different things at once. It calculates the period of where the parameter is provided by the user, and then it generates a plot of this function. Lab activity #1 given to the students: Modify this function so that the plot contains exactly two periods of and it puts a plot of on the same plot, using a dashed red line, for reference. (I really sold this to the education majors, who make up half the class, as an example of where a MATLAB function could be a useful classroom demo tool for a trigonometry or precalculus class.)
The second demo in the minilecture was using a basic FOR loop:
for i=1:10 disp(['The square of ', num2str(i), ' is ', num2str(i^2)]) end
This was actually given out in homework during the week with the instructions to change stuff in this loop and see what happens. What is the disp command doing? What is that num2str command and why do we need it? What happens if we leave off the square brackets inside disp, and why do we get the error message we get? And above all, what does this code actually do? What would you change to get it to print out the squares of the first 20 positive integers? And so on.
I wanted this to be not so much a minilecture as a discussion among students of what they did, what they encountered, and what they learned during their code-tweaking. But it ended up being nothing but me lecturing. I’m not sure what happened. Certainly I didn’t insist on students sharing what they discovered; maybe I was getting nervous about taking up too much more lab time.
After this was over, I gave Lab activity #2: Write a function M-file called vector_diff that accepts a vector “x” as input and produces a vector “d” as output, whose entries are the differences in consecutive entries of “x”. For example, vector_diff([1 3 0 8]) should return [2 -3 8]. Of course the diff function in MATLAB already does this, and some students figured that out, but the point was to recreate that functionality from scratch to learn how a FOR loop works.
So, you ask, how did that lab turn out?
It was all over the map in terms of quality. With the sin_period activity, about half the students got it exactly right. The other half almost uniformly added in the plot of with the correct color and linestyle but were unable to get the function to adjust the x-range so that two periods of show up. In other words, they were able to add in the routine stuff (just a plot command) but not able to transfer the idea of local variables within functions to use the period (which we’d already calculated) to set the x values. (All you have to do is replace x = linspace(-2*pi,2*pi) with x = linspace(-period, period).)
The FOR loop had a lot more variation. Some groups got it almost exactly right (biggest obstacle: not knowing how to add new entries to a vector). Some groups wrote code that appeared to be trying to use the right ideas, but the syntax was way off, for example using the counter variable “i” as if it were a vector (for example, using i(1):i(n) as the range on the counter). Some groups turned in nothing at all; although it turned out later that those groups had something done, but because it wasn’t exactly correct they decided to turn in nothing.
This is not a total loss, and this week (which I’ll report on later) I think we improved a lot through some more basic discussion of how to program, in general. But I take several lessons away from the results of the week 1 lab, with its much-requested lecture component:
The story continues.
Filed under Critical thinking, Education, MATLAB, Teaching, Technology, Uncategorized
Just a note: I’ll be attending the International Conference on Technology in Collegiate Mathematics (ICTCM) in Chicago next week, March 12–14. I’ll be giving two short talks there:
I’m also going to be participating in the Geogebra workshop on Saturday in preparation for my junior/senior-level geometry course this fall.
I hope to do a lot of conference-blogging in the meanwhile, and I promise not to use the entire time as a pretext for bashing the TI N-Spire like I did back in 2008. If you’re coming too, let me know.
Comments Off on Program note: ICTCM coming up
Filed under Uncategorized
Friday music time again, and just about the only thing I’ve had time to post this week due to classes starting back:
Normally I would take one of the entries in the list that gets my attention and do a video focus on it. This time… Well, the classic Led Zeppelin chestnut “Living Loving Maid” (#9) makes me think of the fantastic cover done by Dread Zeppelin. You know — that band that does Led Zeppelin covers, only they’re done in a reggae style and using a late-70’s era Elvis impersonator as their lead singer. Sadly, I couldn’t find a video for that. So instead, here’s the video for their version of “Your Time Is Gonna Come”, which Robert Plant once said he preferred to the original.
Comments Off on Friday Random 10: 2/5/2010
Filed under Friday Random 10, Music, Uncategorized, Weekly features
It’s that time of the week again:
“Miracles Out of Nowhere” by Kansas (#7) is one of my favorite rock tracks. Here’s a live version (I can’t tell from where or when, but it looks recent):
That song is appropriate for today, too, since it’s my son’s first birthday. He was a surprise baby for us, so I’ll dedicate this song to him, our little “miracle out of nowhere”.
When I am having students work on something, whether it’s homework or something done in class, I’ll get a stream of questions that are variations on:
And so on. They want verification. This is perfectly natural and, to some extent, conducive to learning. But I think that we math teachers acquiesce to these kinds of requests far too often, and we continue to verify when we ought to be teaching students how to self-verify.
In the early stages of learning a concept, students need what the machine learning people call training data. They need inputs paired with correct outputs. When asked to calculate the derivative of , students need to know, having done what they feel is correct work, that the answer is . This heads off any major misconception in the formation of the concept being studied. The more complicated the concept, the more training data is useful in forming it.
But this is in the early stages of learning. Life, on the other hand, does not consist of training data. In real life, students are going to be presented with ambiguous, ill-posed problems that may not even have a single correct answer. Even if there is one, there is no authoritative voice that says definitively that their answer is right or wrong. At least, you’d have to stop and ask how you know that the authority itself is right or wrong.
So as a college professor, working with young men and women who most of them are one step away from being done with formal education, it serves no purpose — and certainly does not help students — to pretend that training, the early stage, goes on forever. At some point I must resist the urge to answer their verifying questions, despite the fact that students take great comfort in having their work verified for them by an external authority and the fact that teachers usually are perceived as being better by students the more frequently they verify.
I’ve started making the training stage and the self-verification stage explicitly distinct in my classroom teaching. In a 50-minute class, I’ll usually break down the time as follows:
I’ll spend the first 20 minutes of class focusing in on one or two main ideas for the class along with some simple exercises, a few of which I’ll do (to help students get the flow of working the exercises and to provide training data not only on the math but also on the notation and explication) and more of which they will do, providing full answers to the “Is this right?” questions along the way. Then five minutes for further Q&A or to wrap up the work.
But then the training phase is over, and students will get more complicated problems (not just exercises) and are told: I will now answer any question you have that involves clarifying the terms of the problem. But I will not answer any question of the form “Is this right?” or provide any guidance on technology use. What I will do instead, if students persist in asking “Is this right?”, is answer their questions with more questions of my own:
And so on. Many of these are merely ripped from the pages of Polya’s How to Solve It, which ought to be required reading of, well, everybody. In other words, in this post-training phase of the class, students must simulate life in the sense that they are relying only on their wits, their tools, their experiences, and their colleagues, and not the back-of-the-book oracle.
Also, by telling students up-front that this is how the classes are going to be structured, they get the idea that there is a time for getting verification and another time for learning how to self-verify, and hopefully they learn that the act (or at least the urge) to self-verify is something like a goal of the course.
My hope here is to provide training data of a different sort — training on how to be independent of training data. This is the only kind of preparation that makes sense for young adults heading for a world without backs of books.
* You could make a good argument that Wolfram|Alpha used in this way is just a very sophisticated “back of the book” — an oracle that students use as an authority. I think there are at least a couple of reasons why W|A is more than that, and I’ll try to address those later. But you can certainly comment about it.
Filed under Critical thinking, Education, Math, Problem Solving, Teaching, Uncategorized
This report Frinom the Atlanta Journal-Constitution, citing an article in the June 1 Proceedings of the National Academy of Sciences, says that differences between boys’ and girls’ performance on standardized mathematics tests correlates with the level of gender equity and other socio-cultural factors in the country in which the test was taken.
The study’s co-author says:
“There are countries where the gender disparity in math performance doesn’t exist at either the average or gifted level. These tend to be the same countries that have the greatest gender equality,” article co-author Janet Mertz, an oncology professor at the University of Wisconsin-Madison, said in a university news release.[…]
“If you provide females with more educational opportunities and more job opportunities in fields that require advanced knowledge of math, you’re going to find more women learning and performing very well in mathematics,” Mertz said.
The study goes on to cite the US as a country where there is a relatively high degree of gender equity and hence a relatively equal performance on standardized tests between boys and girls, with more and more girls taking advanced courses in science and math. But, importantly, the study also warns that
“U.S. culture instills in students the belief that math talent is innate; if one is not naturally good at math, there is little one can do to become good at it,” Mertz said. “In some other countries, people more highly value mathematics and view math performance as being largely related to effort.”
This is a point well worth noting. What will it take for the culture in the US to get away from the idea that you’re either born with mathematical ability or born without it — in other words, mathematical predestination?
Filed under Uncategorized
On Twitter right now I am soliciting thoughts about calculus courses, the topics we cover in them, and the ways in which we cover them. It’s turning out that 140 characters isn’t enough space to frame my question properly, so I’m making this short post to do just that. Here it is:
Suppose that you teach a calculus course that is designed for a general audience (i.e. not just engineers, not just non-engineers, etc.). Normally the course would be structured as a 4-credit hour course, meaning four 50-minute class meetings per week for 14 weeks. Now, suppose that the decision has been made to cut this to TWO credit hours, or 100 minutes of contact time per week for 14 weeks.
Questions: What topics do you remove from the course? What topics do you keep in the course at all costs? And of those topics you keep, do you teach them the same way or differently? If differently, then how would you do it? Finally, would there be anything NEW you’d introduce in the course that would be pertinent for a 2-hour course that wouldn’t show up in a 4-hour version of that course?
Keep Twittering your comments to me at @RobertTalbert, or comment below. I’ll sum them up later.
UPDATE: I also meant to say, feel free to play with the assumptions I am making here. For example, if it’s impossible to think of a 2-hour calculus course, change that to a 3-credit course and see if you can come up with anything.
Filed under Uncategorized
…if you’re not following my family blog, The Talbert Five. Just click it.