CSCI 3656: Numerical Computation

Spring 2004

Time: Tues, Thu 5-6:15 ECCR 245

Instructor: Oliver McBryan, mcbryan@colorado.edu, ECOT 628, 303-665-0544

Office Hours: Thu 3-5.
Always contact me by email about arranging to meet me during office hours.

Web Page: http://www.cs.colorado.edu/~mcbryan/3656.04/

Text: Scientific Computing An Introductory Survey 2nd Edition, Michael T. Heath, McGraw Hill

Other References:

Summary of Course:

CSCI 3656 Numerical Computation. Covers development, computer implementation, and analysis of numerical methods for applied mathematical problems. Topics include floating point arithmetic, numerical solution of linear systems of equations, root finding, numerical interpolation, differentiation, and integration.

Prerequisites:

Two semesters of calculus, linear algebra, and one of CSCI 1200 or CSCI 1300.

The most important mathematical prerequisite is to be familiar with elementary vectors matrices and calculus. Everyone should be familiar with C, or one of its flavors. C-like languages will generally be the best choice and will be used to illustrate examples. It can sometimes be harder to get codes going in C++ or in Java - and harder to interface to some C code. Familiarity with basic UNIX concepts is assumed although you are free to work on PCs, Macs or Unix machines.

Computer Accounts:

You can use any machines you like, and program in any basic language C, Fortran etc. Accounts will be assigned to everyone in the CSEL lab. You can go to CSOPS office in basement of classroom wing, ECCR 1B09, MF 9-12 and 2-5PM to validate your access card and/or get a password card.

Assignments, Tests, Grading:

The course will be heavily oriented towards development of numerical software and hands-on experience of algorithms. During the course you will incrementally build a numerical analysis package. This package will be developed through a series of specific assignments which will have the package as a byproduct. Assignments will often generally require several weeks to complete and may at times overlap depending on your rate of progress. In almost all cases the due date for an assignment will be 1 or 2 weeks after I give the assignment. The assignments will be sufficiently challenging that the course should not be taken by someone who will not have significant time available for developing them. Each program source needs a paragraph(s) at the top describing what it does and the main approach.

There will be a mid-term and a final test worth approximately 20% each. The rest of the grade for the course will be based on the assignments. I will not give incompletes at the end of the course (extreme emergencies excepted).

Collaboration:

No collaboration is allowed on assignment code. It is fine to talk to others about content or methods.

Email:

Email should be a major mode of interaction between us. I can be reached as mcbryan@colorado.edu. I will email everyone at the address you have given me. You can of course introduce a .forward to another location if you prefer.

Please approach me first by email if you are having difficulties with the lectures, text or assignments or want to meet during office hours. Email provides 7-days a week (including evenings) interactivity and where questions are asked that have a general usefulness, allows me to reply to the whole class, not just the person posing the question - frequently others will be having the same difficulty. Furthermore I usually read email even when traveling and attempt to reply remotely. Also feel free to call me at 303-665-0544 which is my cell phone. You can call 7 days a week at reasonable hours including evenings. However usually email will prove best.

IMPORTANT: FORMAT OF SUBJECT WHEN EMAILING TO ME

1. When mailing me with any query related to the course, please ALWAYS include the string csci3656 in the Subject of the email. Here csci must be lower case and there must be no space between it and 3656. This is very important to follow exactly.

example:
Subject: csci3656 question about course

2. When mailing me assignment N, always use exactly the format:

Subject: csci3656 assignment submission N

example:
Subject: csci3656 assignment submission 3

3. If you later need to send an updated version, always use exactly the form:

Subject: csci3656 assignment submission N version V

example:
Subject: csci3656 assignment submission 3 version 2

in which case I will delete all but the highest version for that assignment. There is one space between each word above. The first version of an assignment will be called version 1 (no need to add version 1).

Finally, I want only one file emailed for an assignment submission. If your code consists of N files, then concatenate them into one, with lines of the form
####### file2.c #######
separating the different files within the big file. I do not want anything except text - no executables or tar files. Please do not send anything as "attachments" either. Just copy the big file into your email as text. You can automate creation of the big file by using a shell script, perl or awk. You could add a command to create it in your makefile.