Notes and highlights for
Computer Science: A Very Short Introduction (Very Short Introductions)
Dasgupta, Subrata
=======================================================================================================================
---
1 The ‘stuff’ of computing
--------------------------
### Highlight (yellow) - Symbol structures as the common denominator > Page 12 · Location 789
So in its most fundamental essence , the stuff of computing is symbol structures . Computing is symbol processing . Any automaton capable of processing symbol structures is a computer . The ‘ phenomena ’ associated with computers as Perlis , Newell , and Simon suggested are all ultimately reducible to symbol structures and their processing . Computer science is , ultimately , the science of automatic symbol processing , an insight which Allen Newell and Herbert Simon have emphasized . We may choose to call such symbol structures information , data , or knowledge depending on the particular ‘ culture ’ within computer science to which we belong .
3 Algorithmic thinking
----------------------
### Highlight (yellow) - Algorithms are abstract artefacts > Page 42 · Location 1257
This raises the following point : as an artefact an algorithm is Janus - faced . ( Janus was the Roman god of gates who looked simultaneously in two opposite directions . ) Its design or invention generally demands creativity , but its use is a purely mechanical act demanding little creative thought . Executing an algorithm is , so to speak , a form of mindless thinking .
### Highlight (yellow) - The aesthetics of algorithms > Page 57 · Location 1546
The aesthetic experience — the quest for beauty — is found not only in art , music , film , and literature but also in science , mathematics , and even technology . ‘ Beauty is truth , truth beauty ’ , began the final lines of John Keats’s Ode on a Grecian Urn ( 1820 ) .
4 The art, science, and engineering of programming
--------------------------------------------------
### Highlight (yellow) - Programs are liminal artefacts > Page 62 · Location 1627
[[Programs are liminal artefacts between symbols and patterns]]
### Highlight (yellow) - Programming languages as abstract artefacts > Page 69 · Location 1716
We thus have the curious situation that while programs written in such languages are liminal , the languages of programming themselves are abstract .
### Highlight (yellow) - Programming languages as abstract artefacts > Page 69 · Location 1723
a part of the mental effort in learning a new computational language goes into mastering the notation — that is , what the symbols symbolize . This entails mapping the notational signs onto fundamental computational concepts and linguistic categories . A particular language , then , comprises a body of concepts and categories together with the notation that represents them . Again , as a rough formula :
### Highlight (yellow) - Programming as art > Page 74 · Location 1808
art form . Programs should be aesthetically satisfying ; they should be beautiful . The experience of writing a program should be akin to composing poetry or music . Thus , the idea of style ,
5 The discipline of computer architecture
-----------------------------------------
### Highlight (yellow) - Microprogramming > Page 94 · Location 2117
repeat , the ICycle is an algorithm whose steps are under the control of the control unit . In fact , one might grasp easily that this algorithm can be implemented as a program executed by the control unit with the rest of the computer ( the memory system , the instruction interpretation unit , the execution units , the communication pathways , the input / output system ) as part of the ‘ program’s ’ environment . This insight , and the design of the architecture of the control unit based on this insight , was named microprogramming by its inventor , British computer pioneer Maurice Wilkes .
### Highlight (yellow) - Parallel computing > Page 100 · Location 2215
the speedup effect of increasing the number of parallel execution units levels off after a certain point . This principle is called Amdahl’s law .
### Highlight (yellow) - The science in computer architecture > Page 101 · Location 2225
George Polya who famously recognized the role of heuristics in mathematical discovery , heuristic thinking is never definite , never final , never certain ; rather , it is provisional , plausible , tentative .
### Highlight (yellow) - The science in computer architecture > Page 102 · Location 2237
The discipline of computer architecture is an experimental , heuristic science of the artificial
### Highlight (yellow) - The science in computer architecture > Page 103 · Location 2258
Here , P1 is the ‘ current ’ problem situation ; TT is a tentative theory advanced to explain or solve the problem situation ; EE is the process of error elimination applied to TT ( by way of experiments and / or critical reasoning ) ; and P2 is the resulting new problem situation after the errors have been eliminated .
### Note - The science in computer architecture > Page 103 · Location 2260
Complexity reduction
6 Heuristic computing
---------------------
### Highlight (yellow) - Search and ye may find > Page 108 · Location 2342
Computer scientists , thus , refer to some kinds of heuristic problem solving techniques as heuristic or approximate algorithms , in which case we may need to distinguish them from what we may call exact algorithms .
### Highlight (yellow) - A meta-heuristic called ‘satisficing’ > Page 109 · Location 2346
A meta - heuristic called ‘ satisficing ’
### Highlight (yellow) - A heuristic algorithm > Page 113 · Location 2415
One must implement the algorithms as executable programs , conduct experiments on various test data , examine the outputs , and ascertain their strengths and weaknesses based on the experiments . Heuristic computing , thus , entails experimentation .
7 Computational thinking
------------------------
### Highlight (yellow) - The emergence of cognitive science > Page 125 · Location 2601
Symbol processing cognitive architectures of mind and connectionist models of the brain are two of the ways in which computational artefacts and the principles of computer science have influenced the shaping and emergence of the relatively new interdisciplinary field of cognitive science .
### Highlight (yellow) - Understanding human creativity > Page 125 · Location 2615
They have proposed computational models and theories of the creative process that draw heavily on the principles of heuristic computing , representation of knowledge as complex symbol structures ( called schemas ) , and the principles of abstraction .
### Highlight (yellow) - Understanding molecular information processing > Page 127 · Location 2635
Computational thinking shaped what was called ‘ biological information processing ’ or , in contemporary jargon , bioinformatics .
Epilogue: is computer science a universal science?
--------------------------------------------------
### Highlight (yellow) - Page 130 · Location 2664
Ontologically , I think , a distinction has to be made between computer science as a science of the artificial and computer science as a natural science . In the former , human agency ( in the form of goals and purpose , accessing knowledge , effecting action ) is part of the science . In the latter case , agency is avowedly absent . The paradigms are fundamentally distinct .