March 18, 2014, 4:34 pm
Yesterday I got an email from a reader who had read this post called What should math majors know about computing? from 2007. In the original article, I gave a list of what computing skills mathematics majors should learn and when they should learn them. The person emailing me was wondering if I had any updates on that list or any new ideas, seven years on from writing the article.
If anything, over the past seven years, my feelings about the centrality of computing in the mathematics major have gotten even more entrenched. Mostly this is because of two things.
First, I know more computer science and computer programming now than I did in 1997. I’ve learned Python over the last three years along with some of its related systems like NumPy and SciPy, and I’ve successfully used Python as a tool in my research. I’ve taken a MOOC on algorithms and read, in whole or in part, books…
April 9, 2012, 8:00 am
What I was trying to get across in Friday’s post, Gary Stager did much more clearly in this article. In it, he recalls the time thirty years ago when Logo and BASIC were being taught in schools and kids were programming. But:
Things sped downhill when we removed “computing” from our lexicon and replaced it with “technology” (like a Pez dispenser or Thermos). We quickly degraded that meaningless term, technology, further by modifying it with IT and ICT. Once computing was officially erased from the education of young people, teachers could focus on keyboarding, chatting, looking stuff up, labeling the parts of the computer and making PowerPoint presentations about topics you don’t care about for an audience you will never meet. [...]
What kids do get to do with computers tends to be trivial and inservice of the educational status quo. Gone are the days when educational…
April 6, 2012, 2:33 pm
So let’s suppose we decide to require computer science for all students at our university. How are we going to implement that requirement? Here’s one approach that I believe could turn out to be the wrong way to do this: Set up a collection of courses, all of which count for the CS1 requirement, that are aligned to the students’ levels of technological proficiency. STEM students take a standard intro-to-programming course, liberal arts majors take a course that focuses more on office applications, and so on.
But, wait a minute, didn’t I say last time that I liked Georgia Tech’s approach, where the single CS1 requirement was satisfied by a number of different courses that are aimed at different populations? Yes, I did. But favoring a collection courses with different populations is not the same as favoring a collection with different outcomes depending on how measure, or perceive,…
March 21, 2012, 6:38 am
It’s been a couple of weeks since my first post about the Udacity CS101 course, so here’s an update. Before that, let me mention this nice article in Wired about Udacity and its origins. That article sheds a little light on the questions I had earlier about Udacity’s business model.
So, Units 3 and 4 are now done with the CS101 course. The focus of Unit 3 was mostly on the concept of the list in Python, along with FOR loops and an emphasis on computer memory. Unit 4 was a bit of a left turn into a discussion of computer networks, with an emphasis on the basics of the Internet and the concepts of latency and bandwidth. So, just from this description, you can see one of the things I particularly like about CS101: It’s not just about Python. This is a class that is actually about computer science in general with Python as a tool for understanding it. Maybe that’s one of the reasons I…
January 16, 2012, 8:00 am
To follow up on my last post about the importance of programming for everyone, I’m making a personal commitment to get my own coding skills up to “halfway-decent” level in 2012. The more I teach with Conrad Wolfram’s TED talk in the back of my mind, and the more I dig into computational geometry as a new research area, the more I see the need to be able to write good code. I’ve tried this before as a sort of lone ranger, sitting down with a terminal window and an O’Reilly book in front of me, with the intent of working through the book, but I never stuck with it. Fortunately, there are more good resources out there than ever to help:
January 14, 2012, 2:22 pm
Audrey Watters writes in Hack [Higher] Education that maybe it’s time for programming to join critical thinking and effective writing as part of the body of required knowledge for all university students:
But I will posit that all students should learn programming, whether they plan to become programmers or not. Many universities already require students take composition in order to graduate. Perhaps it’s time for programming — “the new literacy” — to become a requirement too?
I don’t mean that every student needs to learn C++ or Python or Perl or Java or Ruby. But I do think everyone needs to know how the Web works — how search engines operate, for example, and what’s “server side” and what’s “client side” and why the difference matters. Everyone needs to know some HTML (a mark-up, not a programming, language I realize). And with the move towards the fifth revision of the HTML…
October 21, 2011, 8:51 am
As my only real contribution to the blog this week (I’m trying to amortize a stack of Calculus 2 exams before the weekend), I just wanted to announce that Mathworks News & Notes, the trade publication for Mathworks (developers of MATLAB), this quarter has an article about my flipped MATLAB class that I taught at Franklin College. You can download a PDF of the article at the website. That article has been about 9 months in the making. They did the photo shoot in April. (My students come off looking a lot better than I do, which is about right.)
The article does a nice job of explaining the context of the course, why I chose the inverted classroom format for it, and how things went on a day-to-day basis. I am very proud of the course and the work that students managed to do in it, and I’ll be thinking about — and trying to improve upon — that course for years to come. Longtime readers…
April 8, 2010, 8:17 pm
One of these days I’ll get back to blogging about the mathematics courses I teach, which make up the vast majority of my work, but the MATLAB course continues to be the place where I am working the hardest, struggling the most, learning the biggest lessons about teaching, and finally having the greatest sense of reward. This week was particularly rewarding because I think I finally figured out a winning formula for teaching a large portion of this stuff.
This was the last in a three-week series on introduction to programming. We had worked with FOR loops already. I had planned to look at WHILE loops in the same week as FOR loops, then have the students play around with branching structures in week 2, then have them apply it to writing programs to do numerical integration week 3 for use in their Calculus II class in which most of the class is currently enrolled. But the FOR loop stuff we…
March 23, 2010, 1:25 pm
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…
February 10, 2010, 9:49 pm
We’ve had one full meeting of Computer Tools for Problem Solving (the MATLAB course I’ve blogged about). According to the survey I’m having students fill out on our Moodle site, it went pretty well, even if it was a little like drinking from a fire hose. This first meeting was a lengthy guided tour of all the core features of MATLAB, assuming no prior knowledge of computer algebra systems or programming. Subsequent meetings will be a lot more hands-on, with students working in groups on lab activities centered around a particular topic or problem. This next week it’s graphing, for instance, and students will be creating all kinds of different plots of data and functions.
Students prepare for these activities through out-of-class reading and viewing assignments and through homework assignments that are intended both to pull together the material they learned in week…