

Notes on Concepts, Techniques and Models of Computer Programming preface
source link: https://blog.carlosgaldino.com/notes-on-ctm-preface.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Notes on Concepts, Techniques and Models of Computer Programming preface
24 Mar 2014I have a personal goal of improving my knowledge about fundamental concepts of Computer Science. I chose to start this by reading the book “Concepts, Techniques and Models of Computer Programming” by Peter Van Roy and Seif Haridi.
I always start reading a book by its preface and it usually pays off. This was no different with CTM which made me even more excited about the book. In its preface the authors try to outline the goals of the book and start defining some terms that will be present throughout the book.
Here I present my favorite quotes about these definitions.
Computation model
The idea of the book is to present several computation models and the authors start defining this term right away.
A computation model is a formal system that defines how computations are done.
We therefore define it in terms of concepts that are important to programmers: data types, operations, and a programming language.
What is programming?
…programming is the step between the system’s specification and a running program that implements it. The step consists in designing the program’s architecture and abstractions and coding them into a programming language.
When used in a specific situation, the general view is adapted to the tools used, taking into account their abilities and limitations.
Programming is both science and technology
Programming as defined above has two essential parts: a technology and its scientific foundation. The technology consists of tools, practical techniques, and standards, allowing us to do programming. The science consists of a broad and deep theory with predictive power, allowing us to understand programming.
Knowing the tools prepares the student for the present. Knowing the concepts prepares the student for future developments.
I love this last quote as it perfectly expresses my thoughts on learning tools and concepts of Computer Science and software development.
Programming is more than a craft
The problem is that programming is almost always taught as a craft, in the context of one or a few programming languages. You end up learning a language deeply and start looking at everything in Computer Science through that language. What this usually means is that the errors or problems that such language has about one concept become the concept’s problem, for example, concurrency in Java is complex but that doesn’t mean that the concept is complex. Someone can come with a form of concurrency that is not complex which can be used in Java or any other language.
Designing abstractions
The most difficult work of programmers, and also the most rewarding, is not writing programs but rather designing abstractions. Programming a computer is primarily designing and using abstractions to achieve new goals.
Conclusion
Judging from the preface I can’t wait to dive into the other chapters and I intend to post my notes on them. Stay tuned!
Recommend
-
41
Preface Git is a version control Swiss army knife. A reliable versatile multipurpose revis...
-
7
Let's Build a C Compiler(0) -- PrefaceTable of ContentsEDIT: Note that I’ve include the full tutorial in the project w...
-
18
Scotts Radio -- Preface or Why We Released this Under the GNU Free Documentation License Aug 20, 2002 Scotts Radio :: Preface or Why We Released this Under the GNU Free Documentation License Last updated: 8/2...
-
8
Crazy concepts merge Apple products with popular car modelsNews
-
8
Table of Contents Part One Part Two Part Three There is a free pdf version of this book with nicer typesetting available for download. You may...
-
11
Posted on March 21, 2022March 21...
-
2
Preface The Modular Debugger (MDB) is a highly extensible, general purpose debugging tool for the illumosTM Operating System. The Modular Debugger Guide describe...
-
12
The View from 30,000 Feet: Preface to the Second EleutherAI Retrospective (Some of) what we've been up to for the past year-and-a-half at EleutherAI. March 2, 2023 · Stella Biderman, Curtis Huebner, Connor L...
-
4
Data management concepts and techniques in SAP HANA Cloud 3 24 2,745 This blog is about data m...
-
6
8.8.0.8PrefaceMany professions require some form of programming. Accountants program spreadsheets; musicians program synthesizers; authors program word processors; and web designers program style sheets. When we wrote these...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK