Class DescriptionScientific 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.
Office hours (Ryerson 161-B): Mon 10am-11am, Thur 3pm-4pm
Office hours: (CSIL 2) Wed 1-2:30pm
Grading and AssignmentsThe following items determine the class grade, according to their percentages:
- 5% each: 5 homeworks, due on Tuesdays (except for hw1, hw5). These are completed individually. Homeworks involve math, and self-contained programming exercises.
- ~11% each: 5 projects. Due Thursdays, including 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).
- 10%: In-lab practical exam (completed individually, Mon Feb 26). Tests ability to write and run basic programs similar to those from previous homeworks and projects.
- 10%: In-class written final exam (Tue March 6). 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 some 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. Labs are sometimes for additional lecture material, and sometimes for technical information about programming and software. The final lab slot is for the in-lab practical exam.
Late PolicyLate 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/winter2018/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.
- 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).
- The CSIL Macs are the reference platform on which programming work will be graded. The CS department Linux machines (like those at CSIL) is also a platform on which you may work. Some debugging tools, like valgrind, are unfortunately only available on Linux. We also hope to permit you to work on your own Mac or Linux laptops, but some patience and collaborative effort may be required. Windows (even with Cygwin) will not be supported.
In this course, as in all your courses, you must adhere to the college-wide Academic Integrity & Student Conduct guidelines as set forth at http://college.uchicago.edu/policies-regulations/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.)