Archive for Computer stuff

Time for Seven More Languages

So, five years ago (really! that long ago?), I got tired of teaching the Programming Languages class out of Sebesta and decided to try something new. So, I used the book “Seven Languages in Seven Weeks” ( as the course text.

It was, well, an experience.

Nevermind that the book that was due to be published on August 15 finally showed up in November. In fact, I counted that as a positive (in an “if life gives you lemons” way) since students got to experience how many professionals get their books on new topics with programs like Beta books, Early Release, and MEAPs. And we all liked the much lower price than traditional text books and PDF version that students could carry around easily.

But for years, I’ve been lectured about how lecture is the wrong way to teach classes (trust me, the irony was not lost on my, but seemed to be on the people lecturing me on not lecturing). You should be “the guide on the side” not the “sage on the stage.” And, despite my desire to learn as much as I could about these languages, all seven of them, I soon realized that the student questions and errors would far outstrip my knowledge of the languages. So, I really did become the guide and soon added an assignment where the class would get points for figuring out things I couldn’t. That made us all happy too–they got points and I didn’t have to figure things out.

What was particularly great about the book is that the languages were not your typically Java, C++, C#, C, blah, blah, but included some that really required new ways of thinking. Yes, some students still growl at me about Prolog 5 years later, but once you get it, Prolog is a bunch of fun. Really. Trust me.

And even better, the book didn’t just do “Hello World” in each of the languages. It focused on examples that demonstrated the different features of each language. When we were adding functions to the built in integer class in Ruby in the first week, students knew to hold on tight, it was gonna be an interesting ride. (Especially when you consider most of the class had never had any experience with scripting languages, so just simple Ruby and the REPL was a bit of a shock to the system.)

It was much like a white water rafting trip. I felt battered at the end, they were certainly battered, but if you like that kind of thing, it was a lot of fun. Still I rushed back to the safety (and cruise ship stability) of Sebesta the next year. Turns out, I shouldn’t have rushed for safety quite so fast.

In listening to the students who took the course at their exit interview much later, it was a great experience and the favorite class in the curriculum for a lot of them. They really appreciated the skills they developed in the class and the exposure to so many new ideas. They realized it would be sorta useful in their futures. (It doesn’t hurt that I had some fabulous students in that class either-yes, you Travis and Levi! And yes, you others who don’t live within 10 miles of me.) So I did it again (with a bit more guidance) in 2013 and had planned on doing it with the follow-up book (titled, duh, “Seven More Languages in Seven Weeks”, While I may have fooled some students into thinking working with a language that was not supported was a way to appreciate the support languages other than Io received, it was time to try something new.

But instead of teaching this fall, I’ll be doing something else. (Please don’t ask what or why without planning on offering a job interview or adult beverages.) And one of the many things I’ll miss is not having the chance to do seven more languages.

Still, as I was teaching from Seven Languages, I found the experience of others who blogged it) to be very useful. The work of Yevgeniy Brikman at was especially useful. And since I still haven’t figured out what something else is going to be, it seemed like a good time for me to work through Seven More Languages on my own and record the experience here. It won’t be as useful an experience without students to ask questions I never would think of, but I do still carry a lot of student questions with me, so we’ll see what kind of trouble I can get into on my own.

Leave a Comment

Social Media Overload

So, I’m at Pycon. I figure I should report back, mostly to the GDG Academy people, since Python is a big deal in K12 education.

But there’s the rub. Where do I post? Since GDG Academy is on Google+, that seems obvious. But in the community page? On my page? Probably not, since I don’t “own” those spaces. So my own blog makes sense. Then post to Google+ (both home and the academy?) or send email to the GDG list or Tweet?

Damn. Let’s see how it goes. At least I’m pretty sure I won’t need to post to Ravelry.

Comments (1)

My favorite OSCON quote (so far)

Question: “What version of the code are you using?”

Answer: “Monday.”

Yeah, that about sums up how things are working in the Open Source world.

Leave a Comment

I know C. Dang.

Crap.  It looks like I know C.  Or at least a little of it.  Enough of it to contribute to Open Source.

I’m in the Just Enough C for Open Source session.  It is well presented and interesting to see how the old ideas are being presented to the new age of programmers (“Oh no, variables aren’t automatically initialized!”), but I’m not getting much new out of it.

Which is disappointing for me.  I decided a long damn time ago not to learn C.  I knew Basic and Fortran and Cobol and Lisp and Pascal and Modula-2 and Ada and at the time, that seemed like enough.  And I wasn’t using C for anything, so it seemed like too much to add another language to the mix.

And the C/Unix guys were just annoying.  I’d ask them how to do something simple and be told to do something difficult instead.  Why bother?

Of course, in the intervening years, I’ve learned another language or two (or 20, but I don’t feel like worrying about that now), but still avoided C.  I still had no reason to learn it.  I did learn C++ and Java, which are sorta close!

But, osmosis happens.  Sitting through this session, it appears I’ve learned C.

I had a friend in college studying comparative languages who decided never to read Hamlet.  I got where he was coming from.  I wonder if he was as disappointed when he realized he knew who Yorick was as I am now.

Comments (1)

Watch out compilers class!

Oh my.

I’m in an OSCON talk about the Parrot Compiler Toolkit.  It is just way too cool and way too right for a compiler class.  There’s support so that all you really have to write is the parser and code to tag action methods.  Those are the big things I want my students to do.  So I really have to figure out the PCT.

Now, someone might say instead I need to figure out yacc, since that’s been around for forever and does the same thing, but I just won’t listen to those people.  In fact, since you can get to all the parts of the compiler (like the OPcode tree, or POST), I think I could justify PCT being better.

And anyway, yacc’s been around for forever.  Isn’t that sufficient reason to try something new?

Tres cool sidebar…I entered all my sessions in Google calendar (very easy, since Google imported the calendar file created by O’Reilly) and I just got warned of my next session.  So gotta go.

But I’ve saved the link for my poor compiler kids!  (Really, pity them not…this has got to be easier than compiling to .NET!)

Comments (1)



I’m sitting in a session that makes no sense to me, but mostly because I think it makes no sense to anyone.  Well, that’s not quite right.  It just seems to be presented by someone who has no idea what a good OSCON tutorial is. 

The slides are done in a simple white font on a black background that is so much duller than anything I can describe. 

The speaker is talking in a monotone.

He doesn’t have his examples ready…to show something new, he goes to Google to look it up.

Not that the examples are that good…we’re seeing YouTube videos, ads for 3D mice, etc. etc.

I think for a very small audience, this is a good presentation.  I’m not in that audience.  Neither are most of the people here.

I needed more of an overview of the tools available.  I mean, sheesh, this is the Open Source Conference.  You don’t need a lot of time on licenses.  I expected you to start with Blender or Inkscape or the Gimp or something and do things.  Surveying just doesn’t cut it.  Hey, I did a survey of someone else’s tools last Friday, but I showed examples and explained what they were good for

And I didn’t keep talking about tools that weren’t open source and not for the web during a talk titled “Real Time 3D on the Web for the Web.” 

But my morning talk was great.  It was devoted to the fun and convolution that is Perl programming.  How bad is the code you can write?  Damian Conway can write worse code and he walked us through it.  And I understood it most without my head exploding.

And while I avoided Damian like the plague for a while, he really has mellowed and started being more interested in his audience than in his own strutting and posing.  By far it was the best of the tutorials I signed up for. 

It’s break time.  And while I’ll try to be polite, it’s a bit hard with a talk like this…

I wonder how many people will be back here after break.  I guess I’ll never know.

Leave a Comment

OSCON, 2008

Well, this is an obvious thing to blog about…I’m at OSCON, taking workshops for the first two days.

I started in an introduction to Rails plugins.  I didn’t belong in an introduction to Rails plugins.  I haven’t really thought much about Rails since the first Rails conference, over a year ago.  And I hadn’t updated Rails since then.  So I tried to get Rails 2.0 running this morning and run through a tutorial to refresh myself.

And lemme say, I think it’s really sucky of Rails to “automatically” use SQLite, but then not make it clear that Ruby doesn’t by default include SQLite, so I have to install it.  And if I had more time, it probably would have been clear, but dammit, I wanted to go through the tutorial in 10 minutes and that’s just not enough time to RTFM.

But I did get a lot out of the course.  I remembered how it feels to think the instructor is speaking a foreign language using English words.  I have some students who are definitely in that boat.  Of course, I know that it’s possible to figure out what’s going on.  I honestly believe that some of my students don’t know just how lost they are.

And I got Rails to run.

And I felt very female.  After 45 minutes or so, I looked around and noticed very few other women in the session.  Ah, but there was one a few rows back!  Alas, she was the other woman in my group.  She also ditched the second half of the talk.

So, I decided to go from the sublime to the ridiculous, or some such thing, and spend the last hour and a half of the morning in an Introduction to Python session.  It’s been 8 months or so since I’ve thought about Python, but it’s come back a whole bunch faster.

Nice workshop though.  I can pay attention and do other things, like blog and get the PyDev add in working in Eclipse.  Good slides for the next time I need to learn Python.

And some cool phrasology…”Python is a language for consenting adults” for anytime something slightly dangerous is done (like dispensing with getters and setters).  Of course, this is not something someone interested in Python in the high school is wanting to hear.  But then, it’s been my reason for not wanting to use Python in the high school

And the Double UNDERscore is called the “dunder.”  Of course.  How cool.  What a dork I’ll look like in class this fall!

For purely cool programming, there’s Python function building…

def adderNew(n):
   def add(m):
      return m+n
   return add

add20 = adderNew (20)
add42 = adderNew (42)

x = 2
y = add20 (x)
z = add42(x)
print x, y, z

which gives 2, 22, 44!

We’re getting ready to leave…even though I don’t have to fight lines in the ladies room, I should finish up for now.

Comments (1)

« Newer Posts