Serious Programming - small courses
- Date
Nov 14, 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. Ecology
- 19. Biology – phylogeny
- 19.1. Motivation, prerequisites, plan
- 19.2. Start with a video and then make a simple table
- 19.3. Terminology
- 19.4. NEW - Installing necessary packages
- 19.5. NEW - first steps with biopython
- 19.6. OLD - Installing necessary packages
- 19.7. Preparing a tree by hand
- 19.8. Inferring a tree
- 19.9. Other sequence analysis resources
- 19.10. Linguistics datasets
- 19.11. Evolution of programming languages
- 20. Recursion
- 21. Programming topics: sorting
- 22. Introduction to NetworkX Graphs
- 23. Generating Mazes
- 24. Birthday paradox
- 25. Graphical user interfaces
- 26. Drawing on a canvas
- 27. The Traveling Salesman
- 28. Basic Agent-Based Modeling
- 29. Emergent behavior
- 30. Web scraping
- 31. Getting to philosophy
- 32. Music basics
- 32.1. Motivation, prerequisites, plan
- 32.2. What is sound?
- 32.3. How is sound generated?
- 32.4. Measuring and recording
- 32.5. What is music
- 32.6. Understanding what we plot in an amplitude plot
- 32.7. How does the GNU/Linux microphone work?
- 32.8. Generating your own musical tone
- 32.9. File formats
- 32.10. Converting our ascii music
.dat
files to other formats - 32.11. Effects filters
- 33. Collecting mp3s
- 34. Computer art
- 35. Image filtering
- 35.1. Motivation, prerequisites, plan
- 35.2. Manipulating images with command line programs
- 35.3. How computers store images, disk and memory
- 35.4. First example: blurring and other effects with PIL
- 35.5. The cycle of training and running an AI system
- 35.6. Miscellaneous examples in various areas
- 35.7. Learning OpenCV
- 35.8. Using tensorflow with ImageAI to find objects
- 35.9. Using tensorflow from their own tutorials
- 36. Cryptography
- 37. Other languages - Go
- 38. Appendix: An itinerary for guest lectures
- 39. Appendix: How to build the book
- 40. Appendix: How to add a chapter
- 40.1. Anatomy of the chapter
- 40.2. The chapter: Title
- 40.3. The chapter: frontmatter
- 40.4. The chapter: The problem
- 40.5. The chapter: Plots
- 40.6. The chapter: The quadratic formula
- 40.7. The chapter: Numerical approximation
- 40.8. The chapter: Applications
- 40.9. Exercises for the chapter
- 40.10. Further study
- 41. Appendix: Project proposals
- 42. Appendix: Proposed chapters
- 43. 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.