Monday, November 12, 2012

Peking University Report

I just returned from a trip to Peking University (PKU).  They have recently adopted CS:APP as the textbook for their course "Introduction to Computer Systems," (ICS) patterned after the course we teach at CMU, (the course for which CS:APP was originally written.)

They now require ICS for all CS majors.  Moreover, as part of an initiative by the president of the university, they are teaching it in a form where they have the usual lectures, but they also hold weekly recitation instructions taught by faculty members.  It is one of six courses being taught across the entire university in this format this term.  Here are some statistics for this term:

  • 167 students
  • 14 recitations sections (12 students each)
  • 14 faculty doing recitations
  • 8 faculty doing lectures
That's a lot of resources to devote to a single course!

Monday, June 11, 2012

Chinese Translations of CS:APP

In a recent blog post, I noted that 52% of all copies of the CS:APP that have been sold were in Chinese.  Prof. Yili Gong of Wuhan University did the translations for both the first and second editions of the book.  Prof. Gong has also been a valuable contributor to our errata.

I recently came back from a trip to China, where I gave lectures about CS:APP at both Peking University and Tsinghua University, both of which use the book in their courses.  Looking at our adoptions list, there are only 8 universities in China that we know of using CS:APP as a textbook.  Apparently, the vast majority of copies sold in China are being used by individuals for self study.

Wednesday, May 30, 2012

Who Reads CS:APP?

I gathered some data on the total sales of the various versions of CS:APP.  It's now in its second edition, and it has appeared in multiple languages:
  • English.  Including versions published in India (1st edition only) and China (1st and 2nd edition) for readers in those two countries
  • Chinese (1st and 2nd edition)
  • Korean (2nd edition)
  • Russian (1st edition)
  • Macedonian (1st edition)
All told, as of Dec. 31, 2011, a total of  116,574 books have been sold, across all editions, versions, and formats (paperback, hardcopy, e-book).  The following pie chart shows how this divides across the language categories (sorry, no statistics on Macedonian, but I imagine the numbers are fairly small):

One thing that's clear is that we're very popular in China: fully 52% of the total has been in Chinese, and another 15% has been the English version for the Chinese market.

Thursday, May 17, 2012

Update to the Bomb Lab

We've updated the Bomb Lab sources on the CS:APP site to address a problem that arises when students from previous semesters run their old bombs while the current instance of the lab is underway.

The Bomb Lab servers assign diffusions and explosions to Bomb IDs, rather than users, and Bomb IDs start over from scratch each term. Thus, if a student  who took the class last semester ran their old bomb while the lab was as underway this semester, then the explosions and diffusions from the old bomb would be incorrectly assigned to the current bomb with the same Bomb ID.

To address this, we've added a per-semester identifier, called $LABID,  to the Bomb Lab config file. Instructors can set this variable each term (for example $LABID="f12") to uniquely identify each offering. Any results from previous bombs with different $LABIDs are ignored.

Thanks for Prof. Godmar Bak, Virginia Tech, for pointing this out.

Monday, April 23, 2012

Update to Buffer Lab

We've uploaded another update to the Buffer Lab to fix a couple of issues.

(1) Some recent gcc builds automatically enable the -fstack-protector option. We now explicitly disable this by compiling the buffer bomb with -fno-stack-protector.

(2) In order to avoid infinite loops during autograding, the previous update from February 2012 introduced a timeout feature that was always enabled. However, this was a problem for students who were debugging their bombs in gdb. We now enable timeouts only during autograding.

Thanks to Prof. James Riely, DePaul University for pointing these out to us.

Tuesday, February 21, 2012

Updated Buffer Lab

We've updated the Buffer Lab on the CS:APP site to be more portable, more robust to infinite loops in student exploits, and more random during the nitro phase. Thanks to Prof. Godmar Back from Virginia Tech for identifying the issues and helping us with the solution.

Saturday, February 4, 2012

CS:APP Visits Africa

I am on a visit to Nairobi, Kenya as part of a project to create a test that we hope will be used worldwide to determine whether someone is qualified to be an entry-level programmer. You can read more about that from our CMU Press Release.

Shortly after arriving, we visited Strathmore University, where I gave a presentation about CS:APP.  There were students and faculty members from several area universities.  The talk went very well, with interesting and insightful questions from the audience.  Perhaps the most striking response occurred when I showed our  map of schools using CS:APP as a text book as of Jan. 1, 2012:

 What stood out on this map, especially for Kenyans, was that we don't have a single adoption on the African continent!  There was a lot of discussion about why that could be.  I wish or knew!  Better yet, I hope that schools in Africa will see the value in teaching about computer systems from a programmer's perspective.

Sunday, January 22, 2012

Map of Schools Using CS:APP

Using tools from Google for geocoding and for generating maps, we've created a
map displaying all of the schools we know of that are using CS:APP as a textbook.
Check out