
Description:Scientific visualization combines computer graphics, numerical methods, and mathematical models of the physical world to create a visual framework for understanding and solving scientific problems. The mathematical and algorithmic foundations of scientific visualization (for example, scalar, vector, and tensor fields) will be explained in the context of realworld data from scientific and biomedical domains. The course is also intended for students outside computer science who are experienced with programming and computing with scientific data. Programming projects will be in C and C++. 
AssignmentsUnless otherwise noted, projects are due at 9 PM (not midnight), and homeworks are due at 9 AM (so that even with an extension we can discuss answers in the next Thursday class). See this weekbyweek diagram of the planned assignment dates so that you can plan your quarter accordingly. The pdf directory, for the Foundations of Scientific Visualization (FSV) class notes, other readings, and PDFs of slides, is passwordprotected (password given on Piazza).

Week:  Material 

Week 1 (Jan 3, 5) 
Introduction. Principles. Basic calculus. Linear interpolation. Convolution. 
Week 2 (Jan 10, 12) 
Raster Structure. Storing Values, Vectors, bases, transforms, and coordinates. Taylor expansions. Separable Convolution. 
Week 3 (Jan 17, 19  Isocontours (Mathematica bilinear math .nb, .nb.pdf). Color: perception and representation. Colormaps. 
Week 4 (Jan 24, 26) 
3D Graphics Primer, Volume rendering ingredients. 
Week 5 (Jan 31, Feb 2) 
Volume rendering, NewtonRaphson rootfinding. 
Week 6 (Feb 7, 9) 
Transfer functions, Memory Locality. Parallelization with Pthreads. 
Week 7 (Feb 14, 16) 
Vector fields, critical Points. Integrating paths through vector fields. 
Week 8 (Feb 21, 23) 
Derivatives of vector fields, Eigensystems (Mathematica notebook .nb, .nb.pdf ) 
Week 9 (Feb 28, March 2) 
Tensor data and its sources; tensor visualization techniques and applications. 
Week 10 (March 7) 
Inclass final. 
Student interactions are an important and useful means to master course material. We recommend that you discuss the material in this class with other students, and that includes the homework and programming assignments. So what is the boundary between acceptable collaboration and academic misconduct? First, while it is acceptable to discuss homework, it is not acceptable to turn in someone else's work as your own. When the time comes to write down your answer, you should write it down yourself from your own understanding. Moreover, you should cite any material discussions, or written sources, e.g., "Note: I discussed this exercise with Jane Smith." You may feel there is a slippery slope from sanctioned discussions to cheating, but a basic principle holds: present only your ideas as yours and attribute all others.
The University's policy says less than it should regarding the culpability of those who know of misconduct by others, but do not report it. If one student "helps" another by giving them a copy of their assignment, only to have that other student copy it and turn it in, both students are culpable. If you have any questions about what is or is not proper academic conduct, please ask the instructor. (This description of Academic Honesty is derived from those of Stuart Kurtz and John Reppy).