Reflection Assignments

The Pragmatic Programmer We’re going to read a book together this semester: The Pragmatic Programmer, Andrew Hunt and David Thomas, Addison-Wesley, 2000.

The Book

“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 Reflections

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.

Assessment

The rubric is simple:

There will be no partial credit.

Schedule

Here’s when each reflection is due and what it covers:

Number Chapter(s) Due
R1 Preface, and A Pragmatic Philosophy
R2 A Pragmatic Approach
R3 The Basic Tools
R4 Pragmatic Paranoia
R5 Bend, or Break
R6 While You Are Coding
R7 Before the Project
R8 Pragmatic Projects

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.