Читать книгу Computation in Science (Second Edition) - Konrad Hinsen - Страница 4
Contents
Оглавление1 What is computation?
1.1.1 Numerical computation
1.1.3 Non-numerical computation
1.2 The roles of computation in scientific research
Computation as a tool
Computation as a form of scientific knowledge
Computation as a model for information processing in nature
2 Computation in science
2.1 Traditional science: celestial mechanics
2.1.1 Empirical models for planetary orbits
2.2 Scientific models and computation
2.2.1 Characterizing models by computational effort
2.2.2 Empirical models: from linear regression to data science
2.2.3 Explanatory models: from simple to complex systems
2.2.4 Measuring the complexity of a model
2.2.5 Getting rid of the equations
2.3 Computation at the interface between observations and models
2.3.1 Matching models and measurements
2.3.2 Mixing models and measurements
2.4 Computation for developing insight
2.5 The impact of computing on science
3 Formalizing computation
3.1 From manual computation to rewriting rules
3.2 From computing machines to automata theory
3.4 Restricted models of computation
4 Automating computation
4.1.1 Processors and working memory
4.1.2 Processor instruction sets
4.1.3 Special-purpose processors
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
5 Taming complexity
5.1 Chaos and complexity in computation
5.2 Verification, validation, and testing
5.2.1 Verification versus validation
5.2.5 Proving the correctness of software
5.2.6 The pitfalls of numerical computation
5.3.3 Object-oriented programming
5.4.1 Identifying state in a program
5.5 Incidental complexity and technical debt
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.1 Preserving compiled code
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
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 The time scales of scientific progress and computing