UGA Bulletin Logo

Introduction to Scientific Programming, Data Analysis, and Visualization for Physicists


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