Wednesday, September 06, 2017

Simulated Annealing for JPEG Quantization

I have a new paper on the arxiv (web page describing results, and full version** available) with two Harvard undergrads, Max Hopkins and Sebastian Wagner-Carrena (who may both be applying for grad school, and who are both great, hint, hint everybody...), titled "Simulated Annealing for JPEG Quantization", on finding better default JPEG quantization tables.   This work started as their class project for my graduate class on "Algorithms at the end of the wire" last year, and they stuck with it through the year and into the summer to hone it to a paper.  I'm always excited when class projects to turn into papers, especially when it's done by undergrads.

Here's the story of the paper.  To start, as the wikipedia page on JPEG says, in JPEG after you transform 8 by 8 pixel blocks into 64 coefficients in the frequency domain, you "quantize" the coefficients -- that is, divide each coefficient by a fixed number (with a different number for each coefficient), and then round.  This reduces the amount of information needed to represent the block, at the expense of some loss of fidelity.  In particular, high frequency coefficients are quantized with much higher numbers, so that most high frequency coefficients become 0, further improving available compression.  This is generally OK because reducing the higher frequency components has less of an effect on the human interpretation of the image than reducing the lower frequency components.  

There are "default" quantizations tables built into the JPEG standard.  Back when the powers that be developed the original JPEG quantization tables, they were essentially choosing them "by hand", with much less to go on today about models for the human visual system, and much less computing power available.  These days, we have better models, or better said actual metrics, of how "good" a compressed image is with respect to the original in terms of the human visual system, and a great deal more computing power.  This suggests we should be able to effectively explore the very large space of possible JPEG quantization matrices using heuristic techniques, such as simulated annealing.  This idea has been considered before, but we seem to be at a much better point in terms of metrics and computation now than with past attempts.   

Of course it's still not so easy (it is a 64-dimensional space, and the metrics have their own issues), and there was a good amount of work and testing to be done (and some insight to be gained).  But we found what we think are clearly some better "default" JPEG tables (that we've made available at the web page above), and because of the way JPEG works, you can add them in to your JPEG file to use in place of the "standard default".  So it's all backward-compatible, ready-to-use, no need to change JPEG, which is ubiquitous enough that actual changes are unlikely to happen.  Any experts out there, go ahead and try them out and let us know what you think.  Also, I think the work generally opens the door to others to aim for additional improvements, using different metrics and/or different heuristic techniques.

** The arxiv version is, strangely, not the full version.  Apparently, arxiv has "size limits", and because we're doing side-by-side comparison of many images, apparently we're above the size limit, and they wouldn't give us an exception.  I hadn't known that could happen on arxiv, something to keep in mind in the future.  

Tuesday, September 05, 2017

Grace Hopper College

I hadn't seen the news about Yale renaming Calhoun College to Hopper College;  it just popped into one of my newslines here in the New York times.  I guess I hadn't seen that it was in the works months and months ago, as described in this Yale News article.  Consider me behind the times, but wanting to spread the news in case others hadn't seen it.

That's just awesome.

Saturday, August 12, 2017

Best Post I've Read on the Google Memo

After the shout-out to Meena, she suggested I might have more to say on the issue of the Google memo.  I (like I imagine so many others) have been following the array of follow-up articles and posts since this issue erupted.  There is so much to that needs to be said, and I feel that I am not the best person to say it -- what so many others have said in response.  In fact, I'm sad and angry that collectively so many of us are spending so much time thinking about this memo -- to counter that, my hope is that just having the issue of diversity prominently in the news and in the tech-sphere mindset will lead to more discussions and action that will result in actual progress.  

But maybe I have a few things to say, and a pointer to someone who I think has said it best.

1)  Anyone who somehow thinks there doesn't remain active bias against women in mathematics, engineering, and computer science hasn't been talking to actual women in these fields.

2)  In my opinion (and I owe this expression of thought to David Andersen, although these are my words), this memo wasn't about "the science".  My opinion is that the memo author went in with a prior belief of the truth, and then found some science that (at best, does a very poor job) of justifying what he believes is the truth.  That is not how science works.  (David called this "confirmation bias in action".)

3)  While there have been many good posts on the topic, I found this post today says it best, and encourage you all to read it.

Saturday, July 22, 2017

Current Harvard Oddness

It's summer.  And I'm now on sabbatical.  So perhaps I shouldn't care about strange Harvard politics goings-on, but I can't help it.

Here's the tl;dr version, which is already too long.  (What's the recursive form of tl;dr?)  Sometime back, the powers-that-be at Harvard decided that they didn't like the Harvard final clubs (Harvard's kind-of-like fraternities, "social clubs" that have been around for ages, but that are not in any official way affiliated with Harvard).  There's plenty of reason not to like them, but at least initially concerns about sexual assault seemed to be the motivating factor.  So the powers-that-be decided that if you belonged to some private single-sex organization, they would not let you be captain of a sports team, or be approved by Harvard for a Rhodes fellowship, or things like that.  A number of faculty -- perhaps most notably, Harry Lewis -- objected to this policy, on multiple grounds.  (Perhaps one large one is that there are many private single-sex organizations that are quite positive, and it seems odd to put all these organizations under the same blanket policy.)  So after it was clear that there was some significant faculty objections, for a bit it was temporarily shelved, and a new committee put in place to make recommendations.

Several weeks deep in the summer, the report comes out, suggesting policies even harsher and more draconian than the original plan.  And the reasons for this outcome, from the latest-breaking reporting, seem at least somewhat confused.

There's now two issues, seemingly only tangentially related, but that have come together here.  The first relates to the suggested policies themselves.  But the second relates to how Harvard is governed -- can these types of disciplinary regulations for the students come into being without a vote of the full faculty.  The first, rightly, gets more attention, but as a member of the faculty, the second is of significant importance to me, and relates to a historical trend of taking power (or at least trying to take power) away from the faculty that seems consistent since I've arrived at Harvard.

I could write pages and pages about this, but fortunately for me (and you), the Crimson and Harry Lewis already have.  So for those who care enough to find out more, here are links.  The most recent Crimson piece, Seven Votes, suggests there's more behind the latest report that is worth knowing about, and probably is as good a starting point as any.  All of Harry's posts are interesting, but perhaps the best are where Harry relays his remarks from faculty meetings -- they're great to read, but I admit, it's much more fun to watch him deliver them in person.

Crimson articles (that last week or so)

Key Events in Harvard's Social Groups Sanctions Policy
Faculty Committee Recommends Social Groups be 'Phased Out'
Social Group Ban Revives Faculty Concerns Over Governance
Seven Votes    **** [most recent, and controversial]

Harry's blog (chronological order, back to about November).

My remarks to the faculty in support of the nondiscrimination motion
Why History Matters
My remarks to the FAS meeting of December 6th, 2016
Further Q&A on the motion for the December 6th meeting
The State of the Debate
Withdrawing the motion
Guest post on nondiscrimination
Where the rubber meets the road
How it would probably work in practice
Professor Haig's motion against compelled oaths
More about the implementation
I know it's a dumb question but
This week's development in USGSO policy
Harvard's nondiscrimination policy
The new policy about social clubs
Further comments on the social club policy

Friday, July 07, 2017

Mitzenmacher and Upfal, 2nd Edition

The word is that the 2nd edition of our book is now (finally) available/in stock at Amazon.  You can tell it's the 2nd edition, because the "Alice cover" is now in blue -- I think it's a good look. But even more than that, there's 100+ pages of new material, on things like VC dimension and Rademacher complexity, power laws, normal distributions, cuckoo hashing, algorithmic versions of the Lovasz local lemma, and more.  More exercises and such, too. (Of course, it's still got the good old stuff, including standards like Chernoff bounds, balls and bins, the probabilistic method, and so on.)  So if you've never bought it, now is the time to buy, and if you have bought it, give the old edition to a friend and buy the new version for yourself.

If you're getting it from Amazon, here's a friendly link below, which will give me some Amazon credit.  Thanks!


Monday, June 26, 2017

STOC General Comment Page

The 2017 STOC is over, and I thought it went very well.  The new format ran with what seemed to me to be minimal to non-existent glitches, and overall it sounded like people enjoyed it.  The local arrangements were terrific -- much much thanks to Hamed Hatami and Pierre McKenzie who made the whole thing look easy.  (It's not.)   I'd have liked a few dozen more people, but I'm hoping we'll see some positive momentum going into next year.

A heads-up to mark you calendars now that STOC 2018 will be held June 23-27, in Los Angeles.

I'm putting this post up to see if anyone wants to make general comments about the TheoryFest/STOC 2017 experience.  Feedback is always useful, and if there's any constructive criticism and/or wild enthusiasm for any parts of the 2017 STOC, we'll keep that in mind as we go forward next year.  Please, however, be respectful to those who did the work of putting everything together.

And for those who went commenting here doesn't absolve you from filling out the survey that will be sent out, though!


Wednesday, May 17, 2017

Last Week For STOC Sign-Ups

A reminder that this year's STOC is supersized, with (completely in the STOC package) multiple workshops, tutorials, and special speakers.   But for those of you (like me) who put these things off until the last minute, the last minute is now actually here.

The hotel reservation deadline is Friday, May 19.  Again, here is the link for information.  If you're looking to lower the hotel cost, we have a page for room sharing.

Finally, early registration ends Sunday, May 21.  Here is your final link for info.

Wednesday, May 10, 2017

Super-Important Things to Do Right Now for STOC 2017

STOC 2017 is just around the corner, which means that several deadlines are just around the corner.

The student travel support request deadline is this Thursday, May 11.   Here's the link to the application.

The hotel reservation deadline is Friday, May 19.  Again, here is the link for information.

Finally, early registration ends Sunday, May 21.  Here is your final link for info.

We'll see you there!


Tuesday, April 18, 2017

STOC Theory Fest Announcements

There's a lot of new information up at the STOC web page http://acm-stoc.org/stoc2017/ about the amazing theory fest June 19-23 in Montreal.  In particular, most importantly --

Conference Registration is OPEN

Also
- The STOC program is posted.     
- The schedule of invited paper talks is posted.
- There is a call for posters.

Astoundingly, even with this action-packed five-day program schedule, we've kept registration prices way low -- $380 US if you register early for ACM members.  (You can conveniently register in US or Canadian dollars.)

Take a look at the program at http://acm-stoc.org/stoc2017/stocprogram.html ;  you'll see that you really want to be there this summer.  Then go to http://acm-stoc.org/stoc2017/registration.html to register.


Thursday, February 23, 2017

SIGACT Distinguished Service Prize Call, 2017

Call for Nominations
2017 SIGACT Distinguished Service Prize

The Theory community benefits in many ways from the dedicated service, above and beyond the call of duty, of many of its members. Among other contributions, the field's members underpin the operation of conferences, journals, prizes, funding agencies, and other community activities, help ensure funding for the field, and promote the recognition of the field by external communities. The SIGACT Distinguished Service Prize is intended to recognize and promote their contributions, as well as to raise awareness of the need for and importance of such service, for the health of our community.

The prize is given annually to an individual who has made substantial service contributions to the Theoretical Computer Science community. (From 2002 to 2012, the award was given biennially.) It is presented at the ACM Symposium on Theory of Computing, and comes with a $1,000 prize, a travel grant of up to $700 to attend the conference, and complimentary conference registration.

Eligibility

The prize can be awarded to an individual for a single contribution or for a series of contributions over a career. All living individuals are eligible with the exception of previous awardees, the sitting SIGACT Chair, an individual who nominated a majority of the current selection committee members, or a member of the current selection committee.

Selection Committee

The winner is selected by a three-member committee. The SIGACT chair appoints the selection committee to serve staggered terms over three award cycles. The 2017 selection committee members are László Babai, Lance Fortnow (chair) and Avi Wigderson.

Nominations

Nominations can be made by any member of the Theory of Computing community and should contain a statement of no more than 500 words explaining why the candidate deserves the award. The nomination can also include an additional separate listing of service activities, additional support letters, and other supplemental material such as a pointer to the candidate's CV. The nomination must include the name, affiliation and e-mail address of the nominator. Nominations are to be submitted electronically in PDF format by April 2, 2017, to the chair of the selection committee, Lance Fortnow, at fortnow@cc.gatech.edu. Please put "SIGACT Distinguished Service Award Nomination" in the subject line.

Past Winners


  • 2016: László Babai
  • 2015: Avi Wigderson
  • 2014: Lance Fortnow
  • 2013: Lane Hemaspaandra
  • 2012: Sampath Kannan
  • 2010: Hal Gabow
  • 2008: Richard Karp
  • 2006: Tom Leighton
  • 2004: Rockford J. Ross
  • 2002: Alan Selman
  • 2001: Michael Langston
  • 2000: S. Rao Kosaraju
  • 1999: Fred S. Roberts
  • 1998: Ian Parberry
  • 1997: David S. Johnson

Friday, December 23, 2016

Godel Prize 2017 Call

The call for nomination for the 2017 Godel Prize is up.  The call is available at http://madhu.seas.harvard.edu/Announce/Goedel2017CFN.html and will be up on the SIGACT web page shortly.  Here's much of it -- key date, February 15, 2017.

The Gödel Prize 2017 - Call for Nominations

Deadline: February 15, 2017
The Gödel Prize for outstanding papers in the area of theoretical computer science is sponsored jointly by the European Association for Theoretical Computer Science (EATCS) and the Association for Computing Machinery, Special Interest Group on Algorithms and Computation Theory (ACM SIGACT). The award is presented annually, with the presentation taking place alternately at the International Colloquium on Automata, Languages, and Programming (ICALP) and the ACM Symposium on Theory of Computing (STOC). The 25th Gödel Prize will be awarded at the 49th Annual ACM Symposium on Theory of Computing, to be held from 19-23 June, 2017 in Montreal, Canada.

The Prize is named in honor of Kurt Gödel in recognition of his major contributions to mathematical logic and of his interest, discovered in a letter he wrote to John von Neumann shortly before von Neumann's death, in what has become the famous "P versus NP" question. The Prize includes an award of USD 5,000.

Award Committee: The 2017 Award Committee consists of  Moses Charikar (Stanford University), Orna Kupferman (Hebrew University), Kurt Mehlhorn (Max Planck Institute), Giuseppe Persiano (Università di Salerno), Omer Reingold (Stanford University) and Madhu Sudan (Chair, Harvard University).

Eligibility: The 2017 Prize rules are given below and they supersede any different interpretation of the generic rule to be found on websites of both SIGACT and EATCS. Any research paper or series of papers by a single author or by a team of authors is deemed eligible if:

  • The main results were not published (in either preliminary or final form) in a journal or conference proceedings before January 1st, 2004.
  • The paper was published in a recognized refereed journal no later than December 31, 2016.
The research work nominated for the award should be in the area of theoretical computer science. Nominations are encouraged from the broadest spectrum of the theoretical computer science community so as to ensure that potential award winning papers are not overlooked. The Award Committee shall have the ultimate authority to decide whether a particular paper is eligible for the Prize.

Nominations: Nominations for the award should be submitted by email to the Award Committee Chair: madhu@cs.harvard.edu. Please make sure that the Subject line of all nominations and related messages begin with "Goedel Prize 2017." To be considered, nominations for the 2017 Prize must be received by February 15, 2017.

Any member of the scientific community can make nominations. The Award Committee may actively solicit nominations. A nomination should contain a brief summary of the technical content of the paper(s) and a brief explanation of its significance. A printable copy of the research paper or papers should accompany the nomination. The nomination must state the date and venue of the first conference or workshop publication, or state that no such publication has occurred. The work may be in any language. However, if it is not in English, a more extended summary written in English should be enclosed.

To be considered for the award, the paper or series of papers must be recommended by at least two individuals, either in the form of distinct nominations, or one nomination including recommendations from at least two different people.  Additional recommendations may also be enclosed and are generally useful. The Award Committee encourages recommendation and support letters to be mailed separately, without being necessarily shared with the nominator(s). The rest of the nomination package should be sent in a single email whenever possible. Those intending to submit a nomination should contact the Award Committee Chair by email well in advance. The Chair will answer questions about eligibility, encourage coordination among different nominators for the same paper(s), and also accept informal proposals of potential nominees or tentative offers to prepare formal nominations. The committee maintains a database of past nominations for eligible papers, but fresh nominations for the same papers (especially if they highlight new evidence of impact) are always welcome.

Tuesday, December 20, 2016

Knuth Prize 2017 Call

The call is going out for the 2017 Knuth Prize.  The call will be up on the SIGACT Web page shortly, but until it shows up there here's a pdf.   Key date:  deadline is February 15 for nominations.

Key info (but please read the actual call for full details):
 
The Donald E. Knuth Prize for outstanding contributions to the foundations of computer science is awarded for major research accomplishments and contributions to the foundations of computer science over an extended period of time.

Nomination Procedure: Anyone in the Theoretical Computer Science community may nominate a candidate. To do so, please send nominations to : knuth.prize.2017@gmail.com with a subject line of Knuth Prize nomination by February 15, 2017. The nomination should state the nominee’s name, summarize his or her contributions in one or two pages, provide a CV for the nominee or a pointer to the nominees webpage, and give telephone, postal, and email contact information for the nominator. Any supporting letters from other members of the community (up to a limit of 5) should be included in the package that the nominator sends to the Committee chair. Supporting letters should contain substantial information not in the nomination. Others may endorse the nomination simply by adding their names to the nomination letter. If you have nominated a candidate in past years, you can re-nominate the candidate by sending a message to that effect to the above address. (You may revise the nominating materials if you desire).

Friday, October 28, 2016

Postdocs (Rabin and other) for this year


The Theory Group at Harvard has put out its ad for postdocs again this year.  It will be our second year for the Rabin Postdoc in theoretical computer science. "Rabin Fellows will be provided with the opportunity to pursue their research agenda in an intellectually vibrant environment with ample mentorship. While interaction with Harvard faculty, students, and visitors is encouraged, Rabin Fellows are free to pursue their own interests."  We also have open postdoc calls for the theory group, for the Center for Research on Computation and Society, and for the Institute for Applied and Computational Science.  More information on all these postdoc opportunities can be found here.  Candidates are encouraged to apply by December 1, although that's not a hard deadline.  Generally, we ask people what postdocs they're interested in, so you should only have to send in your materials once even if you're interested in more than one of these opportunities.


Tuesday, August 09, 2016

FOCS 16 Workshops/Tutorials Call for Proposals

I'm told that there's a call for proposals up for workshops/tutorials for FOCS 16.
Here's a link to the call for those who are interested....

Deadline is August 31, end of the month.

Wednesday, July 06, 2016

STOC Theory Fest 2017 (Montreal June 19-23)

As SIGACT chair I announced at the STOC’16 business meeting that starting in 2017, STOC will turn into a 5-day event, a Theory Fest. This idea was discussed at some length in a special session at FOCS 2014 and the business meeting at STOC 2015. Now the event is being planned by a small group (Sanjeev Arora, SIGACT ex-chair Paul Beame, Avrim Blum, and Ryan Williams; who also get guidance from me and STOC’17 PC chair Valerie King). We’re  setting up committees to oversee various aspects of the event.

Below is a brief announcement from the organizing group about their plans! Please feel free to write your suggestions here, though the outline below has been arrived at after a fair bit of deliberation and consultation.

Update:   Here is the web page for STOC 2017:  (http://acm-stoc.org/stoc2017/)

Michael.

------
We’re excited to bring you the Theory Fest in Montreal, June 19-23 2017!

The following are the major features (caveat: subject to tweaking in coming years):

(i)  STOC talks go into 3 parallel sessions instead of two.  Slight increase in number of accepts to 100-110.
(ii)   STOC papers also required to be presented in evening poster sessions (beer/snacks served).
(iii) About 9 hours of plenary sessions, which will include: (a) Three keynote 50-minute talks (usually prominent researchers from theory and nearby fields) (b)  Plenary 20-minute talks selected from the STOC program by the STOC PC ---best papers, and a few others. (c) Plenary 20-minute talks on notable papers from the broader theory world in the past year (including but not limited to FOCS, ICALP, SODA, CRYPTO, QIP, COMPLEXITY, SoCG, COLT, PODC, SPAA, KDD, SIGMOD/PODS, SIGMETRICS, WWW, ICML/NIPS), selected by a committee from a pool of nominations. (Many nominees may be invited instead to the poster session.)
(iv) 2-hour tutorials (three in parallel).
(v)    Some community-building activities, including grad student activities, networking, career advice, funding, recruiting, etc.
(vi)   A day of workshops; 3 running in parallel. (Total of 18 workshop-hours.)

Our hope is that workshop day(s) will over time develop into a separate eco-system of regular meetings and co-located conferences (short or long). In many other CS fields the workshop days generate as much energy as the main conference, and showcase innovative, edgy work.

Poster sessions have been largely missing at STOC, but they have advantages: (a) Attendees can quickly get a good idea of all the work presented at the conference (b) Grads and young researchers get more opportunities to present their work and to interact/network, fueled by beer and snacks. (c)Attendees get an easy way to make up for having missed a talk during the day, or to ask followup questions. (d) Posters on work from other theory conferences broadens the intellectual scope of STOC,

We invite other theory conferences to consider co-locating with the Theory Fest. To allow such coordination, in future the location/dates for the Theory Fest will be announced at least 18 months in advance, preferably 2 years. Even for 2017 it is not too late yet.  

Finally, we see the Theory Fest as a work in progress. Feedback from attendees will be actively sought and used to refashion the event.
  

Wednesday, June 01, 2016

STOC 2017 (and STOC 2016)

I'm starting to get asked about STOC 2017 dates -- we recently executed the hotel contract, and STOC will be June 18-23 in Montreal.  (It will really "start" the morning of the 19th, but we expect people will be getting to the hotel the 18th.)  Yes, that 5 days of STOC -- expect more announcements about how we'll be filling up those 5 days coming up.

And just a reminder -- STOC 2016 is around the corner, June 19-21, with a joint STOC/SoCG workshop and tutorial day on June 18.  The STOC 2016 page has more info, and even if you haven't signed up, you can still register as a walk-in on-site. 

Monday, May 30, 2016

Class Evaluations, Again

I've not been blogging much, but I have an excuse now that class evaluations have arrived.
  
By posting about the evaluations, the students know I read them.  And perhaps if any future students see this it will inspire them to try to make helpful comments, or at least fill out the evaluation.  This semester I taught the undergraduate Algorithms and Data Structures course, which at a bit over 170 students is the largest class I've taught at Harvard (and the largest the class has been since I've been here).  Let's see how I did on a class this big.

But before beginning, a word from our administration: 
Again this semester, some students may have accessed their course grades before completing their course evaluations. When this has happened in the past, we determined that the effect on evaluations was statistically undetectable, if any. Nonetheless, we wish to assure you that we understand that this semester's Q evaluations will not be 100% comparable to past terms and that the administration will take that fact into consideration when viewing the data.
If anyone can decipher that bit of bureaucratese for me,  please do.  (I admit, I found it amusing.)

Now, my favorite comment of the year:
Mitzenmacher can be a bit intimidating at times (I'm pretty sure he's the only professor under 40 years old whose class I've taken that I'm not on a first-name basis with)...
Whoever you are, you anonymous student you, it's wonderful that somehow you think I'm still under 40.  That was, well, a while ago...   (Also, you can call me Michael.  Mitzenmacher is hard say, and spell.  Maybe calling me Michael will make me seem less intimidating.)

A close second:


Take this course if you want to be good at CS. I also got a girlfriend out of it, so if you're looking for love, this is definitely the class you should take. Chicks dig algorithms.
Yes, they do.  And congratulations.  But seriously, please don't call them "chicks".  Some women find the term offensive, and I would like women in the class to feel welcome and comfortable.  It also makes you seem like you're living in the wrong decade.      

Another good one.  

Definitely the legend his former students make him out to be.
Just to clear, I interpret that as at best a neutral statement, not necessarily a positive one.  (The rest of the evaluation, I think, backs my interpretation.)  On an obviously more negative note: 

He is sarcastic and unhelpful. He even goes out of his way to be snarky and rude to students...
I appreciate the concern, but don't worry, I'm not going out of my way at all... the sarcasm and snark really just come naturally!

And apparently, it's rubbing off.  

This course could be improved by having longer and more difficult problem sets. Having tougher exams would be better too.
Hey, I don't think you've heard.  I'm supposed to be the sarcastic and snarky one. (The student's whole evaluation was like this.  Very funny and original -- surprisingly, nobody's ever done that before, that I can remember.)  At least a partial explanation for the evaluation above, perhaps:  
Piazza was riddled with dumb anonymous question (e.g., "Should my program handle negative ints?" "No, as stated in the assignment."). I think it should be course policy to delete these questions rather than give terse answers; each one causes hundreds of people to receive email notifications and spend tens of seconds digesting the poster's helplessness. I estimate that each poster is choosing to waste about two hours of our collective time rather than reread the assignment or email a TF.
Thank you for this comment;  it's a rare comment that addresses a challenging issue.  I continue to be ambivalent about Piazza.  It's very useful for students to be able to ask questions and get reasonably timely responses.  On the other hand, the ease of being able to ask questions leads to the issue you raised, as well as other similar problems.  (Students don't see many private questions of the form, "Is this an OK answer to this question...")  I'm not sure deleting the question is the correct response;  I can only imagine the reaction.  Already, people find my terse answers to some questions off-putting, or even "sarcastic" and "snarky"....
  
Now for some other useful comments.   
better handwriting would be nice.
Not the first time I've heard that complaint, although surprisingly it was rarely mentioned this year;  I did try to be better at the board.  But it's good to be reminded, frequently.    

Maybe integrate into Canvas or disregard it completely, it was weird having some stuff in one place and other stuff on the other.
Thank you for the useful comment.  Canvas is the tool we are being pushed at Harvard to use for course management, and for a class of this size, I felt forced to use it;  having students e-mail in assignments just wasn't going to be functional.  But Canvas really, really sucks, and caused at least as many problems as it solved (probably more).  I'd have liked more comments about Canvas, or really some advice on whether it's worth using at all.  

An odd comment: 
really sucks not having a good textbook for those of us who learn better on our own than in lecture;
Comments like this always make me wonder.  I do not require a textbook, but recommend both CLRS and Kleinberg-Tardos if students want one;  both books line up reasonably well with probably 2/3 of the course.  Did this student buy one of those?  I don't know.  I also find most things I teach have pretty good articles available on Wikipedia.  Many students in their comments appreciated the lectures (and the lecture notes), but for those who don't, there are certainly other resources available.   
  
Now some good responses to the question:  What did you learn?  How did this course change you?
Algorithms are fun! I'm good at theory!
Awesome!   
...I now view computer science as more than just coding. It is the art of problem-solving.
Awesome! 

Some truth in advertising:
Very useful course for anyone who wants to learn how to solve problems in the most computationally efficient way possible. That said, this course is not for everyone. Some will find it difficult.
Some, indeed.  Perhaps I can find another student who can clarify the above description.... 
This class is insanely hard (like really, really, really hard); don't let anyone tell you otherwise. I spent maybe 40-50 hours per week on the psets, and the tests (the midterm and final) were brutal.
To be fair, I don't think most students are spending 40-50 hours per week on the problem sets, and the self-reported numbers suggest not also.  But point taken, the class is hard.  (Some will find it difficult.)   

As usual, the overall summary is that the reviews contain a mix of positive and negative.  Let's end with some more positive ones, so I can think positive thoughts about the fact I'll be teaching this very large class again next year: 
Really interesting course material presented clearly. There was a nice balance of breadth and depth, and I liked the focus on randomized algorithms and the last couple lectures on topics tying the course together. Such a good class - thank you!
 No, no -- thank you!
Mitzenmacher is very good at responding quickly on Piazza, and often his responses are quite funny.
Thank you!  Some people apparently don't seem to get our sense of humor.  Same thing happens at home with the wife and kids -- they don't think I'm funny either.  
Professor Mitzenmacher is a great lecturer and provides lots of insight into algorithms. Problem sets are very well written, and most if not all problems are very thought-stimulating and are an apt level of difficulty. I also enjoyed the programming assignments -- it was great to physically code things and get a hands-on approach to the algorithms we learned.

For programming assignments 2 and 3, I would have hoped that Professor Mitzenmacher grade them as well--the TFs seem to be following a rubric and it is difficult for them to reward other inisghts and rather take off many points for more minor issues.
Thank you for the nice comments!  I'm glad you were happy with my grading of the first programming assignment, but you really want me grading all of them???  (Hmmm... actually, maybe I'll think about grading PA3....)
Lastly, professor Mitzenmacher is incredibly nice and fun to talk to if you get the chance.
Thank you!  But please, don't let the secret out....

Let's end with this summary, answering what you would want to tell future students:  
You probably have to take this. Cheer up! First of all, it's not nearly as bad as everyone says...
Thank you, I think?***



(***This last backhanded compliment reminds me of a joke from when I was a kid, quoting from https://en.wikipedia.org/wiki/F_Troop
Another running gag involves dialogue between Sergeant O'Rourke and Agarn. In many episodes O'Rourke says to Agarn, "I don't know why everyone says you're so dumb". After several lines of dialogue later, and occasionally after a commercial break, Agarn finally replies, "Who says I'm dumb?".
 )