Category Archives: Education

Intro to Programming in Python, Summer 2011

This summer I am again teaching my Introduction to Programming and Application Development course at the University of Washington PCE (Professional and Continuing Education). I’ve created a promotional presentation about this course using a neat tool called Prezi (this is the tool used to create those awesome TED talks with the flying slides). Click through the slides below to find out more about this course.

Python Programming for the Absolute Beginner, 3rd Edition, by Michael Dawson (ISBN 1-4354-5500-2)
Schedule: June 21 – August 23, 2011, Tuesday nights, 6-9pm
Location: Downtown, 1325 4th Ave (4th & Union)
More info: course website
Questions? send me mail

Why Don’t We Teach Social Skills?

I think there’s a glaring hole in our nation’s public school curriculum. I’m talking about an imaginary missing course called “Social Dynamics 101″. Since it’s my imaginary course, I get to come up with an imaginary syllabus:

  • The importance of listening and how to be a good listener
  • Asking questions – showing an active interest in other people
  • Making eye contact
  • How to be polite (and why)
  • Spotting bullies and queen bees and how to avoid falling into their traps
  • Your most important challenge at school: choosing friends wisely
  • Recognizing and dealing with racism, sexism, homophobia and other forms of discrimination
  • Appropriate and inappropriate use of new technologies (texting, facebook, twitter)
  • How to deal with a crisis

Our kids never formally study how to interact well with other people, how to make good choices, and how to deal with problems. Some might argue that those skills are best taught in the home or in some form of religious training. But I believe these skills are fundamental to success in our society, and are just as important as math, science and language arts. If we’re truly committed to equal opportunity for all, shouldn’t we teach these important skills to every young person in our country?

In her fifth grade year, my daughter’s class participated in a fascinating program from Canada, called Roots of Empathy, in which a new-born infant is brought into the classroom once a week and the kids get to interact with the baby and observe first-hand how a child develops. As reported in a New York Times article on this program, studies have shown that Roots Of Empathy significantly reduces bullying:

In a study of first- to third-grade classrooms, Schonert-Reichl focused on the subset of kids who exhibited “proactive aggression” – the deliberate and cold-blooded aggression of bullies who prey on vulnerable kids. Of those who participated in the Roots program, 88 percent decreased this form of behavior over the school year, while in the control group, only 9 percent did, and many actually increased it. Schonert-Reichl has reproduced these findings with fourth to seventh grade children in a randomized controlled trial. She also found that Roots produced significant drops in “relational aggression” – things like gossiping, excluding others, and backstabbing.

In light of 1) the recent rash of bullying, violence, hate crimes and suicides among young people, 2) the proliferation of powerful new, and often misused communication technologies, and 3) the success of programs like Roots of Empathy, maybe it’s time we started teaching our kids how to get along with each other.

Ten Things I’ve Learned About Teaching

I just finished teaching my new Python Programming course at UW. It was a great experience and I was very lucky to have a fantastic group of students – they showed up for class, they worked hard and they asked me tons of great questions. Preparing and teaching this course was a lot of work, way more than I expected, but it was also very rewarding. Now that I have a little time to reflect on the experience, I’ve captured a list of the most valuable lessons I’ve learned.

  1. Do your homework – When you’re a student, if you don’t prepare adequately, you suffer. But when a teacher slacks off, the entire class suffers. This one should be obvious but it’s absolutely critical that you come to every class fully prepared. That means having lecture notes ready to present, making the notes available before class so students can follow along during class, grading the last week’s quiz and homework, and having the next homework assignment ready to go.

  2. Don’t be afraid to have fun – I love this quote from Tara Ploughman: “The less confident you are, the more serious you have to act.”. If you know your stuff (and you should, if you’re teaching) then take it easy, don’t worry about getting stumped (at some point you will) and enjoy yourself. Students want to be entertained as well as taught. So, relax and let your natural personality and sense of humor show through.

  3. Form project teams – Organize your students into small groups (3-4 students per group works well for programming assignments) for in-class projects. Students will tend to sit together with their friends so avoid forming groups based on proximity – generate your groups randomly by counting off. Small group work provides three significant benefits:

    • It builds peer support networks.
    • It gives students an opportunity to share ideas and learn from each other.
    • It gives your class some variety (no one wants to hear you talk for the entire class).

  4. Use a moodle – Moodle is an amazing (and free) web-based software package, which automates just about everything you can think of related to course administration. I setup a moodle for my class and students used it to access my online lecture notes, take weekly quizzes, submit their homework assignments and ask me questions. I used it to automatically administer and grade quizzes, answer questions, share notes and other material, and track attendance and grades. Thanks to moodle, my course was paper-less, efficient, and environmentally friendly.

  5. Give students a mandatory (but short) weekly quiz – Using the moodle, I posted a new 20-question multiple choice quiz every week. The quizzes were short enough that the students didn’t feel overwhelmed taking a new quiz each week and it gave me (and them) an easy way to assess how they were progressing after each lesson.

  6. Sneak a feedback question into every quiz – I had a diverse group of students – some were experienced computer professionals and others had never written a line of code. The last question in every one of my weekly quizzes was:

    So far, the pace of this course is…
    Choose one answer.
    a. too slow for me
    b. just about right
    c. too fast for me

    This gave me direct and concrete feedback, week in and week out, about how my students were feeling about the pace of the course. I knew that a small minority would always feel bored or lost but I always tried to hit a sweet spot where >80% of my students felt the pace was just about right.

  7. Make yourself available – In addition to holding regular office hours, I gave students my email address and invited them to use it whenever they got stuck on a homework assignment or had questions. I also made rapid email response a high priority. This might sound like an onerous burden but it really wasn’t – I was able to answer most email queries in just a few minutes. Many students never needed (or never bothered asking for) extra help. But beginning programmers are prone to getting stuck in a dead end and, with just a few minutes of email time, I was often able to nudge them in the right direction.

  8. Give in-class challenges – Every so often I would throw a challenge slide into my lecture notes, with topics like “Find the Bugs in this Code” or “What’s Wrong with this Algorithm?”. For example, I used the following slide to reinforce Python string syntax:

    For each of the following strings tell me if they are legal or illegal in Python (bonus points for naming the movie)…

    ‘Go ahead, make my day.’
    “There’s no place like home.”
    ‘Frankly my dear, I don’t give a damn’
    ‘Say “hello” to my little friend’
    “You\’re gonna need a bigger boat”
    ‘”You talkin’ to me?”‘
    ‘Fasten your seatbelts, it\’s going to be a bumpy night’
    ”’Striker: “Surely you can’t be serious!” Rumack: “I am serious… and don’t call me Shirley.””’
    “You had me at “hello”"

    My students seemed to enjoy this combination technical challenge and trivia quiz – it made the exercise a lot more fun.

  9. Maintain a “Hall of Fame” – Every week I made a point of publicizing the names of students who achieved a 100% score on their first attempt of the weekly quiz (the moodle kept track of this data for me). I called it the “Weekly Quiz Hall of Fame” and maintained a cumulative list of inductees. I think the students found this to be fun. People enjoy the thrill of seeing their name in lights and this gave students a little extra incentive to do well on my quizzes.

  10. Do student-led homework walk-throughs – Each week, after grading the previous week’s homework, I would choose one submission which I found to be exemplary and I would ask the author to walk us through their code in class. This achieved several goals:

    • It gave selected students recognition for excellent work.
    • It gave students an opportunity to describe their code (and the thought process behind it) in their own words, peer to peer.
    • It added a little variety to each lesson, so, again, I didn’t have to do all the talking.

    After each class, I would post the selected student’s homework submission on the moodle so that everyone could study it in detail.

I was fortunate to have had an experienced teacher named Zoe Holbrook auditing my class. Zoe served as an unofficial mentor to me and several of the ideas above were suggested by her. I’m very grateful for the insights and wisdom she generously shared with me.

The English Language is Doomed

While perusing used guitar ads on Craigslist today, I came across the following masterpiece:

this is my first guitar it still works awsome but i have to many so i half to let it go. it is not perfect but it plays it is a great beginer guitar so let me know if you are interested i might be interested in some sort of trade depending on what you got so shoot me a email.

What’s amazing about this advertisement is that it breaks so many rules in just two sentences. I count 13 errors in all. How many did you spot?

Sometimes I wonder if texting, twitter and facebook are making us dumber or if we were already dumb and social media give us new ways to demonstrate it.

Don’t Forget To Write!

I started this blog on December 29, 2008, so I just passed my one year anniversary. It was started as a lark – I really expected it to be one of those projects I get excited about and then never finish (when the going gets tough…I usually lose interest). But I’ve managed to keep writing for a whole year.

I’ve written 38 articles so far, which amounts to roughly one article every 10 days. I have one loyal reader (hi Mom!) and several kind souls have claimed to enjoy one or two of my modest creations. Google’s adsense service tells me I’ve had almost 4,000 page hits over the past year (3,936 to be exact). If you google “Marc’s Space” (admittedly, an obscure search :)), I’m the number one hit returned.

Those results are a lot better than I expected when I started this site but I’m not about to quit my day job. I know I’m not, and never will be, a real writer. But even if I had zero page hits, I think I would keep doing this. Here’s why…

  1. Writing is good for your brain. It forces you to organize your thoughts into a coherent statement, and requires you to exercise reflection, introspection, planning, logic and analysis.
  2. Writing helps maintain and improve your vocabulary and spelling.
  3. Writing is an important life skill. Being able to effectively communicate your thoughts and ideas in email is critical for success in the business and professional worlds.
  4. Writing is therapeutic. Have you ever had this experience: you’re mad about something and you write an angry letter but by the time you’re done with the letter you no longer feel the need to send it? That’s because the process of writing has a way of helping us sort out our thoughts and deal with raw emotions.
  5. Probably most importantly: it’s not about being a great writer. It’s about being the best writer that you can be. And practice is the only way to get there.

Many of us stop writing after our school days. The ghosts of arduous term papers haunt us at the thought of writing anything longer than a typical facebook update. And that’s unfortunate, because writing can really be fun and relaxing and good for you.

When I started this site, I pondered a modern variation on that old “if a tree falls in the woods…” question: if I write a blog and no one reads it, will it have an impact? One year later, my answer is emphatically yes – the impact is on me. I’ve enjoyed writing it and I feel like the “writing part of my brain” is getting good exercise these days. And I get a great feeling every time I finish an article. If it entertains or informs anyone else, that makes me extra happy.

The World of More

TV is a great thing, isn’t it? Anyone who’s babysat a toddler for more than four hours knows the life saving value of Television. And there’s a great deal of high quality educational fare available for the little ones. I’m convinced my daughter learned to read early by watching Sesame Street and other shows. But as my daughter has grown into tweendom, the quality and range of educational TV shows has rapidly diminished. At the same time, her taste has turned a corner – “Jonas” and “Wizards of Waverly Place” are now in (way in), while “Arthur”, “Reading Rainbow” and “Nova” are out. Seemingly overnight, my daughter has acquired an addiction to the televised equivalent of junk food.

It was with this thought in mind that I recently received a letter from my cable provider (Comcast) telling me that our “expanded basic” cable service, which we’ve had for the past five years, is being phased out and going all digital. What this means in practical terms is that if I want to continue receiving the channels my daughter craves most, I need to upgrade to “Digital Expanded Basic” service, which requires a new set top box for each TV and yet another remote control.

Here are some choice excerpts:

“We at Comcast are enhancing our network…” – and by “enhancing” they mean, of course, taking away our existing service.

“…exclusively in digital format starting on the date listed below, to bring Washington the World of More” – the World of More what?

“You’ll also have access to over 10,000 On Demand titles…” – the real reason surfaces: it’s the World of More Money for Comcast.

The letter goes on to say that if you don’t take action soon, your existing service will disappear and, more urgently, you’ll miss out on the World of More.

My wife and I had already been comtemplating scaling back on our TV service. We’ve reached the conclusion that, when it comes to television, what my daughter really needs is the World of Less. And, amazingly enough, the World of Less is less expensive than the World of More. So it’s a win/win!

And, at no additional cost, we get a free subscription to the World of More Reading.

Answer to “How many of the world’s ten largest countries can you name?”"

As promised yesterday, here’s the list of the world’s ten largest countries in population order, along with leaders’ names:

Rank Country Population Last Updated % of World Population Leader
1 China 1,338,156,900 5/10/09 19.87% Hu Jintao
2 India 1,164,200,000 6/7/09 17.16% Pratibha Patil
3 United States 306,573,000 6/7/09 4.52% Barack Obama
4 Indonesia 230,330,000 6/1/09 3.42% Susilo Bambang Yudhoyono
5 Brazil 191,401,196 6/7/09 2.81% Luiz Inácio Lula da Silva
6 Pakistan 166,579,500 6/6/09 2.47% Asif Ali Zardari
7 Bangladesh 162,221,000 2.41% Zillur Rahman
8 Nigeria 154,729,000 2.3% Umaru Musa Yar’Adua
9 Russia 141,814,578 6/6/09 2.11% Dmitry Medvedev
10 Japan 127,630,000 2/1/09 1.9% Taro Aso

Nearly 40% of the world’s population (4 out of every 10 people on Earth) live in China or India. How many countries did you name? I was surprised that some countries I expected to be in the top ten are actually not even close. If you’d like to see a more complete list, check out this article on wikipedia, which is the source for the table above.

How many of the world’s ten largest countries can you name?

    I’m currently working in a very diverse organization in England. Every day I get to interact with nice people from India, Turkey, England (of course), France, Ireland, Russia, Serbia, and many other places. Occasionally, I even encounter the odd American (and I do mean odd). Business meetings are a bit like the “It’s a Small World, After All” ride at Disneyland. But spending time in an environment like this makes me realize how little I know about the rest of the world. 
    All my friends from Turkey know the name Barack Obama (who doesn’t?) but how many of my American friends can name the President of Turkey? …crickets chirping… I didn’t know the name either. But not to worry, loyal readers, here at Marc’s Space, where Marc does the work for you, I will reveal that name in a moment but first, I’d like you to take a little quiz…
    Go grab a piece of paper and a pen and jot down what you would guess to be the names of the world’s ten largest countries (by population). If you know any of the leaders’ names, jot those down too. Go ahead, I’ll wait.
    OK, I see you’re not moving yet. Take your time and come back to this site tomorrow when I will reveal the top ten list along with the populations and leaders’ names and you can see how many you got right. Oh, by the way, the current President of Turkey is Abdullah Gul. You can read all about him here:ül.

Learning to Speak English – The Seven Strangest British Sayings

You’ve probably heard the famous George Bernard Shaw quote about America and Britain being “two nations divided by a common language”. Everyone knows the common terminology differences like trunk/boot, elevator/lift, truck/lorry, etc. But after working in the UK for four months, I’ve collected some that you probably haven’t heard – sayings that are commonplace over here but sound genuinely bizarre to my unrefined American ears. 

So, without further ado, here’s my list of the seven strangest things I’ve actually heard people say while living in England:

  1. cock-a-hoop – overjoyed, ecstatic, as in “She’s all cock-a-hoop about that new car”.
  2. faff – fool around, waste time, as in “Stop your faffing about!”.
  3. Bob’s Your Uncle – there you go, there you have it, as in “Take exit 4, turn left and Bob’s Your Uncle!”
  4. donkey’s years – a long time, as in “I haven’t played cricket in donkey’s years”
  5. having kittens – feeling nervous or concerned
  6. trundle – to ride a bicycle
  7. teaching your granny to suck eggs – telling you something you already know

In the interest of cultural exchange, feel free to suggest your favorite Britism (or Americanism) in the blog comments below. But enough faffing about – I’m all cock-a-hoop over today’s weather and it’s been donkey’s years since I’ve had a trundle. Cheerio!

Introducing RoboDad

Have you ever worked on basic math problems with your kid and noticed a certain fixation with their hands? Kids are smart – they figure out how to hide the fact that they’re counting on their fingers. But that tell-tale delay is a dead giveaway. Here’s how I helped my daughter work through this phase…

I’ve always found that whenever I write something down on paper, it somehow eases the memorization process so I had my daughter write the basic addition facts for the digits 0-9 on a piece of scrap paper. We did this for a few days and then I quizzed her occasionally with some home made flash cards. Not surprisingly, she didn’t relish these flash card sessions so I thought “what’s more fun for kids than computers?” and RoboDad was born.

RoboDad automates the testing process in a gentle and fun way. You can choose the type of test, the number of digits to work with, the number of seconds to allow for an answer and the number of questions. I’ve added support for addition, subtraction, multiplication and music note recognition. At the end of the test you get a detailed summary of the results.

This worked well for my daughter so I’ve made it available on the web here for anyone to use. Feel free to comment below if you have any problems, suggestions or feedback of any kind.