Textbooks and so forth
There are no required texts.. You should buy the course packet from the university bookstore, which should be available before the start of the semester. You must come to each class (including the first) with the course packet and a Windows or Mac OS laptop. You'll need to have a couple of gigabytes of available disk space for the first-day installation of the version of Python that we'll be using. Please be sure to bring your power adapter too.
I will have a handful of USB memory sticks for Mac and Windows machines to loan you the first day. They'll hold an installation package for Anaconda's python developer's environment, a folder of useful python scripts, and a PDF file of the course material.
You must buy the course packet at the bookstore. There isn't anything else you'll need to buy, but if you'd like a Python text (at a highly reduced price), consider picking up a copy of Hans Petter Langtangen, A Primer on Scientific Programming with Python, 5th ed. (2016). It is the required text for CS 101. Quoting from the CS 101 web site, "Please note that softcover copies are also available through Springer at a price much reduced relative to the hardcover edition. (You'll need to be on the campus network or log in via the library to see the offer.) An e-book is also available through the SpringerLink service, although we highly recommend acquiring a physical textbook."
Click here for the current version of the course packet.
Click here for a folder of useful python scripts.
Science: relativistic starship undergoing uniform proper acceleration; infinite series representations of π .
Programming: a simple model for what goes on inside a computer. An introduction to the Python programming language. Loops, variable types, arrays, conditionals, Spyder development environment.
Numerical methods: discrete sums as approximations to integrals of continuous functions.
Science: a couple of functions relating to spacetime curvature.
Programming: software libraries, drawing curves and surfaces, graphing functions of one and two variables.
Numerical methods: more of the same.
Science: non-Euclidian geometry, spacetime curvature, Schwarzschild metric.
Programming: more of the same.
Numerical methods: more of the same.
Science: linear and nonlinear oscillators, phase space trajectories.
Programming: using the debugger.
Numerical methods: numerical integration of differential equations, accuracy vs. step size, comparison of first- and higher-order methods.
Science: continuation of last unit.
Programming: continuation of last unit.
Numerical methods: continuation of last unit.
Science: relativistic corrections to GPS satellite clocks in elliptical orbits.
Programming: managing programs built from multiple functions in multiple files.
Numerical methods: numerical integration of differential equations in two dimensions.
Science: general relativistic modifications to Newtonian gravitation, observable astronomical effects.
Programming: adaptive integration techniques.
Numerical methods: Extended precision variables and machine precision issues.
Science: precession of Mercury's perihelion, planetary perturbation of the orbit.
Programming: More of the same.
Numerical methods: More of the same.
Science: Identifying stars with planetary systems through periodic fluctuations in the Doppler shifts of stellar spectra.
Programming: file and data I/O.
Numerical methods: integral transforms.
Science: introduction to a microscopic view of fluids and Monte Carlo techniques.
Programming: histogramming, working with objects and class functions.
Numerical methods: random number generators, parameter spaces, volume integrals.
Science: Monte Carlo simulation of geometrical acceptance and experimental resolution in a two-particle spectrometer.
Programming: large codes, working with class functions and variables.
Numerical methods: Gaussian random number generator.
Science: Markov chain Monte Carlo as a tool for modeling finite-temperature systems.
Programming: reading, writing binary files.
Numerical methods: Same as it ever was..
Programming: multitasking when working with long execution times.
Numerical methods: binomial and Poisson distributions, chi-squared tests, pizza studies.