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:
|
COURSE LINKS
|
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. |
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
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. |
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
|
There will be NO tests or exams in this course. |
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. 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. |
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. All term projects must be written up in the style of a
scientific/technical paper; a typical structure will be
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. |
From time to time, and provided that the circumstances are sufficiently extenuating, work may be submitted late, subject to the following conditions:
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. |
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. |
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. |
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 |
|
|
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 |