General Course Information:

advertisement
Physics 225
Introduction to Computational Physics & Programming
Fall 2015
Introduction to Computational Physics and Programming —
General information and policies
General course information:
Title: Phys-225 Introduction to Computational Physics & Programming
The course will include a lecture and 2 lab sections per week:
Lecture:
F 2:00–2:50 PM, CAR(76) -1235
Labs:
Section 4: M/W 5:00–6:50 PM, GOS(8) – 1365
Section 2: T/TH 5:00–6:50 PM, GOS(8) - 1365
Instructor information
Dr. David Urminsky
BRN (86)-1143
(585) 475-5661
djusps@rit.edu
Office:
Phone:
Email:
Office Hours:
Tentatively, M,W 2-5:00pm. If you have questions or difficulties or
otherwise want help outside of class and can’t make these times, please
e-mail to make an appointment.
Course description
The course will provide an introduction to some numerical methods that are commonly used in
computational approaches to problems in physics. The course will also provide a brief, general
introduction to computer programming. Topics covered will include:







1 of 4
Program design and development and other basic programming concepts
Binary numbers, truncation errors
Root-finding methods
Numerical integration
Solving differential equations
Solving partial differential equations and finite difference methods
Random numbers and Monte Carlo methods
2/9/16
Physics 225
Introduction to Computational Physics & Programming
Fall 2015
Course materials
Scheduled classes will meet in the Gosnell MAC Lab, which is equipped with Python and the
Anaconda Python package. Microsoft Excel will also be used occasionally to demonstrate
certain techniques.
Project briefings, course notes, and example programs will be posted on the course website.
http://urminsky.ca
The textbook for the course is: Computational Physics – Mark Newman.
There is no single textbook that adequately covers the course material at the right level. In
addition to the textbook notes and suggestions for further reading will be posted the course
website as pdf files or web links.
Use of personal laptops
In addition to your two 2-hour weekly lab sessions, the RIT computer labs (such as the one in
Gosnell) provide you with access to computers with Python available over a wide range of
hours 7 days a week.
You are also welcome to use your own computer for course assignments (and even to bring it
to your lab session). If you do not have Python already installed on your computer you can
install it for free. The textbook gives a rough guide to installing Python. Make sure have
numpy and matplotlib packages installed. You can also install everything at once as a
standalone application using the Anaconda Python distribution (found at
https://store.continuum.io/cshop/anaconda/) .
How the course will operate
During the Friday lectures, we'll cover the background to the upcoming week's topic, look at
the underlying mathematical techniques, perhaps discuss some examples of physics
applications, and describe the project. We may also try some related exercises.
As homework, you should study the project briefing and design your program on paper prior
to your next lab session. This will allow you to use the lab session most productively.
The lab session will be devoted to coding, debugging and testing your project program. This
will be your chance to get assistance designing and testing your program. The instructor and
TA make an effort is to interact with everyone in the section during the session.
The last few weeks of the course will be devoted to the final project.
Projects
You will be given a project assignment each week or so. This will usually entail devising and
implementing a program to solve an equation or to model some physical situation. You will
design the algorithm, write code, debug and test the program. You may also need to do a little
2 of 4
2/9/16
Physics 225
Introduction to Computational Physics & Programming
Fall 2015
background research. The end result should be a tested, working program producing sensible
results.
This is the timetable we will follow each week:

You will be briefed on the topic during the Friday lecture.

As homework, design your program on paper (using a flow-chart and pseudocode).
You may be asked to show your design to your instructor or TA at the beginning of the
next week’s first lab session.

Submit the completed project for grading prior to 4:59pm of the following Monday.
The Final Project will be larger in scope, and you may choose from several different topics.
Learning Outcomes
If you are successful in this course, you will gain a basic understanding of how numbers are
represented in computers; you will understand some basic programming constructs and
become familiar with some of the techniques involved in designing, building and debugging
simple computer programs. You will also acquire a basic understanding of several numerical
methods commonly used in scientific computing - including methods for root-finding,
numerical integration, solving differential equations and the use of random number generators.
You will gain experience implementing these techniques in simple programs. Finally, you will
gain some insight into the use of computational methods to model physical systems.
Assessment
There will be no exams.
Assessment will be based on the weekly projects (70%) and the final project (30%).
As a general guide, projects will be graded very roughly as follows:

Background research: 25% (if applicable)

Code design and quality (robustness, clarity, commenting, pseudocode): 25%

Program produces accurate results: 25%

Documentation - description/explanation of work: 25%
In addition, most project briefings will include suggestions for going a little further. Extra
credit up to ~25% (depending on difficulty) may be awarded in such cases.
The final project will be graded on the basis of a substantial written report and submitted code,
which will be due near the end of classes.
Grading Policy
The conversion from percentage grades to letter grades is as follows for this course:
3 of 4
2/9/16
Physics 225
Introduction to Computational Physics & Programming
A- to A
90-100%
B- to B+
80-89.9%
C- to C+
70-79.9%
D
60-69.9%
F
< 60%
Fall 2015
(Actual grade boundaries may be adjusted down slightly but will not be adjusted up.)
LATE SUBMISSION: There will be no extensions for any of the projects. Work submitted
late will incur the following penalties:

grade reduced by 10% per each day late.

after 1 week - grade reduced by 100%.
FINAL PROJECT: Extensions generally cannot be granted on the final project.
Attendance Policy
Attendance rosters will be kept. Your attendance record may be taken into account when your
final grade is determined.
Submitting Work
1. Upload all files as a single zip file via the link found on the project web page. Your zip
file should be named as <yourlastname>_project_<N>.zip where you substitute your last
name for <yourlastname> and the project number for <N>.
For example, if I was to submit my zip file for project 3 the file would be named:
Urminsky_project_3.zip
2. Any required written work should be typed and included as a PDF file. Only PDF files
will be accepted for written work.
3. Any python scripts and data files should be included in the zip file as well.
4 of 4
2/9/16
Download