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