Konrad Hinsen

Computation in Science (Second Edition)


Скачать книгу

numbers

       3.6.3 Computable numbers

       3.7 Further reading

       References

       4 Automating computation

       4.1 Computer architectures

       4.1.1 Processors and working memory

       4.1.2 Processor instruction sets

       4.1.3 Special-purpose processors

       4.1.4 Parallel computers

       4.2 Programming languages

       4.2.1 Design choices

       4.2.2 Social and psychological aspects

       4.3 Observing program execution

       4.3.1 Debuggers: watching execution unfold

       4.3.2 Profilers: measuring execution time

       4.4 Software engineering

       4.5 Further reading

       References

       5 Taming complexity

       5.1 Chaos and complexity in computation

       5.2 Verification, validation, and testing

       5.2.1 Verification versus validation

       5.2.2 Independent repetition

       5.2.3 Testing

       5.2.4 Redundancy

       5.2.5 Proving the correctness of software

       5.2.6 The pitfalls of numerical computation

       5.3 Abstraction

       5.3.1 Program abstractions

       5.3.2 Data abstractions

       5.3.3 Object-oriented programming

       5.3.4 The cost of abstraction

       5.4 Managing state

       5.4.1 Identifying state in a program

       5.4.2 Stateless computing

       5.4.3 State protection

       5.5 Incidental complexity and technical debt

       5.6 Further reading

       References

       6 Computational reproducibility

       6.1 Reproducibility: a core value of science

       6.2 Repeating, reproducing, replicating

       6.3 The role of computation in the reproducibility crisis

       6.4 Non-reproducible determinism

       6.5 Staged computation

       6.5.1 Preserving compiled code

       6.5.2 Reproducible builds

       6.5.3 Preserving or rebuilding?

       6.6 Replicability, robustness, and reuse

       6.7 Managing software evolution

       6.8 Best practices for reproducible and replicable computational science

       6.9 Further reading

       References

       7 Outlook: scientific knowledge in the digital age

       7.1 The scientific record goes digital

       7.2 Procedural knowledge turns into software

       7.3 Machine learning: the fusion of factual and procedural knowledge

       7.4