MCS 507: Mathematical, Statistical and Scientific Software
33634 10:00-10:50 AM MWF 216 Taft Hall
Catalog description:
The design, analysis, and use
of mathematical, statistical, and scientific software.
The recommended (not required textbook) for the course is
by Hans Petter Langtangen:
A Primer on Scientific Programming with Python.
Second Edition, Springer-Verlag 2011.
Click on the link for
resources.
In addition to Python scripting for computational science,
we will cover the open source mathematical software system
Sage
(available in the cloud) and touch on selected software packages
as needed for MCS 572 (introduction to supercomputing, offered
in Spring 2012).
Prerequisites: although some prior programming experience will
certainly help, as a scripting language one quickly gets to
interesting computations with Python and the textbook gives
a very gentle and comprehensive introduction to programming.
Having access to a computer where one can install optional
and specialized software packages is not strictly necessary
but will be an advantage in the course.
In addition to homework (small computational assignments),
three computer projects will be assigned during the semester.
Instead of a review week and a classical final exam,
the last week of classes may be devoted to project presentations.
To save space, slides for the lectures have been removed.
- L-1 08/22/11: welcome to mcs 507;
a Python module pwmanfun.py .
- L-2 08/24/11: numbers and formulas
a corrected Python module pwmanfunV2.py .
- L-3 08/26/11: interactive computing
with Python scripts hellothere.py ,
playatone.py , and
compute_sound.py .
- L-4 08/29/11: lists and loops;
with Python scripts testevalfun.py
and comptraprule.py .
- L-5 08/31/11: list comprehensions and simulations;
with Python scripts testgauss.py
and mtbf.py .
- L-6 09/02/11: tuples and nested lists
- L-7 09/07/11: defining functions
with Python scripts ourfirstmodule.py,
example_series.py, and
define_series.py.
- L-8 09/09/11: branching and enumeration
with Python scripts time_iftry.py and
enumwords.py.
- L-9 09/12/11: numerical integration
with Python scripts inlineif.py,
traprule.py,
traprule2.py,
makerule.py,
area.py, and
area2.py.
- L-10 09/14/11: exec, callback, and iterators
with Python scripts show_exec.py,
simpsonrule.py,
newtonfun.py,
newtoncallback.py,
classcounter.py, and
newtoniterator.py.
- L-11 09/16/11: user interfaces
with Python scripts show_cmdlinargs.py,
hello_python.py,
storepoints.py, and
pentagon.py.
- L-12 09/19/11: graphical user interfaces
with Python scripts guieval.py,
rgbgui.py,
mouseptsadd.py, and
guifit.py.
- L-13 09/21/11: root finding methods
with Python module call_mpsolve.py.
- L-14 09/23/11: numpy and vectorization
with scripts power_method.py
and randshow.py.
- L-15 09/26/11: curve plotting and
animations
with scripts linearregression.py,
pylabsinplot.py,
animatedsinplot.py, and
billiards_basic.py.
- L-16 09/28/11: space curves and
surfaces
with scripts twisted_cubic.py,
twisted_cubic_orientation.py,
four_3d_subplots.py,
twisted_cubic_subplots.py,
cubic_cylinder.py,
quadratic_cylinder.py,
cubic_cylinder_cut.py, and
twisted_surfaces.py.
- L-17 09/30/11: modeling a heat wave
with Python script heatmovie.py.
- L-18 10/03/11: strings, dictionaries,
and files
with Python scripts randpoly.py
and filepoly.py.
- L-19 10/05/11: review of the first
18 lectures
with Python scripts ratsqrt3.py,
fibseries.py,
rootplots.py, and
freqdict.py
- L-20 10/07/11: exam on the first 18 lectures
- L-21 10/10/11: web clients and crawlers
with Python scripts sympydochtmlopen.py,
copywebpage.py,
scanquotes.py,
scanhttplinks.py,
webcrawler.py, and
tallytags.py.
- L-22 10/12/11: processing data from the web
with Python scripts ctastopname.py,
ctastoptimes.py,
ctaconnections.py, and
ctaconnectstops.py.
- L-23 10/14/11: processing data with a
database
with Python scripts dbctafillstops.py,
dbctastopquery.py, and
dbctafillstoptimes.py.
- L-24 10/17/11: classes, functions,
and series
with Python scripts falling_object.py,
enumpowers.py,
enumpowersiter.py,
enumpowersiterator.py,
powerenumerator.py, and
mtaylor.py.
- L-25 10/19/11: functions & operator
overloading
with Python scripts falling_objectV2.py,
make_function.py,
make_funcode.py,
flopfloats.py,
flopsum.py,
floppoly.py, and
quaternion.py.
- L-26 10/21/11: differentiation techniques
with Python scripts numdiff.py,
symdiff.py,
speelpenning1.py, and
speelpenning2.py.
- L-27 10/24/11: extending Python
with C code first_hello.c
and first_hello.c.
- L-28 10/26/11: object-oriented
simulations
with Python scripts hello_threading.py,
fastfood.py,
taketurns.py, and
restaurant.py.
- L-29 10/28/11: interval arithmetic
with Python scripts intvalmotiv.py,
usempmathiv.py,
usempmathivfun.py,
intvalsolved.py, and
intvalnewton.py.
- L-30 10/31/11: ordinary differential equations
with Python scripts pendulum.py,
pendlsode.py,
celestial.py, and
tractrix.py.
- L-31 11/02/11: random walks and cellular
automata
with Python scripts walk2D.py,
walk2Dv.py,
spy_plot.py,
spy_plot_movie.py, and
game_of_life.py.
- L-32 11/04/11: class hierarchies
with Python scripts classpoint.py,
showpoint.py,
classline.py,
showline.py,
classparabola.py, and
showparabola.py.
- L-33 11/07/11: hierarchies for differentiation
with Python scripts funwithdiff.py,
funquaddiff1.py,
funquaddiff2.py,
subformdiff.py, and
extrapoldiff.py.
- L-34 11/09/11: web interfaces
with Python scripts python_works.py,
web_det.py;
HTML code show_form.html,
with action defined by process_form.py;
show_process_form.py,
and compute_det.py.
- L-35 11/11/11: network programming
with Python scripts tcp_server.py,
tcp_client.py,
mc4pi2.py,
mc4pi_client.py,
mtserver.py,
mtclient.py,
clockserver.py, and
clockclient.py.
- L-36 11/14/11: Maxima, a component in Sage
- L-37 11/16/11: computational group theory in GAP
- L-38 11/18/11: higher arithmetic with PARI/GP
- L-39 11/21/11: statistical computing in R
- L-40 11/23/11: Singular, computer algebra
for polynomial computations