Class 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 real-world 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 C99.Prerequisites: CSMC 15400 is a prerequisite, because of the programming work in C, and the need to be aware of how things are actually working at the level of the CPU and its interaction with the memory hierarchy. Also, your math background should include basic linear algebra.
People
Instructor | Gordon Kindlmann Office hours: Mon 10:30am-11:30am, Thur 3pm-4pm in JCL 323 |
TAs | Tri Huynh Office hours: Tue 4-5pm in CSIL 1 |
Kai Li Office hours: Wed 4-5pm in CSIL 2 |
Grading and Assignments
The following items determine the class grade, according to their percentages:- 5% each: 5 homeworks, due on Tuesdays (except for hw5). These are completed individually. Homeworks involve math, and self-contained programming exercises.
- ~10% each: 5 projects. Due Thursdays (except for Project 5) Projects require C (C99) coding. These may be done individually or in pairs, but the same pair may work on at most three projects together (more precisely: they may submit work in at most three subdirectories of their shared repository).
- 5%: In-lab coding midterm exam (completed individually, Mon 4 Feb). Makes sure you can write working code on your own.
- 10%: In-lab coding final exam (completed individually, Mon 4 March). Tests ability to write code that performs basic computations related to previous homeworks and projects.
- 10%: In-class written final exam (Tue 12 March). You may bring a single (double-sided) letter-size page of hand-written notes.
- The lowest 5% of your work will be dropped when determining your final numeric grade.
- Labs will be held on most Mondays. Lab work is not graded, but to take this class you must be registered for a lab section, and must commit to being available for the entirety of the lab section for which you are registered. The lab time slot is used for administering the coding exams, and other weeks for additional lecture material, and technical information about programming and software.
Late Policy
Late work is not graded. However, throughout the quarter, you may get up to four 24-hour extensions (“late-chips”) on any of the assignments (except hw5). Only one extension may be used per assignment. You request late-chips at work-groups.cs.uchicago.edu, but must do so before the original (non-extended) assignment deadline (even if work-groups.cs.uchicago.edu allows you to do do after the deadline). In the case of two students working in a pair for a project, both students use their extension at the same time. 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: You'll get a better grade if you come to class. PDFs of slides will be available, but this won't always include material on the board, and it will miss all in-class discussion and demonstrations. Solutions to homeworks, and sometimes code from project reference implementations, are handed out as hard-copy in class, but not electronically.
- There is no single required textbook. There will be readings from papers in the visualization literature, and from the instructor's "Foundations of Scientific Visualization" notes. Some material will only be presented in lecture.
- 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 https://piazza.com/uchicago/winter2019/cs23710. Questions about assignments should also be posted on Piazza. Everyone who was registered prior to the first class was enrolled (by the instructor) on Piazza. If you add the class after that, you may have to enroll yourself at to the Piazza page.
- You should ask questions on Piazza, so that everyone can benefit from seeing the answer. To ask questions directly to the professor or TA, post a private question on Piazza, rather than emailing the professor or TA. If the answer to your question is something that will benefit others, we may ask you to re-post the question as non-private.
- Email to students will be addressed to their CNetID@uchicago.edu address.
- 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 (except the final exam).
- There are two reference platforms for this class: the CSIL Macs, and the CS department Linux machines (e.g. linux.cs.uchicago.edu). Reference executables will be distributed for both platforms, and both platforms will be used for grading (Macs for correctness, Linux for cleanliness including using valgrind). We also hope to support you working on your own Mac or Linux laptops, but patience and collaborative effort will be required. Windows (even with Cygwin) will not be supported.
Academic Honesty
In this course, as in all your courses, you must adhere to the college-wide Academic Integrity & Student Conduct guidelines as set forth at https://college.uchicago.edu/advising/academic-integrity-student-conduct. The college's rules have the final say in all cases. To paraphrase them:
- Never copy work from any other source and submit it as your own.
- Never allow your work to be copied.
- Never submit work identical to another student's.
- Document all collaboration.
- Cite your sources.
Please note that sharing your work publicly (such as posting it to the web) definitely breaks the second rule. With respect to the third rule, you may discuss the general strategy of how to solve a particular problem with another student (in which case, you must document it per the fourth rule), but you may not share your work directly, and when it comes time to sit down and start typing, you must do the work by yourself (or with your partner for that project). If you ever have any questions or concerns about honesty issues, raise them with your instructor, early.
(Thanks to Adam Shaw for this statement of academic honesty.)