Serious Programming - small courses
- Date
Dec 12, 2024
- Author
Mark Galassi <mark@galassi.org>
- Author
Leina Gries <leinagries@gmail.com>
- Author
Sophia Mulholland <smulholland505@gmail.com>
- Author
Almond Heil <almondheil@gmail.com>
- Author
Malcolm Smith <msmith.malcolmsmith@gmail.com>
- 1. Motivation and plan
- 2. Starting out: data files and first plots
- 2.1. Motivation, prerequisites, plan
- 2.2. Very first data plots with gnuplot
- 2.3. Plotting functions with gnuplot
- 2.4. Reading and writing files, in brief
- 2.5. Generating our own data to plot
- 2.6. The broad landscape of plotting software
- 2.7. Data formats
- 2.8. Simple surface plots
- 2.9. Topics we have covered
- 3. Intermediate plotting
- 4. A tour of functions
- 5. Growth – checked and not
- 6. Advanced plotting
- 7. Fitting functions to data
- 8. Case studies in data
- 9. Special numbers: \(\pi\)
- 10. A workshop on programming by yourself (!)
- 11. Random number basics
- 12. Randomness and Disorder
- 12.1. Experiment: burn a match
- 12.2. Experiment: ink in water
- 12.3. Discussion on “ink in water” experiment
- 12.4. Flipping a single coin
- 12.5. Review: random numbers in Pythyon
- 12.6. Experiment: flipping a single virtual coin
- 12.7. Flipping multiple coins
- 12.8. Experiment: flipping virtual coins
- 12.9. Experiment: back to physical coins - disorder
- 12.10. The drunk fencer
- 12.11. The drunkard’s walk
- 12.12. Matplotlib animation of a random walk
- 12.13. Making a movie from walk frames
- 12.14. Discussion
- 12.15. Further reading and videos
- 13. Random Processes
- 14. Power laws, Zipf, Benford, …
- 15. Pushing toward calculus
- 15.1. Motivation and plan
- 15.2. Prerequisites
- 15.3. Limits, the infinitely big, and the infinitesimally small
- 15.4. Continuous functions
- 15.5. Convergence and divergence
- 15.6. Weird mixes
- 15.7. Limits of some functions
- 15.8. The limit of a series
- 15.9. The most important application: derivatives
- 15.10. Visualizing derivatives with an animation
- 16. Numerical integration
- 17. Differential Equations
- 18. Simulating Differential Equations
- 19. The Lotka Volterra System
- 20. Ecology
- 21. Biology – phylogeny
- 21.1. Motivation, prerequisites, plan
- 21.2. Start with a video and then make a simple table
- 21.3. Terminology
- 21.4. First steps with biopython
- 21.5. Downloading the datasets
- 21.6. Preparing a tree by hand
- 21.7. Inferring a tree
- 21.8. Other sequence analysis resources
- 21.9. Linguistics datasets
- 21.10. Evolution of programming languages
- 22. Recursion
- 23. Programming topics: sorting
- 24. Introduction to NetworkX Graphs
- 25. Generating Mazes
- 26. Birthday paradox
- 27. Optimal Stopping
- 28. Graphical user interfaces
- 29. Drawing on a canvas
- 30. The Traveling Salesman
- 31. Basic Agent-Based Modeling
- 32. Emergent behavior
- 33. Web scraping
- 34. Getting to philosophy
- 35. Music basics
- 35.1. Motivation, prerequisites, plan
- 35.2. What is sound?
- 35.3. How is sound generated?
- 35.4. Measuring and recording
- 35.5. What is music
- 35.6. Understanding what we plot in an amplitude plot
- 35.7. How does the GNU/Linux microphone work?
- 35.8. Generating your own musical tone
- 35.9. File formats
- 35.10. Converting our ascii music
.dat
files to other formats - 35.11. Effects filters
- 36. Collecting mp3s
- 37. Computer art
- 38. Image filtering
- 38.1. Motivation, prerequisites, plan
- 38.2. Manipulating images with command line programs
- 38.3. How computers store images, disk and memory
- 38.4. First example: blurring and other effects with PIL
- 38.5. The cycle of training and running an AI system
- 38.6. Miscellaneous examples in various areas
- 38.7. Learning OpenCV
- 38.8. Using tensorflow with ImageAI to find objects
- 38.9. Using tensorflow from their own tutorials
- 39. Cryptography
- 40. Other languages - Go
- 41. Appendix: An itinerary for guest lectures
- 42. Appendix: How to build the book
- 43. Appendix: How to add a chapter
- 43.1. Anatomy of the chapter
- 43.2. The chapter: Title
- 43.3. The chapter: frontmatter
- 43.4. The chapter: The problem
- 43.5. The chapter: Plots
- 43.6. The chapter: The quadratic formula
- 43.7. The chapter: Numerical approximation
- 43.8. The chapter: Applications
- 43.9. Exercises for the chapter
- 43.10. Further study
- 44. Appendix: Project proposals
- 45. Appendix: Proposed chapters
- 46. Copying and legal matters
Indices and tables
- Bac77
J Backus. Musical note to frequency conversion chart. http://www.audiology.org/sites/default/files/ChasinConversionChart.pdf, 1977. Accessed: 2016-05-06.
- Bir15
Alistair Bird. Apiological: mathematical speculations about bees (part 3: travelling salesman). http://aperiodical.com/2015/03/apiological-part-3/, 2015. Accessed: 2015-03-19.
- Gal15
Mark Galassi. Hacking Camp Teacher's Manual. web, 2015.
- Gal16
Mark Galassi. Scientific Computing for Kids. web, 2016.
- Gra12
Christopher M Graney. Doubting, testing, and confirming galileo: a translation of giovanni battista riccioli's experiments regarding the motion of a falling body, as reported in his 1651 almagestum novum. arXiv preprint arXiv:1204.3267, 2012.
- Pin11
Steven Pinker. The better angels of our nature: Why violence has declined. Penguin, 2011.
- RR10
Carmen M Reinhart and Kenneth S Rogoff. Growth in a time of debt (digest summary). American Economic Review, 100(2):573–578, 2010.
- ZJZ+16
Caiping Zhang, Jiuchun Jiang, Linjing Zhang, Sijia Liu, Leyi Wang, and Poh Chiang Loh. A generalized soc-ocv model for lithium-ion batteries and the soc estimation for lnmco battery. Energies, 9(11):900, 2016.
Copyright (C) 2017-2022 Mark Galassi, Leina Gries, Sophia
Mulholland, Almond Heil.
This work is licensed under the Creative Commons
Attribution-ShareAlike 4.0 International License. To view a copy
of this license, visit
http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to
Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.