Skip to content
This repository has been archived by the owner on Jan 27, 2023. It is now read-only.

Timeline and Skeleton

Alexander Kluber edited this page Aug 20, 2016 · 10 revisions

Course Skeleton

We have discussed before that most physical problems can teach any programming concept, so we have decided to brainstorm which programming concepts we want to teach first then assign relevant physical problems. Of course some physical problems are easier than others and should come first chronologically.

  1. Tier One

    • Logical operations. Conditional statements.
    • Data structures. What is a list versus dictionary.
    • Syntax.
    • Loops/iterations.
  2. Tier Two

    • Scope.
    • Functions. Refactoring.
    • Objects.
  3. Tier three

    • Objects
    • Modules. Import. Namespaces.

Teaching goals

  • What programming concepts do we want them to understand by the end of the course?
  • What makes our course different than other courses?

Course Timeline

The first half of the course will focus on mechanical problems, such as projectile motion, harmonic motion, and pendulum, the second half of the course will be molecular dynamics related. Keep everything in 1D.

Lab sessions

  1. Setup.
    • Intro and motivation
    • Conda or Cloud 9
  2. Projectile motion
    • Introduce Tier one concepts: syntax, logic, data structures, loops.
  3. Projectile motion with air resistance
    • Introduce functions.
    • Develop Tier one concepts.
  4. Harmonic motion spring or pendulum
    • Develop Tier one concepts.
  5. Harmonic motion pendulum solving nonlinear equations
    • Develop Tier one concepts.
    • Using outside libraries.
  6. Stochastic motion.
    • Random walk.
    • Introduce Tier two concepts: refactoring, functions.
  7. Diffusion in a potential.
    • Generating trajectories with Brownian motion
  8. Diffusion in a potential
    • Diagonalizing diffusion operator.
  9. TBD
  10. TBD
  11. TBD
  12. TBD
  13. TBD
  14. TBD
  15. Social coding, documentation, version control.