Friday, August 31, 2012

Honor Codes?

A further interesting question that has come out of the as-of-yet alleged cheating scandal at Harvard is whether Harvard should have an honor code.  The question is particularly interesting since Harvard attempted to institute a voluntary "freshman pledge" last year, that met with "controversy" (see here, here for example).  Harry Lewis wrote a detailed opinion of the pledge on his blog at the time.  Indeed, Harry Lewis in fact has spoken consistently on this issue for some time -- here's a 1996 Crimson article where he is quoted:
"Our understanding is that in registering at Harvard students agree to abide by the rules of the community they are voluntarily entering. It is not clear why a special signed agreement of another kind would be needed, or would add anything."
As if often the case, I agree with Harry's opinion above.  Also, I'd much rather have students discussing the issues and coming to grips with what are sometimes challenging ethical questions rather than signing a pledge.   

Come to think of it, I'm not sure if freshmen are to be asked to sign the pledge again this year.  (The pledge is not an honor code per se, but has been called the "kindness pledge".)

But back to the question.  Should Harvard have an honor code?  Why?  What would it add?  More empirically, do honor codes actually reduce bad behaviors, like cheating?  Is there evidence of it?  I note that many cheating scandals have occurred at schools with honor codes -- like the Naval Academy and Duke -- though apparently some researchers suggest an honor code could reduce cheating.

A natural question:  should punishments be more severe for cheating if cheating is part of an honor code?

Clearly, the question of whether we should have an honor code is going to arise at Harvard this year.  Any opinions in advance?

Max Flows in O(nm) Time by Orlin

Just saw Suresh point to this talk (and paper) about a new result for max flows in O(nm) time by James Orlin.  I'm listening to the talk he has on line this afternoon, but it seems buzzworthy and I hadn't heard about it, so I thought I'd add some buzz.  


Thursday, August 30, 2012

Academic Dishonesty Cases

I have a bunch of half-written blog posts, none of which I have felt pressed to finish, so the blog has languished over the summer.  But then, something has come up worth writing about.

The Harvard Gazette has an article up about a cheating scandal at Harvard;  apparently, in a large class last spring, a large number of students worked together on the final exam.  The first two paragraphs read:
The Harvard College Administrative Board is investigating allegations that a significant number of students enrolled in an undergraduate course last semester may have inappropriately collaborated on answers, or plagiarized their classmates’ responses, on the final exam for the course.
An initial investigation by the board, the faculty committee charged with interpreting and applying the rules of the Faculty of Arts and Sciences to the undergraduate student body, touched off a comprehensive review of the more than 250 take-home final exams submitted at the end of the course. That review has resulted in cases before the Administrative Board involving nearly half the students in the class.
This is reminiscent of other past scandals (MIT, Duke) and general trends found in examining academic dishonesty (Stanford, MIT).

There's not much information out there right now on this story -- Harvard has not even released what class is involved.  There aren't that many classes with an enrollment > 250, so it might not be too hard to piece together;  I imagine some newspapers will find out soon enough.  (Update:  The Crimson tweets that the class is Introduction to Congress.)

There are a number of ways to look at this story, and I imagine I might write a few posts on it.  One issue is the fallout for the students.  Harvard has a very tough policy on academic dishonesty compared to other schools, from what I've heard.  A standard punishment is that students are required to withdraw for one year for cases of plagiarism.  "Improper collaboration" is perhaps a bit fuzzier an issue, and I am not sure how the Ad Board will choose to handle it.  But it will certainly be a stressful and trying time for all involved as it gets sorted out, and for those with more severe punishments, well afterwards.  I note that it's not just the students who have to deal with the stress of it all;  it also takes the toll on the administrators who have to administer these decisions.

Are Harvard's remedies for academic dishonesty too strict?  These are the rules of the Faculty, and we could change them.  Is withdrawal for 1 year for standard cases suitable?  I've heard many arguments (generally from students) that that is too harsh a sentence;  on the other hand, it's meant to strongly deter what should be (but doesn't seem to be) a rare transgression.  It's an interesting issue to consider, and I'd enjoy hearing reasoned views in the comments.

Interestingly, there's been a lot on higher-up academic dishonesty of various sorts of late, most notably Fareed Zakaria (Yale Daily Newsone of many Shots in the Dark Posts) and Niall Ferguson (Brad DeLong's blog,one of many Shots in the Dark posts).  So these topics seem ripe for larger-scale discussion.    

Thursday, August 16, 2012

Important IP Case

For those of you not following the Apple-Samsung case going on right now, it's fascinating.  Since I do expert witness work, it's interesting to me from that perspective, but just in terms of the technology and issues involved, there seems to be a lot involved in the case.  FOSS patents has detailed coverage, although it's also getting plenty of detailed coverage from business and tech news sites.

In particular, the latest things that really interested me:

Harvard's own Woody Yang (Electrical Engineering) was a witness for Samsung
(It's been several years since it happened, but when I started at Harvard, I ran into many uninformed people who didn't seem to know that Harvard had computer science and engineering.  So when a Harvard prof shows up in such a high-profile context, it still makes me smile.) 

Andries van Dam used Mitsubishi Electric Research Lab's Diamondtouch as prior art for the snap-back patent.  (See here, here, here.)  I spent a good deal of time at MERL around that time period, and remember they were (rightly) very excited about it as a technology, so it's interesting to see it come back as a piece of prior art in this case.


Tuesday, August 14, 2012

Mail Issue

Last week I had an issue where I sent an e-mail to someone (non-work-related), and a while later got the response forwarded to me from my wife, with a note that Harvard was rejecting the response e-mail.  It seemed to be a one-time issue -- I was getting other e-mail -- so I assumed it was a spurious issue and ignored it.

Last night, it happened again -- both of my brothers had their mail to me bounced from Harvard, with the same error message.

The commonality was easy to spot -- all were using Yahoo mail accounts.

I sent mail to IT, who quickly found that yes, a firewall upgrade last week had somehow made mail from mail.yahoo.com undeliverable.

It's always a little disturbing to me when I find these problems.  For historical reasons I think I'm on a mail server that doesn't involve a large number of people at Harvard, but still, nobody noticed for a week that mail from Yahoo wasn't being delivered?  Perhaps it says something unfortunate about how many people still use Yahoo mail accounts these days.

It's also an example of something I feel I always have to explain to people:  e-mail is not a 100% reliable delivery service, and shouldn't be thought of as such.  Yes, most of the time if your e-mail is dropped it is a "me issue" (you can either view it as my laziness/irresponsibility, or view it from my standpoint -- I get 50-100 e-mails a day and yours fell off the end somewhere);  and sometimes these days it's a system issue (your mail looked like spam, and never reached my eyes).  This time at least there was an error response so it was known that the mail didn't get through.  But always best to be wary of your e-mail system, and use the phone if it's something important you need a response to.

 


Thursday, August 09, 2012

Distracting Videos

Jeff Erickson gets the blame for pointing out this amusing/disturbing video on counting.  I feel like I should make it a background video before my undergraduate class one day.  Catchy tune.  

My wife liked this backyard roller coaster video, which apparently creates discussion about whether this is the best dad ever (let me repeat:  backyard roller coaster) or completely irresponsible and dangerous parenting (let me repeat:  backyard roller coaster).  

David Malan gets fun videos up to advertise CS50.  So any Harvard students reading this, point the freshpeople over to www.cs50.net and run the video.  (In this case, I will not justify the choice of music.)  Expect more CS50 goodness and news on the blog as it's one of the initial HarvardX courses.  

I found my library had all the Sarah Jane Adventures DVD sets.  (Trailer here.)  For those who don't know, Sarah Jane Smith was one of Doctor Who's companions back in the 1970's;  only three decades or so later, they finally gave her a spin-off show, which is a lighter and somewhat more kid-friendly version of Doctor Who.  My kids (who also like Doctor Who, though they're occasionally creeped out by it) were instantly addicted when we visited London a few years ago.  So this last week or so I've been forced to watch many, many happy hours of perfectly summertime TV with the kids.  (My youngest only wants to watch Scooby Doo, so I've also been catching the new episodes of Scooby Doo! Mystery Incorporated -- EVIL PIZZA ;  while I'm really, really, really burnt out on Scooby Doo at this point, I have to say, the Mystery Incorporated series seems like the best incarnation of Scooby Doo ever.)


Wednesday, August 08, 2012

Article about DEC Folk

Interesting Wired article talking about a bunch of people I worked with back when I was at Digital Systems Research Center, and their big effect on Google.  It's great to see them get credit for all they've done.

Tuesday, August 07, 2012

Like a Movie Meteor...

The new semester is hurtling toward me.

This semester I get to teach one of my graduate courses, the one I named Algorithms at the End of the Wire sometime over a decade ago, when that seemed like an appropriate title.  Students seem to have learned that the appropriate subtitle for the course is something akin to:  "Things Professor Mitzenmacher is working on, is interested in, or otherwise likes."  Standard topics therefore include ranking and search engines (Pagerank + variants), data sketches and summaries, coding, and compression.

Since I teach it every other year, I try to introduce new topics into the mix where appropriate.  Generally, I'm looking for two things:

1)  Topics that have an interesting mix of theory and practice.  The class is based on paper-reading, so it's particularly fun (for me) to try to find a topic where I can assign one theoretical paper and one practical paper.  This yields interesting room for comparisons and contrasts, induces (I can only hope) interactions between systems and theory students in the class, and (again I can only hope) ensures that everyone gets something out of at least one of the papers.
2)  Topics in my bailiwick.  Networking (including social networking!) is always good;  connections between "EE theory" and "CS theory" are nice;  big data topics, including database or cloud style applications are very welcome.

So what papers in the last 2-3 years, say, really need to be added to the class reading list?  Where are the new and exciting places where theory and practice are meeting to produce exciting breakthroughs (that, ideally, can be covered in couple of lectures)?  Or, as another way to think about it, what should I really be learning about?  Please let me know in the comments.    
 
PS:  Yes, I haven't been blogging much.  I've been having a perfectly enjoyable summer without blogging.  I've been busy with vacation, kid time, other lazy time, consulting work, the occasional bit of "Area Dean" administration, and, of course, my day job -- a few papers have been submitted, a few more are at various stages in the pipeline.  But I suppose with the summer tailing off I'll have more reason to be blogging again. 

Thursday, July 19, 2012

Yale Daily News, continued

I pointed to this article in the Yale Daily News about computer science when it came out in April.  Giorgos just pointed me back to it again, and I'd have to say, it's worth looking at again for the comments, which I'm still trying to grok.   

Thursday, July 12, 2012

MMDS

I'm hanging out at MMDS -- the Workshop on Algorithms for Modern Massive Datasets at Stanford.  The crowd is surprisingly huge, with a greater number of people in "adjacent" areas (math/statistics/machine learning) and industry than is normal for me.   It's very exciting to see such wide-scale interest.

Right now, though, the non-theorists are having to listen to a very theoretical session:
11:00 - 11:30 Ping Li
Probabilistic Hashing for Efficient Search and Learning on Massive Data
11:30 - 12:00 Ashish Goel
Real Time Social Search and Related Problems
12:00 - 12:30 Andrew Goldberg
Hub Labels in Databases: Shortest Paths for the Masses


Fun stuff!

I just enjoyed an interesting aspect of Ashish's talk.  He was putting the social search problem in a framework where you first do preprocessing on the social graph (using distance oracles for shortest paths), and then do incremental updates (corresponding to when someone say does a new Tweet, you update the keywords associated with that user).  I like it because I talk about the preprocessing + query answering approach (using examples like suffix trees, least common ancestor data structures) in my undergrad class.  This preprocessing + incremental update + query answering example in the context of social search would make a nice addition (that students can hopefully appreciate), if I could simplify it in a reasonable way.

Friday, July 06, 2012

On NPR (Morning Edition)

Groupon is being discussed on NPR (Morning Edition), which means we get a phone call again.  Our graphs are reproduced on the site, and John Byers speaks for us (Giorgos and me with John).


Saturday, June 30, 2012

Anniversary

Today I get to celebrate that I'm two years done with my three year stint as "Area Dean for Computer Science" (chair).  Whoever the new person is, they're supposed to start July 1, 2013.  I've already starting encouraging the possible successors to step up.  (Indeed, I've already started to become a bit more ambitious.  I'm hoping to line up the next 3 or 4 people for the position;  no tag backs for a decade...)

It's not that I'm unhappy with the job.  (I realize that statement is a no-op;  I have to say that.  I'm trying to get others to take over.)  I'm pleased with what I've been able to do.  We tenured two faculty last year (Hanspeter Pfister and Radhika Nagpal);  we promoted another (Yiling Chen);  we hired a new faculty member (Yaron Singer);  and we've just had a junior faculty search for next year approved.  We're (still) a relatively small department with a lot of demands on us, and I came in with a clear goal for us for faculty growth.  I feel we've been successful in this regard.  There have been some other nice successes, such as the new SEAS Design Fair I helped manage and organize, which I expect will be an annual event.  And I'm able to act as the faculty interface with the administration in various ways, helping, I hope, keep things running smoothly.

But I'll also be happy to step down.  I'm overdue for a sabbatical already (the price of agreeing to a 3-year job).  I'll enjoy getting the time back for other things.  (Though I expect I'm being unrealistic, and that some other committee or administrative task will try to absorb the time.)  I like the "serve 3 years and out" model (though I see weaknesses in it too, in terms of setting up longer term infrastructures).  I enjoy taking on new experiences and challenges, so trying out "management" (if that's what this job is) has been interesting and educational.  But in one more year, another change will be good.

    

Monday, June 18, 2012

Simons Institute Call

Alistair Sinclair asked me to post the call at http://simons.berkeley.edu/cfp_summer2012.html for the Call for Proposals for Simons Institute programs.  The deadline is mid-July.

Worth noting --  two semester-long programs for Fall 2013 are already decided: these are "Real Analysis in Computer Science," organized by Gil Kalai, Subhash Khot, Michel Ledoux, Elchanan Mossel, Prasad Raghavendra and Luca Trevisan; and "Theoretical Foundations of Big Data Analysis," organized by Stephen Boyd, Peter Buehlmann, Michael Jordan, Ravi Kannan, Michael Mahoney and Muthu Muthukrishnan.  Get your tickets now.

Friday, June 08, 2012

New SIGACT Officers

Lance informs me we have newly elected officers at SIGACT.

Chair:  Paul Beame

Members-at-Large:

Venkatesan Guruswami
Rocco Servedio
Avrim Blum
Tal Rabin

Congratulations/condolences to the winners.  I'm sure Paul will do a great job --
he's a regular commenter here, and I always find his opinions incredibly well thought out,
even in (rare) cases where I disagree.  I can't wait to see what he does.

I'd also like to thank Lance for his service as chair the last few years.  He had the unenviable
job of keeping the community happy, preserving the structures that have served us well while
trying to introduce new ideas where there looked to be room for improvement.  I think he's
done a great job, generating some controversy and discussion while keeping everything moving forward.  He (and the other SIGACT volunteers) deserve our thanks.  So, thanks!

Thursday, June 07, 2012

Mihai Memorial Blog

I received the following note from Mikkel Thorup and Alexandr Andoni.
I believe it's appropriate to share:

Dear friends of Mihai,

We made a blog in Mihai's memory. Celebrating Mihai's energy and
spirit, please cheer him with a glass of wine (or other spirits), and
send in a picture to be posted on the page:
http://mipmemorial.blogspot.com

Best regards,
Mikkel and Alex

Many of you have left wonderful comments about Mihai here.  I hope you'll copy them over and possibly add to them at the memorial site.  


Wednesday, June 06, 2012

Sad Passing: Mihai Patrascu

[** UPDATE **]

Dear friends of Mihai,

We made a blog in Mihai's memory. Celebrating Mihai's energy and
spirit, please cheer him with a glass of wine (or other spirits), and
send in a picture to be posted on the page:
http://mipmemorial.blogspot.com

Best regards,
Mikkel and Alex

[** UPDATE END **]



Mikkel Thorup just sent me the following to post regarding Mihai Patrascu. 

---------------

Mihai Patrascu, aged 29, passed away on Tuesday June 5, 2012, after a
1.5 year battle with brain cancer. Mihai's carreer was short but
explosive, full of rich and beautiful ideas as witnessed, e.g., in his 19
STOC/FOCS papers.

Mihai was very happy about being co-winner of the 2012 EATCS Presburger Young Scientist Award for his ground-breaking work on data
structure lower-bounds. It was wonderful that the community stood up
to applaud this achievement at STOC'12. Unfortunately he will not make it to the award ceremony on July 10 at ICALP.  Mihai's appreciation
for the award shows in the last post on his blog
http://infoweekly.blogspot.com/.

I was fortunate enough to be one of Mihai's main collaborators. One of
the things that made it possible to work on hard problems was having
lots of fun: playing squash, going on long hikes, and having beers
celebrating every potentially useful idea.

On this last note, Mihai's wife Mira tells me that she does not want
any flowers and that his funeral will be back in Romania.
However, she wants people to have a glass of wine in Mihai's memory,
thinking about him as the inspired and fun young man that he was.

Verification in the Cloud [Guest Post by Justin Thaler]

[Justin talks about his upcoming work, to be presented at HotCloud.]

For the past few years, Michael and I, along with our awesome collaborators, have worked towards developing practical protocols for verifying outsourced computations. In roughly chronological order, the relevant papers are here , here , here , here , and most recently here . In this last paper (joint work with Mike Roberts and Hanspeter Pfister ), we really tried to push these protocols into practice, largely by taking advantage of their inherent parallelizability: we'll be presenting it at HotCloud next week, and it is the main impetus for this blog post. My hope here is to give a (somewhat) brief, unified overview of what we've accomplished with this line of work, and how it relates to some exciting parallel lines of inquiry by other researchers.

Our main motivation is that of Alice, who stores a large data set on the cloud, and asks the cloud to perform a computation on the data (say, to compute the shortest path between two nodes in a large graph, or to solve a linear program defined over the data). Of course, Alice may be a company or an organization, rather than an individual. The goal is to provide Alice with a guarantee that the server performed the requested computation correctly, without requiring Alice to perform the requested computations herself, or even to maintain a local copy of the data (since Alice may have resorted to the cloud in the first place because she has more data than she can store). In short, we want to save Alice as much time and space as possible, while also minimizing the amount of extra bookkeeping that the cloud has to do to prove the integrity of the computation.

Alice may want such integrity guarantees because she is concerned about simple errors, like dropped data, hardware faults, or a buggy algorithm, or she may be more paranoid and fear that the cloud is deliberately deceptive or has been externally compromised. So ideally we'd like our protocols to be secure against arbitrarily malicious clouds, but sufficiently lightweight for use in more benign settings. This is an ambitious goal, but achieving it could go a long way toward mitigating trust issues that hinder the adoption of cloud computing solutions.

Surprisingly powerful protocols for verifiable computation were famously discovered within the theory community several decades ago, in the form of  interactive proofs , PCPs , and the like. These results are some of the brightest gems of complexity theory, but as of a few years ago they were mainly theoretical curiosities, far too inefficient for actual deployment (with the notable exception of certain zero-knowledge proofs).

We've been focusing on interactive proof methods, and have made substantial strides in improving their efficiency. One direction we've focused on is the development of highly optimized protocols for specific important problems, like reporting queries (what value is stored in memory location x of my database?), matrix multiplication, graph problems like perfect matching, and certain kinds of linear programs. Many of these are provably optimal in terms of space and communication costs, consist of a single message from the cloud to Alice (which can be sent as an email attachment or posted on a website), and already save Alice considerable time and space while imposing minimal burden on the cloud, both in theory and experimentally. But for the rest of this post I will focus on *general-purpose* methods, which are capable of verifying arbitrary computations.

The high-order insights of this line of work are as follows. The statements below have precise theoretical formulations, but I'm referring to actual experimental results with a full-blown implementation. Note that a lot of engineering work went into making our implementations fast, like choosing the "right" finite field to work over, and working with the right kinds of circuits.

1) We can save Alice substantial amounts of space essentially for free. The reason is that existing interactive proof protocols (such as Interactive Proofs for Muggles by Goldwasser, Kalai, and Rothblum, which is the protocol underlying our implementation) only require Alice to store a fingerprint of the data. This fingerprint can be computed in a single, light-weight streaming pass over the input (say, while Alice uploads her data to the cloud), and serves as a sort of "secret" that Alice can use to catch the cloud in a lie. The fingerprint doesn't even depend on the computation being outsourced, so Alice doesn't need to know what computation she's interested in until well after she's seen the input, and she never needs to store the input locally.

2) Our implementation already saves Alice a lot of time relative to doing the computation herself. For example, when multiplying two 512x512 matrices, Alice requires roughly a tenth of a second to process the input, while naive matrix multiplication takes about seven times longer. And the savings increase substantially at larger input sizes (as well as when applying our implementation to more time-intensive computations than matrix multiplication) since Alice's runtime in the protocol grows roughly linearly with the input size. So I'd argue that verifiable computation is essentially a solved problem in settings where the main focus is saving Alice time, and the runtime of the cloud is of secondary importance. At least this the case for problems solvable by reasonably small-depth circuits, for which our implementation is most efficient.

3) We've come a long way in making the prover more efficient. Theoretically speaking, in our ITCS paper with Graham Cormode , we brought the runtime of the cloud down from polynomial in the size of a circuit computing the function of interest, to quasilinear in the size of the circuit. Practically speaking, a lot of work remains to be done on this aspect (for example, our single-threaded cloud implementation takes about 30 minutes to multiply two 256 x 256 matrices, and matrix multiplication is a problem well-suited to these sorts of protocols), but we are in much better shape than we were just a few years ago.

4) All of the protocols (special-purpose and general-purpose alike) are extremely amenable to parallelization on existing hardware. This holds for both Alice and the cloud (although Alice runs extremely quickly even without parallelization, see Point 1). For example, using GPUs we can bring the runtime of the cloud to < 40 seconds when multiplying two 256 x 256 matrices. Obviously this is still much slower than matrix multiplication without integrity guarantees, but we're now just one or two orders of magnitude away from undeniable usefulness.

The extended abstract  appearing in HotCloud (which should be viewed largely as an advertisement for the arxiv version) can be found here . We tried hard to give an accessible, if very high level, overview of the powerful ideas underlying interactive proofs, which I hope will be useful for researchers who are encountering verifiable computation for the first time.  Slides describing the entirety of this line of work in more detail can be found here .

I want to close by mentioning two exciting lines of work occurring in parallel with our own. First, Ben-Sasson, Chiesa, Genkin, and Tromer are working toward developing practical PCPs, or probabilistically-checkable proofs (see their new paper here ). The PCP setting is much more challenging than the interactive proof setting we have been working in above: in a PCP, there is no interaction to leverage (i.e. the cloud sends a single message to Alice), and moreover Alice is only permitted to look at *a few bits* of the proof. The latter may seem like an artificial constraint that doesn't matter in real outsourcing scenarios, but it turns out that building a practical PCP system would buy you quite a bit. This is because one can throw certain cryptographic primitives on top of a PCP system (like collision-resistant hash functions) and get a wide variety of powerful protocols, such as succinct arguments for all of NP (i.e., protocols requiring very little communication, which are secure against computationally bounded adversaries). The work of BSCGT appears to still be in the theoretical stage, but is very exciting nonetheless. Check out their paper for more details.

Second is work of Setty, McPherson, Blumberg, and Walfish, from NDSS earlier this year (see their project page here ). They implemented an argument system originally due Ishai, Kushilevitz, and Ostrovsky, and bring the runtime of the cloud down by a factor of 10^20  relative to a naive implementation (yes, I said 10^20; this again highlights the considerable engineering work that needs to be done on top of the theory to make proof or argument systems useful). Our protocols have several advantages not shared by SMBW (like security against computationally unbounded adversaries, and the ability to save the verifier time even when outsourcing a single computation), but this is another big step toward a practical implementation for verified computation. It looks like related work by Setty, Vu, Panpalia, Braun, Blumberg, and Walfish will be presented at USENIX Security 2012 as well (see the conference page here ).

The golden age for negative applications of interactive proofs and PCPs (such as hardness of approximation results) arrived over 15 years ago, and continues to this day. Perhaps the time for positive applications is now.






Tuesday, May 29, 2012

More Entrepreneurial Harvard?

One thing I noticed talking to CS graduates from Harvard this year is -- entirely anecdotally -- more seem to be going to small start-ups.  This has been an increasing trend the last few years, and strikes me as a big change.  When I was a student, most CS grads went one of the safe and successful routes of going to Microsoft, Wall Street, or one of the name brand consulting firms.  (Some losers went to grad school.)  When I started as faculty, this basic framework still seemed pretty much in place -- the most notable change was that over the years Google took up a good chunk of Microsoft's previous mind-space. 

Assuming it's true (and I think it is), there are many things that could be bringing about the change.  Harvard in many ways is trying to promote it -- in CS our classes are much more "project-based", there's a student Hack Harvard group arranging sponsored Hack Nights, and there are institutional developments like the Harvard Innovation Lab to help promote an innovation culture.  Part of it has to be attributed to the "Facebook Effect" -- we're bringing in more CS-interested people as students, and more of them are interested in startups, probably because some want to change the world, and because "a million dollars isn't cool."

One other thing that I think might be helping?  Harvard's financial aid policies, which changed significantly around 2006, making Harvard much more affordable for lower and middle class attendees.  I imagine it's a lot easier to take a risk right out of school when you're not deep in a debt hole.  At the very least, it's easier to justify to your parents why you're not (immediately) taking that high-paying job after they've paid for four years of private college.

Overall I think this is all to the good.  While startups aren't for everyone, I think Harvard grads as a group have historically been too "conservative" in choosing career paths;  it's exciting to see what may be a change in worldview.  A downside?  We've been sending noticeably fewer of our best and brightest to grad school, as they're seeking other opportunities. 

I'd be eager to hear from recent (and not-so-recent) grads their thoughts on the current startup culture...

Saturday, May 26, 2012

CS 124 -- Some Student Comments

Overall, I feel I've had a very successful year, but I do have to admit:  my undergraduate class, CS 124, could have been better this spring.  I wasn't prepared for the class doubling in size from the previous year, and I had too many other things going on to make modifications on the fly.  The most common complaint was that the turnaround time to get back assignments was too long, and I agree.   I hope to find time to make some changes before next year rolls around that will help with that.  (Lots of perennial complaints about timing of things like the midterm, too -- see this previous post if you care.)  

Some interesting takeaways from the comments, which, as always, have high variance.  Answers below come from the question:  "What would you like to tell future students about this class?"  My favorite so far:

"CS124 isn't too bad for an introduction to some basic algorithms, but it could be a lot more rigorous. Fairly light workload."

What's funny if I can't tell if the student is being serious or sarcastic, the comment is such an outlier.  It's either from someone who really did well in the class and felt insufficiently challenged (there's usually a few), or someone who is making some kind of joke.  Other comments are more realistic, with different levels of "appreciation" for the difficulty:

"It is hard."
"A lot of hard work but it's worth the effort."
"The hardest class taken this far in college; painful (to be fair though I did lean a lot but not sure how efficient the process is...)"
"Often pretty difficult, but totally worth it."
"It's incredibly difficult (on a scale from 1 to impossible, it's harder than impossible)..."
"Start the psets early, and focus on them, because they are immensely rewarding. However, they are extremely brutal."


Brutal, nice adjective there.  

Some people feel algorithms is part of your health foot diet:

"This course is computer science vegetables."
"It's broccoli; you just gotta take it."  

Hmm.  I do make my kids eat their vegetables, including broccoli.  Still, perhaps not the most appetizing comparison. 

 Several people mention that the class is good preparation for job interviews.

"The material from this course is so valuable to have for tech recruitment season."
"124 is no doubt a tough class but it is also super useful. In fact, if you want a job in CS you MUST take this course. Multiple problem set questions appeared on my interviews and the algorithmic thinking helped me solve any other problem they asked. "
"Programming interview questions focus on algorithms. This class has been so helpful in getting me a job." 
"Very difficult, but very rewarding. Teaches you how to do algorithms and helps with job interviews."

I am absolutely unembarrassed about CS 124 being (in part) vocational training.  I didn't design the class to prep students for job interviews, but I'm glad to hear that it does, and very happy it plays that role.  Maybe we need to somehow move the class to the fall instead of the spring, so students can get the full class in before interview season.

Finally, of course, some of the highest variance comes in students' feelings toward the actual teacher:

"Mitzenmacher is actually a really great lecturer and motivates everything that we learn in class." 
"Professor Mitzenmacher is an excellent lecturer and he really does seem to care about his students." 
"Mitzenmacher.... definitely generates enthusiasm for the material, and lectures were very engaging and were well-motivated by relevant real world examples."

All of you, come find me after class so I can give you extra credit.  On the other hand, there are also plenty of comments like....

"Mitzenmacher's approach to teaching seems to be "present the material and not care about students' struggles.".... The material itself is quite interesting, but just be prepared for a professor like Mitzenmacher."  
Ouch. 
"I am baffled as to why Prof. Mitzenmacher is still allowed to teach this class. His lazy attitude toward teaching was frustrating and not conducive to learning."
Double-ouch. 

(I have all sorts of funny, sarcastic things to say here about not being "allowed to teach this class", but I'm sure they'd just get me in trouble later, so other faculty can mentally fill in their own joke here.)
 
To close it out, these seem like the best things to tell students who are thinking of taking my course:

"Good luck and enjoy the ride! Even though it almost killed me, I'm genuinely sad it's over."  
"Brace yourself."

Indeed.  

Tuesday, May 22, 2012

Non-travel

For the past few years, I've been the chair for one of the international review panels for Country X's research funding bodies.  (It's probably all a matter of public record, but no need to name Country X for this.)  I agreed to serve (and chair) the committee with one restriction -- I didn't want to fly out for an all day panel, which is apparently their standard approach.  Not that Country X isn't a wonderful destination -- were I single and/or without 3 children, I might well enjoy the chance to fly thousands of miles to Country X on their dime and spend a day or two hanging out and seeing the sights with nothing more stressful on the agenda than going through reviews for some research proposals.  But that's not the case.

Year 1 I think they were a little concerned, but I think now they're happy I'm willing to do it and are OK with the process.  Recently we had this year's meeting, over several hours on Skype, and it all worked just fine.  The size is about that of a small-ish NSF panel -- about a half dozen panelists, usually about ten or so proposals to review.  That's a very nice size for an electronic meeting -- I recognize it can get harder for multiple reasons as things get bigger.  I don't believe the lack of face-to-face presence changes the outcomes significantly -- whatever the sources of noise are, I don't think the noise is necessarily bigger with this approach.

On the plus side, we must have saved the funding agency on the order of $10,000 or more.  Air fare, hotel, etc. isn't cheap for an "international panel".  I'm sure they can find better uses for the money -- like supporting research!

I keep hoping to hear that at some point the NSF will experiment with an electronic as opposed to face-to-face panel, if only to see how it goes.  From Boston I can deal with taking an early flight to DC for a 1-day panel, but I really try to avoid 2-day panels now, and I'm aware what a drag the trip can be for west coast colleagues.  I think the NSF could corral more reviewers (like me) if serving on a panel was easier and less time-consuming, by which I really mean doesn't require a flight.