The first edition of Exercises in Programming Style was honored as an ACM Notable Book and praised as "The best programming book of the decade." This new edition retains the same presentation but has been upgraded to Python 3, and there is a new section on neural network styles.
Using a simple computational task (term frequency) to illustrate different programming styles, Exercises in Programming Style helps readers understand the various ways of writing programs and designing systems. It is designed to be used in conjunction with code provided on an online repository. The book complements and explains the raw code in a way that is accessible to anyone who regularly practices the art of programming. The book can also be used in advanced programming courses in computer science and software engineering programs.
The book contains 40 different styles for writing the term frequency task. The styles are grouped into ten categories: historical, basic, function composition, objects and object interactions, reflection and metaprogramming, adversity, data-centric, concurrency, interactivity, and neural networks. The author states the constraints in each style and explains the example programs. Each chapter first presents the constraints of the style, next shows an example program, and then gives a detailed explanation of the code. Most chapters also have sections focusing on the use of the style in systems design as well as sections describing the historical context in which the programming style emerged.
Table of Contents
Part 1 Historical
Part 2 Basic Styles
Part 3 Function Composition
Part 4 Objects and Object Interaction
Part 5 Reflection and Metaprogramming
Part 6 Adversity
Part 7 Data-Centric
Part 8 Concurrency
Part 9 Interactivity
Part 10 Neural Networks
Cristina (Crista) Lopes is a Professor of Informatics at the Donald Bren School of Information and Computer Sciences, University of California, Irvine. Her research focuses on software engineering for large-scale data and systems. Early in her career, she was a founding member of the team at Xerox PARC that developed Aspect-Oriented Programming and AspectJ. Along with her research program, she is also a proli□c software developer. Her open source contributions include acoustic software modems, and the virtual world server OpenSimulator. She is a co-founder of a company specializing in online virtual reality for early-stage sustainable urban redevelopment projects. She developed and maintains a search engine for OpenSimulator-based virtual worlds. Dr. Lopes has a PhD from Northeastern University, and MS and BS degrees from Instituto Superior T□ecnico in Portugal. She is the recipient of several National Science Foundation grants, including a prestigious CAREER Award. She claims to be the only person in the world who is both an ACM Distinguished Scientist and Ohloh Kudos Rank 9.