Tag Archives: tcs

Undergraduate-appropriate summer projects

(updated: now with links to projects)

A friend asked me, in reference to my post about the call for proposals for REU positions from CRA, “What kind of projects did you have them work on?”

Two years ago, I proposed two projects and used one.  (I was to have two students, but sadly the shuttle carrying one student to her local airport crashed and she ended up hospitalized with serious injuries.  Last I heard, many months after the accident, she was recovering very well and CRA had set up a last-minute local project for her to work on.)  I include here the two project descriptions I submitted to CRA:

This summer was spent mostly on experimental work rather than theoretical and I was glad for the experimental plan.

For the OSU Math REU program — now accepting applications! — last summer, I proposed a rough area and at the start of the summer changed my mind (while keeping with the spirit of the original area) so that my two summer students could work with my graduate student on what she had already started.  The summer was very successful, resulting in the completion of a paper in which the undergraduate students proved two main theorems.  I had given a thorough outline for one theorem and very little guidance for the second theorem.  They also experimented with generating examples which I think aided in a feeling of productivity and surely helped them understand the problem at hand better. Their summer project report is available here.

Based on this very limited experience, I have the following advice for theoretical-based REUs:

  • If possible, have two undergraduate students working together.
  • Involve a graduate student.  Even a junior graduate student can help fill-in course-level knowledge and can help advise if you need to travel during the summer.
  • Have an experimental (back-up) component.  If they get stuck, the experimental component can help with a sense of productivity and accomplishment.
  • Seek out math, computer-science double majors.

I’d love to hear what other advice/ideas people have.

Did I mention:  the Oregon State University Math REU Program is now accepting applications!  Math/CS double majors are welcome and highly desired!

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.

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 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.)

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?

My office hours are gender balanced

If I didn’t see the students sitting in the lecture room while I taught and only knew who I was teaching to by the students who speak to me after class, in the hallways or in my office hours, I would think the gender ratio was at least balanced in computer science.

Overwhelmingly, one-on-one, my students are female.  I can be even more anecdotal.  Most students ask me questions immediately after class, rather than during office hours – I encourage this, and loiter outside the classroom, taking questions.  Inevitably, I get several male students first.  Then, after, I get just as many, if not more, female students.  Are the male students more aggressive? Are the female students more polite?

What I’d really like to know: what is your experience?  Do more women see you one-on-one?  In your comments, it would be helpful if you include your own gender …

(I am posting to the TCS aggregator, even though this is not  TCS specific, because I would like the broader reach.)

Thinking like a computer scientist

I’m teaching a course called “Orientation to Computer Science“.  It seems all the engineering departments have such a course at Oregon State.  It acts as an overview to a degree in a particular field.  I’ve been asked to teach it because I’m young and female delightful and, apparently, likely to increase retention.  I’ll talk more about the class again, I’m sure.  I had a “pre” lecture on Thursday as part of freshman orientation, welcoming the students in my class, which officially starts next week. (Good thing I wasn’t still travelling!)  I told the class that computer science is a way of thinking and that a programmer is not necessarily a computer scientist and a computer scientist is not necessarily a programmer.  To try to get them thinking like a computer scientist, I used the following exercise:

Ask for ten volunteers and have them line up at the front of the room, in no particular order.  Each person acts as a separate processor.  The class must then come up with a simple procedure to program into each of the processors so that, upon execution, will sort the students by height from left to right.

It’s the first time I tried something like this, and it worked really well.  With discussion, explanation, etc, it took roughly 15 minutes, but could be stretched to 30 minutes or even an hour if some formality was added.  The first challenge was just coming up with a procedure that would work for all the processors in line; the first suggestions were of the form “the guy with the blue hat should move left”.  When a reasonable suggestion came up, we needed to work out the bugs: “do you mean stage left?”  Then there was discussion of how long this algorithm takes and how much longer it would take with twice as many people to sort and how the time depends on how unsorted the people are to start with.  (I would have loved to have longer to give them more formality at this point … but perhaps that would have been become a little boring.)

Overall, I was very impressed with how good their intuition was (at least among the vocal students) – I would bet even better than the junior’s that I am used to teaching, who have, perhaps, had their intuition molded out of them.

Would love to hear other people’s suggestions of warm-up activities.