Programming for Systems Analysis
Stage I, Course 4 · 3 credits · 14 weeks · From theory to working software
Course Purpose
Students learn to implement systems thinking in code. This course answers: "How do we translate a system model into a computer program?" and "How does code clarify or obscure our understanding of systems?"
By end: Students can build simulations of dynamic systems, collect data from those simulations, analyze results, understand numerical methods and their limits, and use code as a tool for systems thinking.
Learning Outcomes
- Choose appropriate data structures to represent system state
- Implement differential and difference equations in code
- Build discrete-time simulations of systems
- Collect and visualize simulation data
- Test that code matches intent — debugging and verification
- Use simulation to explore system behavior — parameter sweeps, sensitivity analysis
- Understand numerical methods and their limits — discretization, accuracy, error
- Know when simulation breaks down — chaos, stiffness, missing physics
Core Concepts
programming, simulation, implementation, data-collection, visualization, debugging, discretization, numerical-error, time-stepping, state-update, verification
Course Structure (14 weeks)
| Week | Topic | Major Assignment |
|---|---|---|
| 1-2 | Programming fundamentals for systems | Build a simple system simulation |
| 3-4 | Implementing equations in code | Translate math into code |
| 5-6 | Data collection from simulations | Collect and organize simulation output |
| 7-8 | Visualization and analysis | Plot and interpret results |
| 9-10 | Multi-component systems | Implement interacting components |
| 11 | Verification and debugging | Test simulation correctness |
| 12 | Numerical methods and accuracy | Understand time step and error |
| 13-14 | Integration and synthesis | Complete simulation project |
Tools and Languages
This course teaches systems thinking through programming, not a specific language. Python is recommended (readable, rich libraries for visualization and numerical computation), but concepts transfer to any language.
Prerequisites for Subsequent Courses
This course provides the implementation foundation needed for Stage III (Dynamic Network Simulation) and throughout the program whenever simulation is needed.
Comments