Update 6.2.2009: I've received the list of students for the class. If you took TOP with me last year, your wiki account is unchanged (contact me if you forgot your userid or password). Otherwise, your wiki account id is first initial concatenated with last name (e.g., Adnan Aziz is aaziz) and password is your uteid (please update it immediately). Assignment 0 is due this Friday (i.e., 6.5.2009).
Update 6.1.2008: I've been told I will have the roster tomorrow (6.2.2009 - Tuesday), and I'll create accounts and mail each of you as soon as I receive the roster.
Note: As of 5.29.2009, I still don't have a list of student enrolled in this class. I've updated the due dates for assignments for 2009, but can't create your Wiki pages, so Assignment 0 is on hold. I'll be away over the weekend (5.29-5.31) and not able to read mail.
| ![]() | Adnan Aziz![]() 1-(512) 475-9774 ACES 6.120 |
The goal of this course is to read through Brian Kernighan and Rob Pike's book “The Practice of Programming” and thereby gain an understanding of techniques that make individual programmers more effective and productive. Here is the official syllabus.
There is an official website for the book, but Kernighan and Pike maintain a far superior site which includes source code for examples.
Kernighan teaches a class based on the PoP text; he has links to some wonderful readings.
Each of you will have a personal Wiki page which you will use to upload your homeworks; I will email you individually about the Wiki page. Detailed submission notes are linked here.
I will assign 9 assignments consisting of exercises from PoP. The homeworks will not be programming intensive-their goal is to make you read PoP in an organized manner. Grades will be assigned solely on the basis of performance on the homework.
HW is due by 11:59pm of the due date.
Due Friday, June 5, 2009
Read Chapter 1 and turn in answers to questions 1-1, 1-2, 1-4, 1-5, 1-6, 1-7, 1-9, 1-11. (For 1-6, do only the first part, i.e., don't experiment with different compilers.)
Due Tuesday, June 9, 2009
Read Chapter 2 and turn in answers to questions 2-2, 2-3, 2-5, 2-6, 2-9, 2-12, 2-14, 2-16. (For 2-9, implement it in C only.)
Due Sunday, June 21, 2009
Read Chapter 3 and turn in answers to questions 3-2, 3-3, 3-5, 3-6.
Due Sunday, June 28, 2009
Read Chapter 4 and turn in answers to question 4-8, and write a critique of the CSV library implementation in Section 4.2, and how the implementation in Section 4.3 addresses your critique.
Due Sunday, July 5, 2009
Read Chapters 5 and 6. For each piece of questionable code in Section 5.2 and 5.4, explain what's wrong with it. Turn in an answer to question 6-1. Read the extreme programming view of testing at http://www.extremeprogramming.org/rules.html and critique it.
Due Sunday, July 12, 2009
Read Chapters 7 and 8. Describe the steps K&P took to improve the performance of the spam filter example in Chapter 7. Turn in an answer to Exercise 7-3. For each piece of questionable code in Chapter 8, write a 1-3 sentence explanation of what's wrong with it. (There are 15 instances of questionable code; you don't have to copy out the entire listing.)
Due Sunday, July 26, 2009
Read Chapter 9 and write a summary of what you learned - 1 to 3 paragraphs per section.
Due Sunday, Aug 2, 2009