Learning Python: charmed by Coursera

There are two exciting Python Coursera classes coming up and I have signed up for both of them! What, you say? It’s a bad idea to do two so close together, especially when there’s some overlap? Perhaps… but I hope you’ll read on and let me know what you think. There’s a delicious soup recipe hiding at the bottom of this post, if that’s any incentive!

University of Michigan’s “Programming for Everybody (Python)” is a beginner-oriented course that starts on Monday, February 2 and lasts 11 weeks, with an expected 2-4 hours of work per week. We’ll be starting with variables and expressions and finishing with tuples and regular expressions. I don’t even know what tuples are! But I’m excited to learn.

The cool thing about this class is that all of the material is freely available here. Check it out if you’re curious to see what we’ll be covering!

I signed up for this course because it came highly recommended by Anna and because I resonate with the professor’s big goal of making programming truly for everybody. Since I’m interested in bringing other women into the fold as part of my learning journey, I hope to pick up some pedagogical skills and open-source resources in addition to a better understanding of Python.

Yet, because the course seems so low-impact, I decided I needed to pick up another Coursera:

Rice’s “An Introduction to Interactive Programming in Python (Part 1)” is all about learning Python while making games. Though they champion it, I’m a little dubious about the browser-based programming environment that they use. They said it makes developing interactive applications in Python simple, but I’m nervous because I’ve never used anything other than a text editor and a terminal to write and run code. We’ll see how it goes!

This course is much shorter: just five weeks. The weekly workload is considerably more, however: 7 – 10 hours. That translates, on the upper end, to two hours a day, five days a week! Add in another half an hour or so per day for the other class, and I’m in for a busy few weeks. It may not work at all, but why not try? What’s the worst that could happen – I have to un-enroll from one and take it later? That’s a risk worth taking.

I’ve got a lot of other stuff going on right now, but I hope to use Coursera to help me stay focused. Strangely, sometimes when I have the most stuff going on, it helps to throw more onto the pile so I can clarify my desires. The “Survey of Music Technology” class I took in the fall brought order and accomplishment to some of my busiest months of 2014 (October & November). It gave me something to look forward to, concrete goals to meet, and interesting projects to make and have evaluated by my peers. Plus, I learned how to use a Digital Audio Workstation (DAW*) and got some experience with the EarSketch Python API!

My hope with each of these is that I will make more of an effort to involve myself in the Coursera learning community that builds up around these classes by participating in the message boards. I was kind of a lone wolf in my music tech class and perhaps didn’t get as much out of it as I could have in that regard.

Looking forward to getting started soon!

For today’s cooking lesson, I’d like to share a very simple soup recipe that I wrote last week when it was cold for a couple of days. Since a lot of my friends are snowed in, perhaps with some root vegetables hanging around on their shelves, I thought a creamy, warming soup would be just the ticket! This soup takes about a half an hour, making it a great way to get dinner on the table fast.

Coconut Curried Butternut Squash and Sweet Potato Soup with Caramelized Shallots**

Haha, just kidding. I write recipes as I cook, they’re always incomplete, and would never expect you to decipher my hasty handwriting!


  • 1 – 2 tablespoons coconut oil
  • 2 cups shallots, finely chopped
  • Several cloves garlic, minced, or about 1 generous tablespoon
  • Large knob of ginger, minced, or about 1 generous tablespoon
  • 1 generous tablespoon fragrant, good-quality curry powder
  • 6 cups of prepared stock, vegetarian chicken-style if you can get it, or just vegetable
  • 1 medium butternut squash, peeled and chopped. About four cups.
  • 5 – 6 medium-sized carrots, peeled and chopped. About 1 1/2 cups.
  • 1 giant sweet potato or two medium-sized, peeled and chopped. About 3 – 3 1/2 cups.
  • One 15 oz can of coconut milk
  • Juice of half a lemon
  • Optional: if you like it spicy, finely mince one small chipotle (from canned/packed in adobo)

Special tools

Immersion blender or regular blender


Saute shallots in coconut oil until soft and caramelized, over medium heat, minimum six minutes.

Add garlic and ginger and cook til fragrant, about one minute. Add curry powder and stir to coat shallots, garlic, and ginger, about thirty seconds.

Pour in prepared broth and scrape the bottom of the pan to incorporate all that good toasted curry powder and caramelized shallots. Add butternut squash, carrots, sweet potatoes. Bring heat to high in order to bring to a boil, then reduce and allow vegetables to simmer, partially covered, about twenty minutes or until tender.

Once vegetables are tender, carefully use an immersion blender to puree. If using a regular blender, allow soup to cool til you’re able to handle it safely, then pour it into blender and puree in batches if necessary.

Once soup is fully pureed, add can of coconut milk and stir to incorporate. You may also choose to use a small can of pure coconut cream if you don’t want to add as much liquid. Allow to cook about two minutes over medium-low heat.

Add lemon and taste for salt. If you didn’t use a salty broth, you may need to add it. If using optional minced chipotle, add now. Allow to sit about ten minutes before serving so that the flavors can meld somewhat. Tastes even better the next day, and keeps a week in the fridge!

Some images from the process:

The inspiration: a butternut squash, some giant sweet potatoes, and shallots. The potatoes and celery got used for another soup.

The inspiration: a butternut squash, some giant sweet potatoes, and shallots. The potatoes and celery got used for another soup.

Mise en place

Mise en place

Adding the vegetables

Adding the vegetables

Puttin' it up!

Puttin’ it up!

*The class uses Reaper, but since DAWs are pretty similar, I was able to apply what I learned to my DAW-of-choice LMMS!

**long title! feel free to call it something else!