Category Archives: Uncategorized

Answers to Test 1 and 2 multiple choice

Test 1: BABBBADBCB

Test 2: BCDBED

Advertisements

1 Comment

Filed under Uncategorized

Programming, lectures, and the inverted classroom

Punch card from a typical Fortran program.
Image via Wikipedia

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:

  • Not adopting an appropriate timetable for learning the material outside the classroom. That timetable is: get to work early on the stuff, spend small chunks of time on it, and make those chunks frequent. The ideal schedule probably comes out to: no more than 30-45 minutes at a sitting, done over the course of 5-6 days. That jives with the “2 hours outside of class for every hour inside of class” conversion factor that usually works for college. Instead, the average start time on the outside work has been less than 24 hours before the labs.
  • An expectation that after watching the videos or doing the reading, we are now ready to write workable code. There has not been widespread recognition that programming, or just working with a computer system in general, is all about getting your hands dirty with stuff that is not assigned before there is a chance of doing correctly the things that are assigned. There is a certain amount of time between being exposed to information and being able to do something right with it, and that time has to be spent doing things wrong with it. The misunderstanding, common to this demographic, is that information = expertise. Get exposed to the information enough, and you’ll be good at whatever that info was about.
  • A simple psychological block against the idea that basic acquisition of concepts can take place in the absence of an expert.

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 y = \sin(px) where the parameter p 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 y=\sin(px) and it puts a plot of y=\sin(x) 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 \sin(x) with the correct color and linestyle but were unable to get the function to adjust the x-range so that two periods of \sin(px) 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:

  • Lectures are only helpful to the extent that they impel students to act on what they are hearing. If you want a lecture just because you’d like an expert to assuage your misgivings about a subject — you want a lecture merely to feel better and more centered about what you’re learning — then the lecture is going to accomplish nothing other than providing a false sense of security to the students. Is this helping the student? No.
  • Students who are still less than one year out of high school, where largely the opposite of what we’re doing in this class is the norm, have no idea that the first point is the case. For most students in this concrete mode of thinking, teaching = lecture = learning. This doesn’t mean they aren’t smart or capable of becoming self-supporting learners, which is sort of an overall goal of my teaching in any class. It does mean that they have to be exposed to activities that enable or require self-sufficiency, early and often. Or else they will be totally unable to function after they graduate.
  • Therefore I’m more convinced than ever that the inverted classroom model for this class really is the right way to go. Give students “lectures” outside of the class time; give them time to think, questions to answer, simple tasks to perform that are based on what they read and watch. If they do it, this will generate the right questions which they can then ask (themselves, their lab partners, or me). Then they have an entire class meeting in which to do some more complicated task.
  • But this only works to the extent that students adopt the short/frequent/early schedule for working on the material. If students continue to operate on the assumption that 300 minutes applied in a single 2.5-hour block late on Sunday night is the same as 300 minutes applied in five 60-minute blocks across multiple days of the week, then of course they’ll choose what appears like the lowest-footprint model and go with the single big block. But this is a flawed assumption, especially in an activity which most students self-identify as being something with which they are totally unfamiliar and largely not all that comfortable.
  • This means I have to do a better job of getting students to realize this. I don’t want to start FORCING students to work this way — for example, by having teams submit journal entries or blog posts or something every couple of days. I’d rather get them to see that learning a computer tool is much more fun when you give yourself time to play, time to make and correct mistakes — time to get used to the kinds of expert behaviors that computer people employ. Incentivize rather than require.

The story continues.

Reblog this post [with Zemanta]

8 Comments

Filed under Critical thinking, Education, MATLAB, Teaching, Technology, Uncategorized

Program note: ICTCM coming up

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:

  • “Integrating spreadsheets, visualization tools, and computational knowledge engines in a liberal arts calculus course”, on Friday, March 12 at 11:30 AM. This talk is about how we use these kinds of technologies in our Calculus courses specifically to support the liberal arts mission of the college. I’ll be joined in this talk by my colleague, Justin Gash.
  • “Teaching MATLAB to a non-canonical audience”, on Friday, March 12 at 12:30 PM. This is on, you guessed it, the pedagogical and design issues behind the MATLAB course for a general audience which I have blogged about a lot here lately.

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

Five reasons you should use LaTeX and five tips for teaching it

Over the weekend a minor smack-talk session opened up on Twitter between Maria Andersen and about half a dozen other math people about MathType versus \LaTeX. Maria is on record as being pro-MathType and yesterday she claimed that \LaTeX is “not intuitive to learn”.  I warned her that a pro-\LaTeX  blog post was in the offing with those remarks, and so it comes to this. \LaTeX is accessible enough that every math teacher and every student in a math class at or above Calculus can (and many should) learn \LaTeX and use it for their work. I have been using \LaTeX for 15 years now and have been teaching it to our sophomore math majors for five years. I can tell you that students can learn it, and learn to love it.

Why use \LaTeX when MathType is already out there, bundled with MS Word and other office programs, tempting us with its pretty point-and-click interface? Five reasons.

  1. \LaTeX looks better. Seriously. MathType is getting better at visual appeal — it doesn’t look appalling any more — but nothing beats \LaTeX for refinement and polish.
  2. \LaTeX is the mathematical typesetting standard in all technical disciplines and in many related fields. Most, if not all, major publications in math, computer science, engineering, and physics use \LaTeX as the preferred typesetting system. arXiv prefers \LaTeX over all other formats.
  3. \LaTeX is becoming a standard elsewhere, especially on the web. Last year, Google Documents added an equation editor that is basically a stripped-down \LaTeX editor with a point-and-click interface. The wildly popular online presentation tool Prezi has said that \LaTeX integration is coming. WordPress.com blogs like Casting Out Nines can do \LaTeX, and so can Wikispaces and several other web services. Online \LaTeX typesetters abound, and more are popping up. The web likes open standards, and since MathML is all but impossible to use, \LaTeX fills a gaping need for free, open-source mathematical typesetting. Which brings me to the next point:
  4. \LaTeX is free. Free as in beer and free as in freedom. You can download it right now for just about any operating system imaginable, and have the full strength of the system available to you at no cost. And this is a system that has been around for 40 years (if you count TeX) and has millions of users, many of whom actively contribute to the further development of the system by writing specialized packages and macros. This is in stark contrast to MathType, which is proprietary and closed, and although you get the “Lite” version bundled in with office software, the full version will set you back at least $37.
  5. \LaTeX is what you make it. You can use \LaTeX with a point-and-click IDE, or you can type everything out by hand with a text editor and compile from the command line, or anything in between. You can tinker with the low-level creation of fonts or just quickly type out a letter. It’s up to the user. Other proprietary programs force a menu-driven point-and-click approach upon you, which you may like but may not like.

Others may add to these in the comments. But if \LaTeX is so great, how come nobody ever seems to learn it until graduate school? I’m not sure, but it’s not because \LaTeX is counterintuitive. It’s not totally obvious, either, but with a little guidance, \LaTeX can make perfect sense even to high school students. If you’re a math or science teacher, make it a project to learn \LaTeX yourself and start using it in your classes, then teach it to your students. Here are five ways to make that a painless process.

  1. Use an IDE or a user-friendly text editor rather than a plain, no-frills text editor or EMACS. For Windows machines, use the free TeXNicCenter IDE that gives point-and-click code insertion (or you can just type the code in) with syntax highlighting. On Macs, use TextMate if you have the money and Aquamacs if you don’t; both of these are text editors with tons of great \LaTeX goodies built in. (In TextMate, for instance, typing begin and hitting the Tab key automatically creates an environment with the matching \end{}. ) On Linux, try Kile. These provide user-friendly interfaces and syntax highlighting that take the edge off some of the learning curve.
  2. Have someone else do the installation and setup, or provide a total handholding guide for doing it. The only really hard thing about using \LaTeX is simply getting it to work in the first place. This is one of the advantages MathType has over \LaTeX, but the payoff is worth it. New users will need to be walked through the whole process in high-definition detail. But once that’s over, the fun begins.
  3. Start small and simple, and build gradually. When first getting students to use \LaTeX, restrict them to just a small, relatively simple document, one that’s mostly text with a little bit of math typsetting required. Small, early successes will convince them that learning \LaTeX is worthwhile. I like to give out my training videos to students and have them learn the system on their own; then have a grace period where students get extra credit for doing their assignments in \LaTeX; and then start requiring it after the grace period expires.
  4. Use it yourself. Students will learn from your example. Try writing your next syllabus in \LaTeX; and your class handouts; and your tests (perhaps using the excellent exam package). When you use it, and students begin to use it, they see that they are producing math that looks as good as what the pros do, and they get excited.
  5. When you give a document made with \LaTeX, also give out the source code that generated it. Students can then look at what you created, ask “How’d s/he do that?”, and get the answer immediately from your code and do it themselves. I myself have learned about half the \LaTeX I know from this method, and adapting/tweaking someone else’s code is a time-honored and very effective means of learning almost anything done on a computer.

Once they are over the initial learning curve and producing beautiful mathematical documents, my students look back on the dark days of MS Equation Editor and wonder, along with me, why anybody would put themselves through something like that. Happy \LaTeX-ing!

15 Comments

Filed under LaTeX, Math, Profhacks, Social software, Teaching, Technology, Twitter, Uncategorized

Friday Random 10: 2/5/2010

Friday music time again, and just about the only thing I’ve had time to post this week due to classes starting back:

  1. Texas Flood (Stevie Ray Vaughan & Double Trouble, Greatest Hits)
  2. 40 Days (Third Day, Come Together)
  3. Who’s Been Talkin’ (Howlin’ Wolf, His Best: Chess 50th Anniversary)
  4. Man in the Green Shirt (Weather Report, Best of Weather Report)
  5. Waiting on the World to Change (John Mayer, Continuum)
  6. Where You Are (Rich Mullins, The World As Best As I Remember It v. 1)
  7. Heavy On My Mind (Back Door Slam, Roll Away)
  8. Try (John Mayer Trio, Try! (Live))
  9. Living Loving Maid (She’s Just A Woman) (Led Zeppelin, Led Zeppelin II)
  10. Doing It To Death (James Brown, The CD of JB)

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

Friday Random 10: 1/15/2010

It’s that time of the week again:

  1. Heart of the Heartland (various, Lewis & Clark soundtrack)
  2. The Maker of Noses (Rich Mullins, The World As Best As I Remember It, vol 2)
  3. Shot of Love (King’s X, Out of the Silent Planet)
  4. Something to Believe In (Clannad, Past Present)
  5. People Watching (Jack Johnson, Sing-A-Longs and Lullabies (Curious George soundtrack))
  6. Cello Suite #6 (Mstislav Rostropovich, Bach Cello Suites)
  7. Miracles Out Of Nowhere (Kansas, Leftoverture)
  8. The Drift (Béla Fleck & the Flecktones, Three Flew Over the Cuckoo’s Nest)
  9. Hold Me (Fleetwood Mac, Greatest Hits)
  10. A Felicidade (Antonio Carlos Jobim, Personalidade)

“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”.

1 Comment

Filed under Uncategorized

Resisting the urge to verify

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:

  • Is this right?
  • Am I on the right track?
  • Can you tell me if I am doing this correctly?

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 5x^4, students need to know, having done what they feel is correct work, that the answer is 20x^3. 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:

  • Are the units working out correctly? Are you getting cubic feet for volume, meters per second for velocity, etc.?
  • Did you graph the function to see if the roots are really where you say they are?
  • Have you seen a problem like this before in the book, your notes, or your homework?
  • Does that answer make sense in the context of the problem? Did you get a negative derivative value for a function that is visibly decreasing?
  • What did Wolfram|Alpha (or Maple or MATLAB, etc.) say? *
  • What do your group-mates think?

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.

2 Comments

Filed under Critical thinking, Education, Math, Problem Solving, Teaching, Uncategorized