Category Archives: Python

March 18, 2014, 4:34 pm

What should mathematics majors know about computing, and when should they know it?

5064804_8d77e0d256_mYesterday 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…

Read More

January 15, 2013, 9:10 pm

Lessons learned from wrestling with a MOOC

I’m currently taking a MOOC called Computing for Data Analysis through Coursera. Ths is my fourth MOOC (the sixth one, if you count the two that I started and then dropped). It’s an introduction to the open-source statistical computing environment known as “R”. I got interested in R after learning about this modeling-based Calculus project that uses the statistical and plotting capabilities of R as well as some special symbolic packages as the centerpiece of introductory calculus. I’m leading a taskforce in my department to draft a plan for technology use in the Calculus sequence, and while I don’t think we’ll be using R, I like very much the spirit behind this calculus project, which puts programming at the heart of learning the subject and uses an open-source platform. Plus, I thought R might come in handy for analyzing my own data, and anyway, it’s free, and the course…

Read More

April 3, 2012, 6:22 am

Udacity CS101: What’s Been Good

Sorry to be gone for a few days without posting. It’s been basically triage here as we move toward the end of the semester. It’s also nearly the end of the CS101 course at Udacity (whose courses come in “hexamesters”, six times a year), so this week I’m planning on giving a sequence of posts that sum up my experience.

I almost didn’t do the CS101 course at all. I was waiting for Stanford University’s similarly-named course, but its repeated delays compelled me to look into Udacity. (I’m wondering if those delays, which were explained as legal and business issues in Stanford’s emails, had something to do with Udacity’s and Stanford’s courses being similarly named and similarly timed and potential legal action between those two orginzations.) I was really motivated to learn Python and tired of waiting on Stanford’s course. I wasn’t sure what to expect from a startup that wasn’t formally…

Read More

March 21, 2012, 6:38 am

Udacity Update

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…

Read More

March 6, 2012, 8:10 am

Two Weeks With Udacity

One of my professional plans for this semester was to take two of Stanford University’s massively-open online courses (“MOOC” for short), one on Introduction to Computer Science and the other on Cryptography. I had planned on taking these, that is, until the courses started suffering repeated delays. The last email I received from Stanford cited “legal and administrative issues” that have pushed the Cryptography course — which was originally slated to start in January — back into March, and the CS course that was originally scheduled for late February has also failed to materialize. I think I’ll be writing a separate blog post regarding what I think about these delays and what it might mean for Stanford. Let’s just say it doesn’t make Stanford look good. In the meantime, I decided I was ready to learn and didn’t want to wait around anymore, so I signed up for the CS101 class offered…

Read More

January 16, 2012, 8:00 am

So you want to learn to program?

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:

  • There’s CodeYear and Codecademy. Codecademy provides simple, self-guided lessons on programming. Currently there are a number of lessons on Javascript, and there are more lessons in more languages on the way. CodeYear is a layer on top of Codecademy…

Read More

January 14, 2012, 2:22 pm

Programming for all?

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…

Read More

September 7, 2011, 7:30 am

Midweek recap, 9.7.2011

From around the interwebs this past week:

Read More

February 10, 2010, 9:49 pm

Resources for the MATLAB class

A three-dimentional wireframe plot of the unno...
Image via Wikipedia

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…

Read More