Course Description
A hands-on introduction to practical computer programming, data analysis, and data visualization for physics majors. Students learn the fundamentals of developing, debugging, and running programs in Python or another similar high-level programming language. Students will be exposed to multiple example problems of particular importance to physics. No prior programming experience is assumed.
Athena Title
Intro Scientific Programming
Non-Traditional Format
This course is a "module" designed to meet weekly as often as a regular three-credit course, but not for the duration of the entire semester.
Pre or Corequisite
PHYS 1311-1311L or PHYS 1211-1211L
Semester Course Offered
Offered every year.
Grading System
A - F (Traditional)
Course Objectives
Students will be able to write and understand simple programs that handle tasks common in computational physics and data analysis. Students will have the fundamental programming skills to tackle computational exercises assigned in higher-level physics courses.
Topical Outline
1. Basic Concepts a. Computing with Formulas b. Loops and Lists c. Functions and Branching d. Data Input and Error Handling 2. Computer Models in Physics a. Numerical Integration b. Solution of ODEs in Physics c. Random Numbers and Monte Carlo Techniques 3. Analysis of Data a. Files, Strings, and Dictionaries b. Array Computing c. Least-Squares Fitting 4. Visualization of Data a. Curve Plotting b. Surface Plotting c. Vector Fields 5. Advanced Topics a. Introduction to Classes b. Object Oriented Programming c. Additional Software Packages for Physics
Syllabus