Exercises in Programming Style: 2nd Edition (Paperback) book cover

Exercises in Programming Style

2nd Edition

By Cristina Videira Lopes

Chapman and Hall/CRC

346 pages

Purchasing Options:$ = USD
Paperback: 9780367350208
pub: 2020-07-24
SAVE ~$8.99
Available for pre-order. Item will ship after 24th July 2020
Hardback: 9780367360207
pub: 2020-07-24
SAVE ~$22.60
Available for pre-order. Item will ship after 24th July 2020

FREE Standard Shipping!


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

About the Author

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.

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming / Games
COMPUTERS / Computer Science
COMPUTERS / Programming / General
COMPUTERS / Programming Languages / General
COMPUTERS / Software Development & Engineering / General
COMPUTERS / Software Development & Engineering / Systems Analysis & Design
COMPUTERS / Programming Languages / Python
COMPUTERS / Software Development & Engineering / Tools