Java Language | Numerical Techniques | Physics | |
---|---|---|---|
Hello, World! | Classes, methods, parameters, variable names, objects, constructors, comments, strings, console output | ||
Range of a Projectile | Real-number variables, expressions, trig functions, conditions, loops, parsing and formatting numbers, plotting graphs with the Plot class | Range formula from introductory physics | |
Adding Sine Waves | Integer variables, functions that return a value, Plot variations | Fourier series | |
Simulating Projectile Motion | Graphical user interfaces, event handling with anonymous inner classes | Euler and Euler-Richardson algorithms, estimating truncation error, interpolation | Newton's second law, air resistance, terminal speed, vectors |
Pendulum | Rounding, extending a class, implementing an interface, graphics primitives, threads, animation | Using natural units, monitoring a conserved quantity | Rotational dynamics, large angle motion, damping and driving forces, chaos, phase space plots |
Orbits | Calling superclass methods, synchronizing threads | Verlet (STA) algorithm, adaptive step size control | Gravitational force and energy, Kepler's laws, Halley's Comet, effect of Jupiter on asteroid orbits |
Molecular Dynamics | One-dimensional arrays | Optimizing performance | Lennard-Jones fluid, phase transformations, pressure, temperature, heat capacity |
Random Processes | Math.random() | Using a pseudo-random number generator | Random walk, radioactive decay, binomial and Poisson distributions |
Ising Model | Two-dimensional arrays, double-buffered graphics | Metropolis algorithm | Boltzmann statistics, ferromagnetism, critical behavior |