Physics 210: Introduction to Computational Physics (Fall 2014) |
COURSE HOME PAGE (this page): http://laplace.physics.ubc.ca/210/ |
Instructor: Matthew (Matt) W. Choptuik | Office Hours: Mon & Wed: 2:00-3:00 PM & Drop-in (e-mail appt. preferred) |
Office: Hennings 403 | Web page: http://laplace.physics.ubc.ca/People/matt/ |
Office Phone: 604-822-2412 | |
E-mail: choptuik@physics.ubc.ca
|
TAs: Arman
Akbarian and Amanda Parker |
SCHEDULE:
|
COURSE LINKS
|
This
course will provide an introduction
to techniques and applications in computational physics.
Topics to be covered include: Unix / Linux fundamentals, an
/ introduction to symbolic & numeric computation and
programming with Maple; Matlab (octave) and Matlab
programming, and specific topics and applications in physics
and numerical analysis. There will be a significant programming component in most 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 diversity of 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:
Note that although we will be using Matlab in this course, there is an open-source (freely available) language called octave, which is close to a clone of Matlab. Our coverage of Matlab will be such that what you learn about it (including programming) will also apply to octave. You should also observe that there is a wealth of online
material available about Matlab (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 blackboard, and then you will be responsible for
taking your own notes. |
To participate in this course, you must have a Physics and Astronomy
(PHAS) computer account, which will provide you with access
to the computers in the PHAS computer lab, Hennings 205,
and and use of the machines in that lab should suffice for
completion of your homework and projects. If you do
not already have an account, you can self-register for one
during the first lab (or otherwise as early as possible) in
Hennings 205 using the workstation with the "Register Here"
sign on it. There is also a workstation in Hennings 203 that
can be used for registration. For information concerning the services provided by the IT section of the dept, please refer to the IT catalogue. You may also be able to use your laptop/home machine to do some of the class work, especially if you are able and willing to install a Linux distribution (Ubuntu recommended) on it/them. (Note, however, that you will be doing the installation at your own risk; we can not be responsible for the loss of the original operating systems, or of any data on your machine.) However, you should not expect to be able to do all of the coursework remotely, so be prepared to spend some time in the computer lab outside of our regularly scheduled meetings times. NOTE: The computer lab is open 24/7, but the doors to Hennings are locked on the weekends, and from 6:30 PM to 7:00 AM on weekdays. |
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 three
homework assignments and a 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 my 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 assignments 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. Be warned that many of you will find
that the homeworks become significantly more challenging
as the course progresses. 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, is difficult to teach/learn in a traditional lecture setting. Some of the lab sessions will be concerned with specific topics, in which case I will generally provide a set of online notes that we will work through together. For others, you will be have free time to work on your assignments and term projects, assisted as necessary by the TAs, myself, and your classmates. In the early stages of the course, you should also take advantage of the lab time to discuss possible term project ideas with me. Finally, at any time, you should feel free to use available lab time to ask any of us about aspects of the computer work that are giving you trouble. Lab work will not be graded. |
You are strongly urged to submit your homework by the due date. However, 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 me, 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. |
Completion of your term project is without a
doubt the most important component of your work in PHYS
210. For most of you, it will also be the most
challenging aspect of the course. Please read the following carefully: Either individually or in consultation with me, each student must choose a topic for a term project in some area of computational physics or closely related field, prepare and present a proposal to the class, carry out the project and produce a write-up of it in the basic style of a scientific/technical paper. You are encouraged to develop your own project ideas, but
all project topics must be approved by me. Some
possibilities for term projects are posted on the Term Project Ideas page, which may
be updated as the course progresses. I expect that many of
you will complete a project from one of the suggestions,
and there are no restrictions on the number of students
who can select any given topic. Topics for term projects must be chosen no later than
October 16, and by that date each of you must have
sent me an e-mail stating what topic has been selected.
During the classes and lab periods on October 21 and 23,
each student will give a brief presentation on their
proposed project; speaking order will be alphabetical by
last name. The amount of time available for each
presentation will be approximately 7 minutes, so talks
will need to be carefully prepared and efficiently
executed. Some form of presentation software, including
Powerpoint, must be used to prepare your talk and you must
generate a PDF version that you will need to e-mail to one
of the TAs in a timely manner so that all of the talks can
be assembled into a single set of slides. Details
concerning this will be provided later. There will no evaluation of this
aspect of your term projects. However, on-time
e-mail submission of your approved topic and your
in-class presentation are worth 5% of your grade: i.e
provided that you do submit your
topic and make a presentation you will receive the 5%. Note that the main 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. Provided that there is sufficient rationale for doing so,
you may also use another programming language for your
project: if you wish to do this, I ask that you check with
me before you start work on your proposal so that I can
ensure that use of the language that you propose is well
motivated, and 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; 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 your PHAS accounts, and in all cases I
must be able to run your programs on my own PHAS account.
If there is any concern on your part about this last
point, please talk to me about it before you start
your your project. The suggested paper length is about 15-20
pages, double spaced (please!), including title page,
figures and graphs and references. If you include
program listings (code), they should be 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 itself, including the
write-up, is worth 35% of your final mark, 30% if you
exclude the essentially automatic 5% that you will receive
for e-mailing me your approved topic choice and orally
presenting your propose. Factors that will be taken into
account in my grading will include (but are not
necessarily limited to): scope and difficulty of the
problem, degree to which the project was completed
successfully, effort devoted to the project, originality,
and completeness and quality of the written report. 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. IMPORTANT!! Note that projects will be graded rigorously,
and that doing well in the homeworks will not
automatically guarantee that you do similarly well with
your project. 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. |
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.). As you are all aware, the amount of information online, combined with the power of search engines such as Google, provides a powerful resource for self-education on a broad range of topics. This is especially true for computer-related subjects. |
Tuesday | Thursday |
---|---|
September 4 Course Overview & Unix/Linux Unix Lab 1 |
|
September 9 Unix [SOTD Web | SOTD 1 | SOTD 2] Unix Lab 2 |
September 11 Unix Unix Lab 3 |
September 16 Unix Unix Lab 4, Free time |
September 18 [SOTD Web
| SOTD] Overview of Programming / Maple Maple Lab 1 |
September 23 Maple Maple Lab 2 |
September 25 Maple Programming [HW1 due] Maple Programming Lab 1 |
September 30 Term Projects / Maple Programming Maple Programming Lab 2 |
October 2 Maple Programming Maple Programming Lab 3 |
October
7 [2013
Nobel Prize in Physics] [SOTD 1 | SOTD 2] Finite Difference Approximation [PDF] Matlab Intro Lab 1 |
October 9 Finite Difference Approximation [HW2 Part 1 due] Matlab Intro Labs 2 |
October 14 Finite Difference Approximation Overview of Matlab Programming Matlab Intro Lab 3 |
October 16 Finite difference Approximation [HW2 Part 2 due] Matlab Intro Lab 4 [Term project topics must be chosen!!] |
October 21 12:30-13:30: Project Proposal Presentations 1, L1A 13:30-15:30: Project Proposal Presentations 2, L1A 15:30-17:30: Project Proposal Presentations 1, L1B Note: All presentations in Computer Lab |
October 23 12:30-13:30: Project Proposal Presentations 2, L1B 13:30-15:30: Project Proposal Presentations 3, L1A 15:30-17:30: Project Proposal Presentations 3, L1B Note: All presentations in Computer Lab |
October 28 Matlab Programming Matlab Programming Lab 1 Free time |
October 30 FDAS: Nonlinear Pendulum Matlab Programming Lab 2 Free time to work on homework / projects |
November 4 FDAs: Nonlinear Pendulum Nonlinear Pendulum Lab 1 Free time to work on homework / projects |
November 6 [HW3
1,2,3 due Nov 10] FDAs: N-body Problems Nonlinear Pendulum Lab 2 Free time to work on homework / projects |
November 11 [HW3 4, (5) due Nov 12] REMEMBRANCE DAY: NO CLASS |
November 13 FDAs N-body Problems Cellular automata and visualization utilities Free time to work on projects |
November 18 FDAs N-body problems Free time to work on projects (L1A) Free time to work on projects |
November 20 Free time to work on projects (L1B) Free time to work on projects |
November 25 Free time to work on projects (L1A) Free time to work on projects |
November
27 Free time to work on projects (L1B) Free time to work on projects [Projects due WEDNESDAY DECEMBER 3, 9:00 AM] |
|
|
See the UBC 2014/2015 Calendar and Academic Year [all year] pages for more information |
Maintained by choptuik@physics.ubc.ca. |