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 linear algebra.
People
Instructor | Gordon Kindlmann Office hours: Mon 10:30am--11:30am in JCL 249 |
TA | Kai Li Fri 3:30--5:00pm in CSIL 2 |
Assignments and Grading
This week-by-week diagram illustrates the intended schedule of assignments; the syllabus and this diagram reflect the actual schedule. Assignments are weighted in your grade according to these percentages:- 5% each: 5 homeworks, due on Mondays (no extensions). These are completed individually. Homeworks involve math, and self-contained programming exercises.
- ~10% each: 5 projects, due on Tuesdays (extensions allowed). 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: a pair may submit work in at most three subdirectories of their shared repository).
- 5%: In-lab coding midterm exam (completed individually, Thu 30 Jan). Makes sure you can write working code on your own.
- 10%: In-lab coding final exam (completed individually, Thu 5 March). Tests ability to write code that performs basic computations related to previous homeworks and projects.
- 10%: Written final exam (Thu 19 March, according to final exam schedule). You may bring a single (double-sided) letter-size page of hand-written notes.
- The lowest 10% of your graded work will be dropped when determining your final numeric grade.
- Labs will be held on most Thursdays. 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 take up to three 24-hour extensions (“late-chips”) on any of the programming projects. Only one extension may be used per project. There are no extensions on homeworks, because we will go over the solutions the next day in class. You request late-chips at work-groups.cs.uchicago.edu, but must do so before the original (non-extended) project 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.
- The class Piazza page at https://piazza.com/uchicago/winter2020/cs23710 will serve as the mechanism for descriptions of the assignments, and all other announcements. Everyone who was registered just 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 University-wide Academic Honesty policies of the Student Manual. These are also described by the College under Academic Integrity & Student Conduct; expand the "Academic Integrity" section at the page bottom. To paraphrase:
- 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 idea 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. When it comes time to sit down and start writing or typing, you must do the work by yourself (or with your partner for that project). Discussion of class work must be entirely voluntary and never transactional. If you have any questions or concerns about this policy, or about the behavior of another student with respect to it, please ask your instructor (via email or in person) as soon as possible. This statement of Academic Honesty is based on that of Adam Shaw.
Sexual Harassment
Sexual harassment is not permitted. Please review the University Policy on Harassment, Discrimination, and Sexual Misconduct, in particular the Sexual Misconduct and Definitions. Harassment between students can take the form of, for example, any repeated unwelcome comments of a sexual nature, or any sexual advance associated with seeking help on class work. As a faculty member, I am required to report any harassment that I learn about to the Title IX Coordinator for the University. You can also directly contact the Coordinator if you have any questions or if you are a victim; see the University Reporting Options section of the policy.