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.
Author(s): Cristina Videira Lopes
Edition: 2
Publisher: CRC Press
Year: 2020
Language: English
Commentary: True PDF
Pages: 336
Tags: Programming;Python;Software Engineering;
Cover
Half Title
Title Page
Copyright Page
Dedication
Contents
Preface to the Second Edition
Preface to the First Edition
Prologue
Author
Part I: Historical
Chapter 1: Good Old Times
Chapter 2: Go Forth
Chapter 3: Arrays
Part II: Basic Styles
Chapter 4: Monolithic
Chapter 5: Cookbook
Chapter 6: Pipeline
Chapter 7: Code Golf
Part III: Function Composition
Chapter 8: Infinite Mirror
Chapter 9: Kick Forward
Chapter 10: The One
Part IV: Objects and Object Interaction
Chapter 11: Things
Chapter 12: Letterbox
Chapter 13: Closed Maps
Chapter 14: Abstract Things
Chapter 15: Hollywood
Chapter 16: Bulletin Board
Part V: Reflection and Metaprogramming
Chapter 17: Introspective
Chapter 18: Reective
Chapter 19: Aspects
Chapter 20: Plugins
Part VI: Adversity
Chapter 21: Constructivist
Chapter 22: Tantrum
Chapter 23: Passive Aggressive
Chapter 24: Declared Intentions
Chapter 25: Quarantine
Part VII: Data-Centric
Chapter 26: Persistent Tables
Chapter 27: Spreadsheet
Chapter 28: Lazy Rivers
Part VIII: Concurrency
Chapter 29: Actors
Chapter 30: Dataspaces
Chapter 31: Map Reduce
Chapter 32: Double Map Reduce
Part IX: Interactivity
Chapter 33: Trinity
Chapter 34: Restful
Part X: Neural Networks
Chapter 35: Dense
Chapter 36: Dense
Chapter 37: Bow Tie
Chapter 38: Neuro-Monolithic
Chapter 39: Sliding Window
Chapter 40: Recurrent
Index