PC 253: Computational Physics

Course Description

Some physics problems are simply too difficult to solve without the aid of a computer. In fact most real world problems are of this type. In this course we will concentrate on using computers to solve problems that can't be solved analytically. However, computers are also used to manipulate large data sets, analyze data, visualize complex systems, and prepare manuscripts for publication. One thing that all of these tasks have in common is that they require some skill at writing a set of instructions for a computer to execute, i.e., a computer program. Our primary programming tool will be a programming language called Python.

This is a workshop course. We will meet once a week for about two hours. During that time you will work through some programming exercises. Most of the exercises will be drawn from the Python Scientific Computing Toolbox website or the course textbook. After completing each tutorial, you will take a short quiz. The quiz will usually require you to write a short program that solves some computational physics problem.

Instructor: Shane Burns
Office: Barnes 220
Phone: x6580
E-mail: sburns@coloradocollege.edu
Course Website: https://faculty1.coloradocollege.edu/~sburns/Courses/20-21/PC253/index.html

Textbook

A Student's Guide to Python for Physical Modeling, Updated Version by Jesse M. Kinder and Philip Nelson.

Submitting Quizzes

All quizzes should be submitted to me via e-mail in electronic form. You will need to submit more than just your program's code. Many of the problems produce plots, output, and some require you to answer some questions or do a short problem. I want you to submit all of the relevant output in a ZIP file.

The steps for submitting the homework are outlined below.

  1. Copy any relevant output from your program into a text file. Try to use file names that describe the output.
  2. Either scan or type-up any handwritten work and save it as a PDF file. If it makes sense, you can include the output from the program that you generated in step 1.
  3. Save any plots your program generates as PNG files.
  4. Save all of these files as well as your program code to a ZIP file. Name the file using the following format: firstname_lastname_Quiz#.zip. For example, if Shane Burns is submitting Quiz 1 the file would be called shane_burns_quiz1.zip.
  5. E-mail the ZIP file to sburns@coloradocollege.edu.

Grades

Grades will be based on the number of quiz points you earn and/or completion of a programming project. Each quiz is worth 10 points. A programming project is worth up to four quizzes. The table below shows the number of quiz points required for a given grade.

Number of quiz points Letter grade
95-100 A
90-95 A-
85-90 B+
80-85 B
75-80 B-
70-75 C+
65-70 C
60-65 C-
55-60 D+
50-55 D
< 50 NC

To get full credit on a quiz you must:

  1. Get the correct result
  2. Document your code properly
  3. Label the axes on all graphs and include units where appropriate
  4. Submit the quiz properly using the steps outlined above

Programming Projects

There are a huge number of possibilities for projects the only requirement is that you use some of the computational tools you learned during the course to solve a significantly complex problem and write up a short technical paper. You must OK your project with me before before you start. If you can't think of a project on your own you might consider some project drawn from reading we don't cover in the textbook. I also have a long list of possibilities. A programming project is worth up to 40 quiz points depending on your score on the paper. An 'A' is worth 40 quiz points, a 'B' worth 30 etc.