Category Archives: Silent Glen Speaks

It won't change

It was in the week before Christmas. An older friend of mine dropped by, as he does so every few weeks. He is a university employee, not faculty, with whom I struck up a passing friendship shortly after starting at Oregon State.

We chatted for a while. He asked me how a recent work trip went. I told him that it was okay – not wonderful – it was a little tiring. He asked why. I explained that while I knew many people at the workshop, I didn’t feel at ease with many. I rambled mildly and idly about how I thought that it was a side effect of there being few women in the field, that I may feel more at ease if I had more female companionship on such work trips.

Well, he says, it won’t change.

Well, I counter, I hope it will.

No, he continues, it shouldn’t. You [points at me] should be at home, raising children. That is what women are good at.

My jaw drops. I pause. Hoping for him to chuckle. That it’s all a joke. It’s not a joke though. He went on to say that he’s old fashioned, but he thinks that engineering is for men. That women shouldn’t be doing this work.

I was caught off guard. What I expected to be an uplifting social visit, of the type that I had quite enjoyed in the past, resulted in my being on the defensive. My stunned state prevented me from making a commanding speech about equality and sexism. I did manage to say a few things along these lines. But I hardly made an impact. In the desire to not deal with this at present, I made it clear that he needed to leave.

Wonderful, funded undergraduates for the summer

The solicitation for summer research projects for undergraduates from the CRA-W is out: the DREU.  I highly recommend proposing a project.  For those who haven’t heard of it, the DREU are Distributed Research Experiences for Undergraduates (from Underrepresented Groups in Computer Science and Engineering). How it works: profs suggest projects; students apply; the fine people who run DREU match students to profs, handle payment and logistics for the students; the students show up and you get them for 10 weeks.  It has a very high reward to effort ratio.

The students are amazing.  I had one student through DREU two summers ago.  It worked out so well, she came back as my Masters student, and I hope she’ll continue to do a Ph.D. with me.  (Recruitment tool, anyone?)  I would have hoped to repeat this last summer, but I instead advised two (also amazing) students through an in-house REU program run by the math department at OSU.

The deadline for suggesting projects is February 15, and generally they are short on projects, not on students.

Your FOCS registration may have caused an unwanted registration to ActiveAdvantage

I registered for FOCS via our school’s accountant.  It seems to have caused an automatic registration to ActiveAdvantage, run through active.com (which handled the FOCS registrations?).  After a one month “free trial membership”, the school’s credit card was charged $59.95 for a “membership renewal”.

You may want to check your credit card bill to see if you were also charged for this.

Or perhaps I checked or failed to uncheck some box.  But I don’t remember this.

How OSU professors learnt to program, short personal histories

Our faculty email list has had a recent flurry of activity as we discussed changing the choice of programming language for our CS1/2 intro sequence.  When I jumped into the throes, I included my own programming education as I thought it was relevant.  Having never taken an introduction to programming course in university, I tend to think (mistakenly) that everyone should learn to program “on their own”.  What followed was an eruption of personal histories that provides an interesting snapshot:

The punch-card crowd

First up, we have those that revealed their age with their punch-card toting past.  Though amusing, this past is perhaps less relevant to the “what programming language should we use today” discussion:

  • “I started with Fortran IV on punch cards. The compiler was the Purdue University Fast Fortran Translator […] ‘PUFFT, The Magic Dragon’.”
  • “My first programming experience was in PL/1 on punch cards with eight hour turn-around time.”
  • “My first computer course was […] in FORTRAN IV, 24-hour turn-around for my punch-cards (if lucky) on an IBM 360.”
  • “My first language was ‘MUSIC’, a language that had been developed at my university for teaching purposes. […] The whole idea of being able to create something on a computer was new and exciting.  I used to rush home from class to do my programming assignments.  Then I’d head off to the keypunch room, wait in line for a keypunch machine, punch up my deck, turn it in to a guy in a window, and come back the next day to get my output.”
  • “You guys had it easy! My punched cards had to be taken to another city by a carrier and the results carried back. It took three days to a week to get the results. I was very disappointed that my program had bugs even after three rounds! […] my first programming experience [was] in Fortran IV, followed by PL-1 and Lisp. My first internship required Basic, and my first job required Cobol and RPG II. They really motivated me to go to grad school. I learned C++ and Java while teaching them.”
  • “Fortran IV : 1975 : Burroughs B6700, (punchcards)
    Binary : 1976 : Data General Nova, (frontpanel bootstrap loader)
    Basic : 1976 : Zilog Z8 microcontroller
    Z80 assembly : 1980 : IMSAI 8080
    Occam : 1983 : INMOS Transputer! […]”

BASIC and Pascal

It seems that many of us were taught BASIC at home and Pascal early on.  Perhaps BASIC should be introduced in elementary school?  And revive Pascal? Wikipedia tells me that Pascal is used to develop Skype.  Really?

  • I learned [BASIC] from my uncle […] We dialed in to the Dartmouth Timesharing System from his living room in Maryland, on a KSR 33 teletype. Later, I learned Fortran in high school and Cobol in college, where I majored in Math, and assembly language for the Xerox Sigma 9. I learned Pascal, C, and Lisp in grad school. […] I figure if I wait long enough, I won’t have to learn Java.
  • […] BASIC on a Commodore 64 with cassette tape storage at home. The first course I took was in high school using Pascal, which I still think is a great language. [… As] a general engineering student I […] only signed up for intro to CS because that was what you had to do to get Internet access [… we] were still using Simula […] I wish I could say that the class blew my mind, but it was the launch of Mosaic the same year that convinced me that there was a cool future in CS. I only learned C/C++ for the OS course, and Java, Javascript and Python in grad school.
  • In my first CS class in college the language we programmed in was Pascal, but we also used a functional notation (mostly on paper!) to study recursion, fixpoint iteration, etc. Since I knew Pascal already from high school, I was kind of bored by those parts, but I was very excited by the functional language and recursion.
  • I learned a little BASIC very early, around first grade (so seven or eight), then got introduced to Logo early. I thought the turtle was silly, but loved recursion, lists, and self-modifying code, so spent my childhood trying to write LISP programs in something that wasn’t quite LISP. [I] learned Pascal and Prolog & wrote programs from books, but never had access to a compiler for either. Picked up C++/C freshman year in college.
  • My dad taught me Basic when I was in elementary school. I had one high school computer science class that used a teaching-language called Turing. The course was excellent and taught program flow and basic data structures.  I learnt Matlab and C for undergraduate research jobs. I took a course on object oriented programming for math majors in my senior year – we used C++. I can say that I absolutely did not understand object oriented programming until 2 years later when I needed it for a grad-school research project.

Parametron?

And then we have what I can only describe as “other”:

  • How I learned programming is probably most unusual. I had to learn it for myself. I learned Fortran II first on a Hitachi machine that used parametrons. The program was punched on a paper tape by using a teletypewriter. Therefore, if even one character was wrong, a whole new tape had to be created. Unfortunately, a parametron was slower than a transistor. Therefore, only several machines using parametrons were produced. After learning Fortran II, I programmed mostly in an assembly language for a Toshiba machine which was a clone of GEPAC 4020. Debugging on this machine was done by using its console which displayed the contents of registers with lamps and which allowed memory contents to be changed with toggle switches.
Feel free to post your own histories in the comments.
These histories have been edited for brevity.

Another algorithms person at Oregon State? It could be *you*!

Oregon State University is hiring!  In computer science! 4 positions! In algorithms!Climb to Alsea Falls

Okay, sure, they are probably not going to hire 4 algorithms people, but algorithms is in the list of targetted areas:

We seek strong candidates with a commitment to quality teaching and with research strengths in the areas of programming languages, algorithms with a focus on optimization or probabilistic reasoning, systems-focused HCI, databases with a focus on very large data systems (excluding data mining), and computer security and privacy.

Given the wealth of positions, it may be a good match for those with a two-body problem.  Or 4-body problem!  The electrical engineering side of our School of EECS is also hiring for several spots.  And other departments at OSU are hiring too!  Enrolment is up and faculty positions are following.  But, why OSU, you ask?  Well, it’s a super friendly department that really values collaborative work:

Applicants should demonstrate a strong commitment to collaboration with other research groups in the School of EECS, with other departments at Oregon State, and with other universities.

Our machine learning/artificial intelligence group is particularly strong.  Our teaching load is low and the research rate is high.  But, perhaps my favorite reason for being at Oregon State is being in Corvallis and being in Oregon.  If you like trees, beer, wine, fresh fruit, vegetable, meat, friendly people, a mild climate, climbing, biking, hiking, skiing, and a minimum chance of natural disaster, and you want all of that stuff in your back yard, then Corvallis, OR is the place for you.  Did I mention it is beautiful?

See the ad for more details.  Spread the news!

FOCS/STOC/ITCS/SODA/ICALP/ESA/STACS/WADS/SWAT/TOO/MNY/CNFS

I missed the FOCS business meeting for no good reason.  But I heard after that there was some discussion along the lines of how many papers FOCS should accept with people vying for fewer papers and a more prestigious conference.  Apparently there were complaints from the old guys that most of the conference was under 35. (Remember, this is day-after gossip laced with truthiness – I wasn’t there.)

Anyhow, my real beef is with the number of conferences in our field.  Some are listed in the title of the post.  And these are only the conferences in the algorithms subdirectory of theory.  Under game theory you can go the FOCS/STOC/EC/ISIT/… route, under crypto, FOCS/STOC/CRYPTO/EUROCRYPT/… etc.  SO MANY CONFERENCES.

For blanket TCS conferences though, we look to FOCS/STOC in the US (and ICALP in Europe, which I have little experience with, so I will keep to the North American scene here).  But STOCS/FOCS are only blanket in terms of topics, not attendance.  A Joint Math Meeting this is not.  While I had a great time with my friends and colleagues who were there, it was the absences that were notable.  Even colleagues from schools in California weren’t there, despite the proximity. Whole institutions left unrepresented.  So even if I do make it to one of STOC/FOCS each year, what about those colleagues who choose to go to the other one.  Or opt out entirely, sticking to their SODAs and SoCGs.  When will I get to see them?

Then there are the more practical considerations.  So much travel!  As a grad student it was awesome.  Free trip.  Not a care as to where the money came from.  Time away from school.  But now.  So much travel!  Who will teach my classes?  Who will pay for this?  How will I recoup a lost weekend?  (Answer: no one; me; with grumpiness.)  Add the wash, rinse, repeat cycle of resubmitted conference papers.  More work for the many PCs that are formed.  And yes, there are practical considerations.  What model do we use?  What does the committee look like?  This has been discussed before.  I’m sure we can figure something out, even if we can’t agree on something.

So why can’t TCS have a SIGGRAPH or CHI or AAAI?  Why can’t we meet all in one place once a year?

Teaching with a microphone

After Claire’s post on accidentally taking a classroom microphone with her after teaching, I grumbled to myself “I wish I taught at a fancy university with a fancy microphone in the fancy classroom.”  One email later, I learn that there is a microphone in the computer cabinet in the classroom where I teach 130 students.  I tried it out today, hoping to counter a sore throat after flying back from FOCS*.  Apparently it worked really well, the students in the back were answering more questions and one student after class asked me to use it in future classes.

Sadly, it means that maintaining my sanity with comments murmured under my breath is no longer possible.

* I will post on FOCS when the talks from the conference are available so I can point to my favorite talks.

Teaching Matroids

In my grad algorithms class, I taught matroids.  This was last Thursday and came on the heels of a class and problem solving session on greedy algorithms.  The class, I think, went well.  I went slowly (Socratically), building up the definition of a matroid using the graphic matroid as an example, motivated by Kruskal’s algorithm for maximum spanning tree.  I pointed the class to Jeff Erickson’s notes on the topic, but used the 4 Bill’s treatment of matroids in preparing the lecture.  The problem solving session for this topic (yesterday), on the other hand was … well, the questions were too difficult.  Yes, I’ve made this mistake before.  But this time 4 of the 6 questions ended up being too difficult (for the time given).  Oh well.

I think I will teach matroids again in this class.  In teaching greedy algorithms, I had many questions along the lines of “when will greedy work?” and I think seeing an abstraction of a whole class of objects for which greedy will work (although not, of course, painting the whole picture) satisfied those questions.  It’s also a level of abstraction that hasn’t been included in this class before.  A healthy dose of it, I think.

Next up, dynamic programming.  Maybe I’ll include Courcelle’s Theorem.  (No, I won’t.)

Death by Powerpoint

In my grad algorithms course, I am teaching in an increasingly Socratic way (not all the way there yet) and covering less material as well.  Well, going through fewer examples.  In my freshman “Orientation to Computer Science” course, I am doing this much less so.  I find it challenging because, while the material is quite easy, I have no idea of the background of the students.  How do you teach Socratically to a group of students, a third of whom already know what you are teaching and a third who think you are speaking Greek?  I’ve still managed to keep the classroom somewhat interactive, but it definitely needs work.  Maybe next year.

But it came to a screeching sleep-inducing halt on Wednesday.  I needed/wanted to teach the students basic computer architecture.  Now, this is a topic that I have somehow escaped learning anything but the most basic of knowledge about.  I scrounged up some slides online as a starting point and decided the only way I too could teach this material is with slides.  I never teach with slides.  This really was only the second time.  The first time was for a 15-minute teaching sample I had to give during an interview in which they refused to provide anything other than a projector.  I was glad to have asked.

It’s a bad sign that I was bored by lecture.  The students certainly didn’t look any better. Never again.

Of course, about an hour after the lecture – having learned, digested, taught the material – I realized there definitely is a way to cover basic computer architecture Socratically and, in retrospect – as this was the one topic that was new to everyone in the class – this may have been the one place that I could have really teach in a deep, meaningful way.

Oh well.  Next time.

Reviewing a paper multiple times

It has happened several times to me now.

I (sub)review a paper for a conference and for one reason or another the paper is rejected.  The next conference deadline rolls around and I get a request to review the same paper.  I have never turned down these requests until today, and even today it was a “soft” turn-down.  I’ve experienced three characteristic situations:

  1. The first version has a bug.  I recommended a reject.  In every case that I can remember, the second version has the same bug, so I happily send the same review to the PC member, always being honest about reviewing this for a previous conference.
  2. I loved the first version and recommended an accept.  I happily send the same review, perhaps with a little extra “sugar” in the hopes that it will be accepted this time, always being honest about reviewing this for a previous conference.
  3. I was luke warm about the first version.  I check to see that the paper hasn’t changed.  It hasn’t.  Should I submit the same luke-warm review?  I did this time, but was pretty strong about not really thinking it would be useful to the committee.

I’m starting to think that a second review by the same person for a different committee isn’t very useful.  Except perhaps in the first case when a bug is a bug is a bug.  (I had one situation where I reviewed an un-changing, incorrect paper three times only to see it one day be accepted to a conference – with the bug included – for which I was not a reviewer.)

So, my question is: what do you do in these situations?  As a PC member, do you welcome “re”reviews?  In all situations?  Or just some?