CMSC 23710/33710
Scientific Visualization, Winter 2015
Instructor: |
Gordon Kindlmann |
|
TAs: |
Denis Pankratov, Sean Laguna |
|
Lectures: |
Tuesday & Thursday 1:30pm-2:50pm; Ryerson 251 |
Labs: |
Mondays 2:00pm-3:20pm (Sections 1 and 2), 3:30pm-4:50pm (Sections 3 and 4); CSIL 1 and 2 |
Office hours: |
Kindlmann (Ryerson 161-B): Mon 10am-11am, Thur 3pm-4pm |
Pankratov (CSIL 1): Tue 6pm-7pm |
Laguna (CSIL 1): Wed 7pm-8pm |
|
|
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 scalar, vector, and tensor fields) will be
explained in the context of real-world data from scientific and
biomedical domains. The course is also intended for students outside
computer science who are experienced with programming and scientific
computing on scientific data. Programming projects will be in C.
|
[ Quick links:
Piazza
Q&A
|
SVN for SciVis |
scivis-2015 on Phoenixforge |
Software for SciVis ]
Assignments
Homeworks and projects are due at 11:59pm unless otherwise noted.
| Assigned: | Due: | Description: |
Homeworks: |
Mon Feb 9 |
Mon Feb 16 |
Homework 4: Volume rendering |
|
| | (Homework 3 cancelled) |
|
Sat Jan 17 |
Thu Jan 22 |
Homework 2: Vectors, Bases, and unu |
|
Tue Jan 6 |
Mon Jan 12 |
Homework 1: Math Background |
Projects: |
Fri March 13 |
Wed March 18 |
Project 4 (p4vectr): Vector field visualization by LIC
| |
Tue Feb 17 |
Thu Feb 26 |
Project 3 (p3rendr): Volume rendering with 3D convolution
| |
Mon Jan 26 |
Wed Feb 4 |
Project 2 (p2mapr): Colormapping 2D convolution, marching squares
(See Lab2)
| |
Thu Jan 8 |
4:59pm Fri Jan 16 |
Project 1 (p1plotr): Plotting convolution
| Readings: |
Mon Feb 9 |
Tue Feb 17 |
| |
Thu Jan 22 |
Thu Jan 29 |
- Ware, "Chapter 3: Lightness, Brightness, Contrast, and Constancy" (focus on pp 69-83), from "Information Visualization", 2012.
- Ware, "Chapter 4: Color", from "Information Visualization", 2012.
- Borland and Taylor,
"Rainbow Color Map (Still)
Considered Harmful", IEEE Computer Graphics and Applications, March/April 2007, pp.14-17.
| |
Tue Jan 15 |
Tue Jan 22 |
FSV sections 1.10, 1.11, (plus for 33710 students: 1.13), 2.0, 2.1
| |
Tue Jan 13 |
Tue Jan 20 |
FSV sections 1.0 through 1.9
| |
Tue Jan 13 |
Thu Jan 15 |
FSV sections 3.0 and 3.1
| |
Thu Jan 8 |
Mon Jan 12 |
Chapter 0, and Sections 4.1 and 4.2 of
the Foundations of Scientific Visualization (FSV) class notes (v0.50). The pdf directory is
password-protected (given in class). The FSV notes will be updated
throughout the quarter, but not in a way that changes section numbering.
| Labs: |
Mon Feb 23 |
Mon Feb 23 |
Lab 3: Project 3 work, now with iso |
|
Mon Jan 26 |
Mon Jan 26 |
Lab 2: getting going on Project 2 |
|
Mon Jan 12 |
Mon Jan 12 |
Lab 1: getting going on Project 1 |
|
Syllabus
Content of future weeks may change.
Week: |
Material |
Week 1 (Jan
6,
8) |
Introduction. Principles. Basic calculus. Linear interpolation.
Convolution. Raster Structure
|
Week 2 (Jan
13,
15) |
Vectors, bases, transforms, and coordinates.
Tensors. Derivatives.
|
Week 3 (Jan
20,
22) |
Color: its perception and representation. Colormaps.
Taylor Series. Isocontours and Implicit Surfaces. Homogenous coordinates.
|
Week 4 (Jan
27, 29) |
(Analysis of bilinear interpolation isocontours in Mathematica .nb .pdf)
Scalar field structure from derivatives and topology.
Graphics primer. Direct volume rendering basics.
|
Week 5 (Feb
3, 5) |
Transfer functions for direct volume rendering.
|
Week 6 (Feb 10, 12) |
Vector data and visualization.
|
Week 7 (Feb 17,
19) |
Vector data and visualization.
|
Week 8 (Feb 24,
26) |
Streamline integration, vector field Jacobian
and critical point characterization (Mathematica nb pdf)
|
Week 9 (March 3, 5) |
Project 3 discussion, Intro tensors.
|
Week 10 (March 10) |
Tensor glyph design (see also this paper's slides)
|
Prerequisites
In this offering of SciVis programming
projects will be completed in C, whereas past offerings have used Python.
The nature of the programming projects will be more technical and
low-level than in the past (more like a “systems“ class).
Therefore,
cs154 is a prerequisite.
Also, your math background must include basic linear algebra.
Grading and Assignments
The following items determine the class grade, according
to their percentages:
- 4% each: 5 homeworks (completed individually).
First one due Monday of second week,
after that due Thursdays.
- 11% each: 5 projects (completed individually or in pairs).
Due Thursdays, except Project 5, due
Tuesday of finals week (March 17).
- 15%: In-class final exam (Tuesday March 10). You may bring
a single (double-sided) letter-size page of hand-written notes.
- 10%: In-lab practical exam (completed individually, Monday March 2).
Tests ability to write and run basic programs similar to those from
previous HWs and Projects.
All HW and Project deadlines are 11:59pm, unless otherwise noted.
The Thursday deadlines alternate between HWs and Projects.
More work will
sometimes be requested of students registered
in 33710.
For the projects, a 23710 student may pair with a 33710 student,
but the work required will be that for 33710 students.
Thoughtful class participation (such as asking and
answering questions) may also influence your final grade.
Late Policy
The grade on homeworks and projects is scaled
by a factor that starts at 1 for on-time hand-ins, and
decreases with time after the deadline.
Every 3 hours, 1/9 is
subtracted from the scaling factor, until it gets to and stays zero.
In other words,
if something is late but by less than 3 hours, the highest
grade it can get is 88.888%. Otherwise, if less than 6 hours
late, the highest grade is 77.777%, etc. See the plot at right.
The time that matters for this determination is
the time of your last commit,
as recorded by the Phoenixforge SVN server;
see the SVN for SciVis
page for details.
If you can't finish something on time, it is far better to finish
it in some form, as soon as possible, rather than being a
perfectionist and taking much longer. You don't want to have a
zero grade for any assignment.
In addition, each student is allotted three 24-hour extensions
(“late-chips”), to be applied to any
homework or programming project, except the
first homework and the first project (this speeds their grading,
to help you make an informed decision about staying in the class).
You can't use multiple late-chips for a single assignment. In the case of two
students working in a pair for a project, both students use their
extension at the same time. You must request the extension before
the assignment deadline, via the work-group server.
Exceptional circumstances may warrant additional consideration,
at the instructor's discretion (post a private question in the
per-assignment folder on Piazza).
It is hard to be generous with a student panicking near the deadline
about a situation that could have been anticipated earlier.
Communication and Resources
- Lectures: Come to class; you'll learn something! PDFs of slides
will be available, but this won't include material on the board, or any
summary of in-class discussions.
- There is no required textbook. There will be readings from papers in the visualization literature,
from the instructor's "Foundations of Scientific
Visualization" notes, and from various book chapters.
- The class web page at
http://people.cs.uchicago.edu/~glk/class/scivis/
will have information about homeworks, projects, and readings.
- Announcements to the class will generally be sent via the
class Piazza page at http://piazza.com/uchicago/winter2015/scivis2015/home.
Questions about assignments should also be posted on Piazza.
The professor will make an effort to make
sure everyone registered is enrolled on Piazza before the first class.
If you add the class after that, you will have to make sure to enroll yourself at
http://piazza.com/uchicago/winter2015/scivis2015.
- Email and mailing lists:
- Email to students individually will be addressed to their CNetID@uchicago.edu address. Also, this address will be subscribed to the
class mailing list automatically, based on class enrollment.
Class-related announcements will sometimes go out on this list.
Note the list archives to make sure you haven't missed anything. The authentication for your list membership
is the random character password within the initial "Welcome to the Scivis-2015 mailing list!" message.
- Question should be asked on Piazza, so that everyone can benefit from seeing
the answer, though private questions are also possible.
If you must email the professor or TAs,
please write only to the
scivis-2015-teach mailing list.
This address provides a uniform and archived way of reaching the entire
teaching staff. If you are writing from an address other than
CNetID@uchicago.edu,
please identify yourself
(at the beginning of the message, or in the subject line) with your
CNetID.
- The SVN for SciVis
page describes how svn will be used for getting
files related to the projects (such as datasets), and for handing in homework and projects.
Nothing will be done on paper.
- The Software for SciVis page describes
what software is required to do the programming assignments.
Unlike in past offerings of this class, we will be using the
Computer Science Instructional Laboratory (CSIL) Mac computers as the reference platform on which
programming work is to be completed and graded.
Academic Honesty
The University of Chicago is a community of scholars. Students
must understand and internalize the ethics of their academic community. A good
place to start is
the Cadet
Honor Code of the US Military Academy: "A Cadet will not lie,
cheat, or steal, or tolerate those who do." The kind of
property that matters most to academics is ideas, and to pass
someone else's ideas off as your own is to lie, cheat, and steal.
The University has a two-paragraph policy on
Academic Honesty and Plagiarism, which you should read and understand.
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).