Outlines for possilbe lesson plans for pedagogical approaches to scientific computing. This is all a bit outdated and has just been copied over from textbook repo. It can probably be deleted and has just been saved for "historical reasons"
Best to provide at least one chapter on introductory programming practice.
After that, can either organize by mathematical topic (ODE, data analysis, matrices/linear algebra) or organize by physical example-this may be more pedagogical, but less organized in some ways.
- variables
- arithmetic
- boolean logic-and,or
- conditional statements-if,elif,else
- iteration-for and while loops
- functions and reusable code; usefulness of functions; classes if theres time
- good programming practice
- much of this is best taught by example
- can provide some Project-Euler-type examples to show how these things are useful
- how to handle figures/axes-setting figure options
- good plotting practices
- using colors, labels, legends
- plotting in higher dimensions-contour plots, surface plots if there's time
- scaling variables
- saving figures versus printing to screen
- vectors, arrays, matrices
- emphasize
linspace
,arange
,etc.
- using IPython notebook effectively
- Markdown syntax
- LaTeX syntax-formatting equations, usefulness outside of IPython environment
- differences between Python, IPython notebook-cell evaluation versus standard scripting environment
- briefly describe differential equations
- basic definition, simple solution methods
- avoid calculus-heavy explanations
###Projectile Motion
- basic projectile motion as starting point
- move toward example with air resistance
- free pendulum
- damped and driven pendulum
- double pendulum
- two-body problem; could extend to three-body problem if there's time
- electrostatics
Other chapters could include root-finding methods, matrix inversion/decomposition, Monte-Carlo methods
All should be framed in a context that's easily accessible to high school students; try to always provide good physical motivation for introducing topics.