Physics 210: Introduction to Computational Physics (Fall 2009)


COURSE HOME PAGE (this page): http://laplace.physics.ubc.ca/210/

Instructor: Matthew (Matt) W. Choptuik Ben Gutierrez (TA)  and Jason Penner (Lab Assistant))
Office: Hennings 403 Office Hours: Drop-in (appointment preferred)
Office Phone: 822-2412
E-mail: choptuik@physics.ubc.ca
Web page: http://laplace.physics.ubc.ca/~matt

SCHEDULE:
  • LECTURES: TUESDAY & THURSDAY 14:00-15:30 -- BUCHANAN B303
  • LABS: TUESDAY & THURSDAY 15:30-17:00 -- HENNINGS 205

COURSE LINKS

Course Summary

This course will provide an intrduction to techniques and applications in computational physics. Topics to be covered include: Unix / Linux fundamentals, including basic shell programming, an introduction to symbolic & numeric computation and programming with Maple; MATLAB and MATLAB programming, and various topics and applications in physics and numerical analysis.

There will be a significant programming component in virtually all stages of the course.

See the Syllabus below for a provisional lecture/lab schedule, as well as the Learning Goals & Course Topics page for a more detailed overview.

Text, Reference Material and Notes

Due in large part to the significant diversity in topics to be covered, there is no required text for the course.  However, because much of the course will be MATLAB based, I have adopted the following as an optional text
I feel that this book is written at a suitable level for an introductory course, has generally been well-received by students in reviews that I have seen, and should be especially useful if you have little or no experience in MATLAB, and, importantly, little or no experience in computer programming. I have had the UBC bookstore place an order for this text, and it should be in stock there by the time that we begin with MATLAB.  Unfortunately, even though it is paperback and less than 400 pages it will be quite expensive at the bookstore, probably in excess of $80.  In this regard, you should note that you may be able to get cheaper copies via online purchases from sites such as Amazon.ca and Chapters.ca, including earlier versions of the text, such as the 2nd edition, which should be adequate for use in this course.

You should also observe that there is a wealth of online material avaliable about MATLAB (as well as its open-source "clones", such as octave and scilab, which we will encounter during the ourse).  I've accumulated a few links to some key sites in the Online Course Resources page, including a link to a site that provides (for individual use only), a complete text by the author of the first version of MATLAB.

The Course Resources page also contains links to sites relevant to other topics that we will cover in the course. Some of these topics, such as Unix/Linux and basic MATLAB programming, will be directly discussed in lectures or covered in labs. Others, such as the use of a text editor of your choosing, will be self-study topics, since a key goal of this course is to enhance your ability to use help facilities, online resources and the like to master new algorithms and software applications.

Finally, at times I will distribute notes to the class (or at least make them available on-line via the Course Notes page).  However, at other times, I will lecture using the whiteboard, and then you will be responsible for taking your own notes.

Grades: Tests, Homework & Labs, Term Projects and Late Work Policy

EXTREMELY IMPORTANT!!  Please refer to the Homework Page for the course policy on Homework / Term Projects and Academic Dishonesty


Your final grade in this course will be determined on the basis of your performance on five (5)  homework assignments, a term project, and a presentation on your term project, with the following weighting
  • Homework Assignments: 60%
  • Term Projects (including writeup): 35%
  • Term Project Presentation: 5%
Final marks may be subject to small adjustments based on overall class performance.

Tests

There will be NO tests or exams in this course.

Homework and Labs

Homework

See the syllabus below for (provisional) scheduled homework due dates. Homework will be assigned about 2 weeks before it is due; late homework may be accepted at the instructor's discretion, and as per the Late Homework Policy described below. As the course progresses, the Homework Schedule web page will be updated with information concerning the homeworks. including the homework handouts themselves.

Each homework will contribute equal weight to your final mark, but again; the homework component of your mark may be subject to adjustments based on overall class performance.

Labs

A chief purpose of the labs is to provide you with time to acquire the extremely important "hands on" skills needed to master the course material, and which by nature, difficult to teach/learn in a traditional lecture setting.  For most of the lab sessions, you will be encouraged to work on your homeworks and term projects, assisted as necessary by the TAs, myself, and your classmates.  In other instances, we will cover specific topics, such as configuration of your Linux desktop environment, whereby you will be encouraged to work at a terminal in "real time", following along a presentation by myself or the TAs.  In the early stages of the course, you should also take advantage of the lab time to discuss possible term project ideas with us.  Finally, at any time, you should feel free to use lab time to ask any of us about aspects of the computer work that are giving you trouble.

Term Projects

The term project component of PHYS 210 is extremely important, and for most of you, will present the most significant challenge in the course. Either individually or in consultation with the instructor, each student must choose a topic for a term project in some area of computational physics or a related area, carry out the project, produce a write-up on it in the basic style of a scientific/technical paper, and make two short presentations to the class on their work.   

You are encouraged to develop your own project ideas, but all project topics must be approved by the instructor. During the first few couple of weeks or so, as I get to know the class, I will post some possibiities for term projects on the Suggested Term Projects page.

Topics for term projects should be chosen no later than October 15.  During the classes and lab periods on October 20 and 22, each student will give a brief presentation on their proposed project (a random speaking order will be chosen). The amount of time available for each presentation will depend on the number of students who are registered in the course at that time, but is likely to be of the order of 10 minutes, including questions.  These talks do not have to be "formally" prepared: you can use presentation software should you wish, but you can also describe what you intend to do using the whiteboard.  There will also be no grading of this aspect of your term projects: the purpose of this exercise is to ensure that you have chosen an appropriate topic, and that you have a good (though perhaps not complete) understanding of what will be required to complete it.  I will also ask that you provide me with a hardcopy of your talk  (assuming it has been prepared with presentation software), or a one page summary of your proposal.  I will use this material, as well as information I glean from your presentations to provide you with feedback, including, as necessary, suggestions for possible modifications of your topic.

In keeping with the spirit of the course, all term projects should involve programming to a significant extent, and students are encouraged to use MATLAB or possibly Maple to implement their projects: assuming that you do so, you are expected to do more than use some built in MATLAB/Maple facility to perform the bulk of your computations. You are also free to use other programming languages of your own choice: if you wish to do so, I only ask that you check with me before you start work on your proposal so that I can ensure that the overall project appears appropriate.

All term projects must be written up in the style of a scientific/technical paper; a typical structure will be

  • Title and Abstract
  • Introduction, including basic description of problem to be solved, simulated, analyzed etc.
  • Mathematical formulation of the problem as relevant
  • Description of techniques, algorithms, analysis tools etc. used to solve the problem, including discussion of overall flow of the program
  • Discussion of computations (numerical experiments) that were performed
  • Analysis of results
  • Conclusions (may include suggestions for future work)
  • References / Bibliography
  • Appendix including program listing, if desired

Note that for some projects, not all of the above sections will be relevant: but as always, feel free to check with me should you have any questions about your writeup.  I will also ask you to make any programs that you write for your term project available to me through your homework directories on hyper, and, except in special cases (which need to be cleared by me), I should be able to run your programs on hyper using the appropriate software environment (MAPLE, MATLAB, Java etc.).  In particular, your term project code cannot be MS-Windows specific!

The suggested paper length is 12-20 pages, double spaced (please!), including title page, figures and graphs and references.  If you include program listings, they should be listed single spaced. You are encouraged to use the LaTeX typesetting system to write your paper, but this is not mandatory.  You can either supply me with a hardcopy of your paper, or send me an electronic version (PDF preferred, but .doc or one of the OpenOffice formats will also be acceptable)

As noted above, the term project is worth 35% of your grade. Factors that will be taken into account in my grading of your projects will include: scope and difficulty of the problem, degree to which project was completed successfully, originality and completeness and quality of the written report.

In addition during the classes and lab periods on December 1 and 3, each student will again give a brief presentation, this time on the their completed project (and in the reverse order to that used for the proposal talks).  In this case everyone will be required to prepare their talk using presentation software (we will discuss this issue in one or more of the lab sessions), and to e-mail their talk to myself or one of the TAs no later than 9:00 AM on the morning they are scheduled to speak (since we will need to assemble all of the talks on one laptop for efficiency).  Again, depending on the number of students, these talks will likely be about 10 minutes, including questions, and dealing with the challenges one faces in giving such a short presentation will also be discussed in the labs. The final presentation is work 5% of your final grade.

You should note that completing a good term project is much different than doing a few homework sets: in particular, it is virtually impossible to do a good job with a term project in the space of a few days.  It is the nature of computational physics (as in experimental physics) that things will go wrong unexpectedly, and it can often take much more time than anticipated to get programs to work.  In addition, coding a functional program is typically just the first stage in completion of the project; you also will need time to generate and analyze results.  In addition, you can expect that the projects will be graded fairly rigorously, and that doing well in the homeworks will not necessarily guarantee that you do similarly well with your project. 

All in all, then, please take your term projects very seriously, and do your best to begin work on them as soon as is feasible. 

Finally, be sure that you understand and abide by the University and course policies concerning Academic Honesty as they pertain to your term projects, and as are laid out in the Homework page.

Late Work Policy (Strictly Enforced)

From time to time, and provided that the circumstances are sufficiently extenuating, work may be submitted late, subject to the following conditions:

  1. If an extension is required, the extendee must submit a request for an extension, via e-mail, to the instructor, before the assignment is due.
  2. Submitted homework which absolutely must be submitted before the homework key is distributed, must similarly be accompanied by an e-mail indicating completion of the work.

Note that all messages are to be sent to the instructor, not the TA, and that if you finish the homework on time, no additional action on your part is required.

Finally note that if you are unable to complete an assignment or term project on time due to illness or an equivalent circumstance (e.g. severe illness and/or death of a family member), please inform me as soon as possible and I will ensure that you are given sufficient time to complete your work once your situation has been resolved.

Computer Access

All students will be provided with an account for use in the Physics & Astronomy Computer Lab currently located in Hennings 205, and use of the machines in that lab (and also in Hennings 2XX and 2XX as necessary) should suffice for completion of your homework and projects. 

However, if you have a laptop, you will be encouraged to bring that to class, and especially to the lab sections, since at times you may find it more covenient to work using your laptop rather than one of the terminals in the computer lab.  This is particularly the case if you are willing to install Linux on your machine.  Similar comments apply to machines you may have access to at home; you should also be able to use them to complete at least part of the course work, especially if they have Linux installed.  The TAs and I will be happy to supply you with DVDs of a popular Linux distribution (Mandriva) that you can use for istallation, and will also be happy to attempt to assist you with any issues you may have with the installation and subsequent configuration of your Linux system.

Other Help

You should also feel free to contact me via e-mail (preferred) or phone if you have quick questions, or if you are having difficulty getting something to work. Perhaps most importantly, you should strive to develop the ability to make effective use of the available documentation for the software you are using (on-line help, man pages, Web resources, etc.). Online help tends to be extensive these days, and since the advent of powerful search engines such as google, relatively easy to find. A little time invested in learning how to extract the information you are looking for usually pays off.

SYLLABUS

Tuesday Thursday

September 10
Course Overview & Unix
Introduction to Computer Lab, account configuration
September 15
Unix
September 17
Unix
September 22
Unix
September 24
Maple [H1 due]
September 29
Maple
October 1
Maple
October 6
MATLAB
October 8
MATLAB [H2 due]
October 13
MATLAB
October 15
MATLAB  [Term project topics should be chosen]
October 20
Project Proposal Presentations I
Project Proposal Presentations I
October 22
Project Proposal Presentations II
Project Proposal Presentations II
October 27
Finite Difference Approximation [H3 due]
October 29
Particle Dynamics 
November 3
Particle Dynamics
November 5
Cellular Automata
November 10
Cellular Automata [H4 due]
November 12
Data Analysis
November 17
Solution of linear equations / numerical integration
November 19
Solution of nonlinear equations
November 24
Random processes [H5 due]
November 26
Random processes
December 1
Project Presentations I
Project Presentations I
December 3
Project Presentations II [Projects due Dec 4, 11:59 PM]
Project Presentations II

Syllabus Notes

  • Lecture topics are listed in regular font; Special lab activities, other than working on the currrent homework and/or term projects, and which will be updated throughout the course, are listed in italics.
  • Homework assignments are denoted H1 through H5 and are due at the end of the lab (i.e. 5:00 PM) on the specified date..
  • See Learning Goals & Course Topics page for a more detailed outline of course material.
  • Term projects are due DECEMBER 3 (last class day)

Other Important Dates

  • Tuesday, September 20: Last day for withdrawal from this course without withdrawal standing of "W" recorded on a student's academic record.
  • Monday, October 12: Thanksgiving Day, University closed.
  • Friday, October 16: Last date for withdrawal from most this course with withdrawal standing of "W" recorded on a student's academic record.
  • Wednesday, November 11: Remembrance Day. University closed. NO CLASS.
  • Friday, December 4: Last day of classes.
  • Tuesday, December 8: Examinations begin.
  • Tuesday, December 22: Examinations end.

See the UBC 2009/2010 Calendar and Academic Year [all year] pages for more information

Maintained by choptuik@physics.ubc.ca. Supported by CIFAR, NSERC, CFI, BCKDF and UBC