We’re going to read a book together this semester: The Pragmatic Programmer, Andrew Hunt and David Thomas, Addison-Wesley, 2000.
“What?” you ask. “Read a book in a CS class? That’s strange.” Hey, this is college. Reading books is part of the job. I (Prof. Clarkson) first read this book almost 20 years ago right after graduating from college. It was a formative influence on me as a programmer. And not just me. The publisher’s website says:
For twenty years, the lessons from The Pragmatic Programmer have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology. This classic title is regularly featured on “Top Ten” lists, and many corporations issue it to their new hires.
In fact, there’s a 20th anniversary edition that is scheduled to be released this fall. It doesn’t matter whether you read the 2000 version or the 2019 version; either is fine for this class. The 2000 version will automatically be available in Canvas for you and charged to your bursar account; or, you can opt out of that and aquire the beta e-release of the 2019 version as you see fit. The 2000 version does have some mentions of the Internet or popular languages that might seem quaint by now, and honestly the masculine pronouns do grate on modern ears, but the rest is solid.
Your task is not just to read the book but to write a series of brief reflections on the reading and how it applies to your own experience.
“WHAT?” you ask. “Write in a CS class? That’s bizarre.“ Hey, this is college. Writing is part of the job. We’re not going to grade you on the quality of your writing—this isn’t a writing seminar—but we do ask you to honestly engage with the work.
These reflections are not meant to be burdensome. What’s important is that you read the book and reflect on the ideas in it; we believe doing so will plant seeds that grow to influence you for years to come.
Each reflection will be on one chapter of the book. (Except, we join the Preface with chapter 1.) You need to write a minimum of 250 words about how (some subset of) the material in that chapter relates to your own past programming experience. We ask that whenever possible you try to write about your experience in 3110, but if you want to write something about 2110 or a summer internship or a team project, that’s fine too.
We don’t want high school book reports: we already know what the book says. Rather, we want evidence that you have thought about how the ideas in the book connect to your own life.
The rubric is simple:
1 point: The reflection mentions content from the chapter and connects it to experience from the author’s own life. The reflection is at least 250 words.
0 points: No reflection was submitted, or the reflection was clearly a token effort.
There will be no partial credit.
Here’s when each reflection is due and what it covers:
|R1||Preface, and A Pragmatic Philosophy|
|R2||A Pragmatic Approach|
|R3||The Basic Tools|
|R5||Bend, or Break|
|R6||While You Are Coding|
|R7||Before the Project|
Note that the 2019 version of the book has one new chapter that is not included in the reflections above. Be sure to determine the reflection topics based on the name of the chapters, not their numbers.