This book is an adjunct to Polymorphism: As It Is Played.
ISBN: 978-1-940113-06-7
Available at Amazon.com
This Companion volume to Polymorphism: As It Is Played delves deeper into some of the ideas presented there. It also presents several additional case studies that are interesting in their own right, but might be employed in the Polymorphism Challenge. The Doctor presents a number of Big Ideas about software development.
These Big Ideas of software development will aid you, as a student or instructor, to improve your skill dramatically. Explore parsing, simulation, simple games and more.
While polymorphic coding is still a main focus, the ideas here will take you beyond.
1 + 1 < 2
Coding Ideas and Style
Structure
Stories, Additional Stories, Alternate Stories
Test, Test, Testing
In Praise of Études
Yet Another Calculator
Yet Another Project
The Polymorphism Challenge
Your Turn
Recursive Descent
The Animal Game
Simulation
Building Software: Work and Fun
More Stories
Big Ideas
More for Instructors
Notes
Readings
There are some things I didn't include in Polymorphism: As It Is Played to keep the book short and simple. It provides only the main line path through the material. Here I will provide additional information, hints, exercises, ideas, tricks, and rants. I also admit that I conceived and built the calculator project myself. I can't blame my students for any flaws. I'll reveal a few flaws here, in fact. The project was used several times over the years. The resulting code was a bit different each time. This is not a correction to the first book, as the flaws are instructive to the reader, and aid learning when discovered and followed up. There are also some important ideas implicit in the code and the process explained in Polymorphism that some might miss. They can be vital lessons for the budding programmer.
I often told my students that it wasn't my job to teach them what I knew, since much of that was already obsolete, even garbage. Instead it was to show them how I thought. How I thought about problems, solutions, coding, being a success, etc. I don't claim my thought process is perfect, but it is experienced, at least.
It is also my job to set the conditions for learning, and this usually means giving them interesting and difficult problems to solve. Here we will try to provide some entertaining exercises, though a few are just hidden in questions, as was done in Polymorphism.
Here you will find additional thoughts about polymorphism as well as several case-study projects that might be explored. There are more stories for the calculator. There are other calculators. There are other projects presented as stories for your enjoyment. There is code that might serve as a basis for transformation to a more polymorphic form, or just be studied, as it is interesting in itself.
However, this is a personal view. I'll write about my personal coding style and why I like it. I'll talk about why I sometimes vary from the standard forms. I'll admit to inconsistency. Ah well. Not perfect. Good, but not perfect.
Last Updated: July 2, 2023