Physics 210: Introduction to Computational Physics (Fall 2009) 
COURSE HOME PAGE (this page): http://laplace.physics.ubc.ca/210/ 
Instructor: Matthew (Matt) W. Choptuik  Office Hours: Mon & Wed: 1:002:00 PM & Dropin (email appt. preferred) 
Office: Hennings 403  Web page: http://laplace.physics.ubc.ca/~matt 
Office Phone: 6048222412  
Email: choptuik@physics.ubc.ca

Other Personnel: Ben Gutierrez (TA) & Jason Penner (Lab Asst.) 
SCHEDULE:

COURSE LINKS

This
course will provide an introduction
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 available about MATLAB (as well as its
opensource "clones",
such as octave and scilab, which we will encounter during
the
course). 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 selfstudy
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 online 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 four (4) 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 workstation 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 writeup 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 possibilities for term projects on the Term
Project Ideas 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 5 minutes, followed by about another 5 minutes of
questions,
comments
and discussion. Contrary
to
what this section originally stated, these proposals
will have to be
prepared and delivered in electronic form. There
will 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. 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
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
MSWindows
specific! The suggested paper length is about 1020
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. 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 (but are not necessarily limited to): scope
and difficulty
of the problem, degree to which
project was completed successfully, effort devoted to the
project,
originality, and completeness and
quality of the written report. Your
written report and the source code for your project are
due by
December 4, 11:59 PM. Please refer to the News item HERE for
additional details
concerning what you must supply in terms of your project
source code
and documentation. In addition, during the classes and lab periods on
December 1
and 3,
each student will again give a brief presentation, this
time on their
completed project (and in the reverse order to that used
for the
proposal talks). Agina, these talks must be prepared
using
presentation software and will have to be emailed to me
no later than
9:00 AM on the morning you are
scheduled to speak. 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, IMPORTANT!! You should note that completing a good
term
project is much
different than finishing a homework, or even a few
homeworks: in
particular, it is
virtually impossible to do a decent job on a term project
in the space
of a few days. It is the nature of computational
physics (as in
experimental physics and in many other pursuits) that
things will
go wrong unexpectedly, and it can often take much more
time than
anticipated to get programs to work. Moreover,
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, as well as to write things up. In addition,
you can
expect that the projects will be
graded reasonably rigorously, and that doing well in the
homeworks will
not
automatically guarantee that you do similarly well with
your
project. Nonetheless, I expect that provided you
have choose a
good topic (for you!), and allocate a reasonable amount of
time for
your work, you will all be able to do well with this part
of the course. In summary 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 203) 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 convenient to work using your laptop rather than one of the workstations 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 installation, 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 email (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 (online 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 [SOTD] Homework Directories, Startup Files, Aliases 
September
17 Unix [SOTD] Shell vars, bash pattern matching, IO redirection, pipes, grep, quotes 
September
22 Unix [SOTD] Bash scripts 
September
24 Maple [SOTD] Brief Maple demo; free time to work on, and get help with, HW1 
September
29 [SOTD] Maple [H1 due] Free time to work on homework 
October
1 [SOTD] Maple Simple Maple Procedures 
October
6 [2009
Nobel
Prize in Physics  The science [PDF]] Maple Maple procedures, Maple 2d plotting 
October
8 Discussion of Term project proposals and MATLAB Free time to work on homework 
October
13 [SOTD] MATLAB [H2 due] Free time to work on homework and discuss term projects 
October
15 MATLAB [Term project topics must be chosen] Lab Assignment Handout [PDF] & Solutions [PDF] 
October
20 Project Proposal Presentations I Project Proposal Presentations I 
October
22 Project Proposal Presentations II Project Proposal Presentations II 
October
27 MATLAB Startup file, core files & simple plotting Lab assignment handout [PDF] & Solutions [PDF] 
October
29 Finite Difference Approximation Simple FDA using MATLAB 
November
3 Finite DIfference Approximation The Nonlinear Pendulum Equation 
November
5 Finite Difference Approximation The Nonlinear Pendulum Equation / Free time 
November
10 Finite Difference Approximation Free time to work on homework & projects 
November
12 Finite Difference Approximation [H3 due] The Advection Equation 
November
17 Newton's Method [H4 due Wed Nov 18, 11:59 PM] Free time to work on homework & projects 
November
19 Cellular Automata Free time to work on homework & projects 
November
24 Free time to work on projects Free time to work on projects 
November
26 Free time to work on projects Free time to work on projects 
December 1 Project Presentations I Project Presentations I 
December
3 Project Presentations II Project Presentations II [Projects due Dec 4, 11:59 PM] 


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 