Syllabus Jan. 9, 2006
Math 2160-1 Introduction to Scientific Computing Using C
MWF 12:55-1:45 in LCB 115
Web page: http://www.math.utah.edu/~treiberg/M2160.html
(Official updates of the syllabus and homework assignments
will be available here.)
Instructor: A. Treibergs, JWB 224, 581-8350.
E-mail: treiberg@math.utah.edu.
Office Hrs: 11:45-12:45 MWF (tent.) & by appointment.
Prereq: Calculus Math 1210 or consent of instructor.
Text: There is no text. You will be able to find the assigned
reading materials on line, in the math library and in your
old calculus book.
Students should have some C reference and should be learning
how to read it to find solutions to their programming problems.
The material on line will have samples of the types of
program you will be asked to write, but it is not a general
enough source to help you deal with all the difficulties you will
encounter.
Useful texts: B.W. Kernighan, D.M. Ritchie, The C Programming Language,
Prentice Hall, Second Edition, 1988.
(The ultimate reference. Has beginning examples as well as
a complete description of C and its use.)
S. Oualline, Practical C Programming, O'Reilly &
Associates, Inc., Third Edition, 1997.
(Detailed and opinionated. Mostly about programming
issues but not about algorithms.)
D. Etter, Introduction to ANSI C for scientists and engineers,
Prentice Hall, 1995.
Lots of examples solving simple numerical problems. Only
the basics.
R. Rothenberg, BASIC computing for calculus, Mc Graw Hill, 1985.
This book covers almost all of the calculus algorithms we
discuss in class. Many programs are presented that sum
series, find zeros, do quadrature and so on. Would be
an appropriate text for our class except that the programs
are written in BASIC instead of C. However, one programming
language is not much different than another.
D. Barnard, D. Skillicom, Effective FORTRAN 77 for Engineers and
Scientists, 2nd ed., Wm. C. Brown Publishers, 1992. Many
calculus algorithms and Gaussian Elimination. Lots of physical
applications. But not in C.
P. Perry, Crash course in C, Que Corporation, 1995.
My favorite pocket reference. Many examples and useful
information. Not a lot of crap about technicalities of
programming.
M. McGrath, C Programming in Easy Steps, Barnes & Noble Books,
orig. pub. Computer Step, 2004.
No nonsense full color description of the essentials. Price
is right.
D. Varberg, E. Purcell, S. Rigdon, Calculus, Prentice Hall,
2000.
The calculus text used at Utah for years. Programs will
sometimes be based on mathematical theorems. You will
occasionally be asked to write the mathematical
justification behind your program.
Grading: There will be seven assignments during the semester in
regular intervals. They will be posted on this web page.
You will have two weeks to do your solutions and e-mail
them to me. Your grade will be based on your work in
solving these assignments. Credit will be given only for
programs that run correctly.
E-mail the solutions of your assignments to
treiberg@math.utah.edu. The solutions should be plain text
files containing source code of your programs and your
explanation. Any format supported by the lab machines is
acceptable. If you use your home computer be sure that the
messages are not in some proprietary encoding which is
unreadable on UNIX systems in the lab. I'll refuse to
accept such solutions. If in doubt check with me in the
lab.
Tutoring Free tutoring is available in the Rushing Mathematics
Center, located between JWB and LCB. Hours M-Th 8:00 am -
8:00 PM, Fri 8:00 am-6: 00 PM, starting Jan. 17. However
most tutors will only be able to help you with the
calculus, but not the programming. Information for the
center is at
http://www.math.utah.edu/ugrad/mathcenter.html
Withdrawals:Last day to drop a class is Jan. 18. Until Mar. 3, you can
withdraw from the class with no approval at all. After that
date you must petition your dean's office to be allowed to
withdraw.
ADA: The Americans with Disability Act requires that reasonable
accommodations be provided for students with cognitive,
systemic, learning and psychiatric disabilities. Please
contact me at the beginning of the term to discuss any such
accommodations you may require for this course.
Content: The objective of this class is to learn to use the computer
as a tool for thinking about and solving mathematics
problems. We will use the C programming language. The
programming notions will be discussed as they are needed in
mathematical applications. The following mathematical
topics will be covered:
Summation of infinite series and limits;
Elementary number theory (checking primality,
factorization, Euclid's algorithm);
Finding zeros of functions (bisection method,
Newton's method);
Numerical integration (Riemann sums, trapezoid
method, Simpson's method);
Matrices and linear algebra (solving linear systems -
Gauss elimination, finding inverses,
calculation of determinants, Cramer's rule);
Various geometric problems (as illustrations of using
structures and functions in C).