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: CMSC 14300 (or 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 memory. Also, your math background must include some linear algebra (matrix/matrix and matrix/vector multiplication, matrix transpose, determinant, and inversion).
People
Instructor | Gordon Kindlmann Office hours: Mondays 1:45-3pm and Wednesdays 10:30am-noon; JCL 249 |
TAs | Jamar Sullivan Office hours: Wednesdays 2-3pm; Crerar Common Area 2B |
Vaughn Richard Office hours: Thursdays 2-3:30pm; Crerar Common Area 2C |
Assignments and Grading
This week-by-week diagram illustrates the schedule of assignments; the syllabus will detail everything as the quarter goes. Your numeric grade for the course has these weighted components:- 30% = 5 homeworks (6% each). These are completed individually. Homeworks involve math, and some small self-contained programming exercises.
- 52% = 5 projects (10% each except 11% for p3rendr phases A and B). These may be done individually or in pairs. 33710 students can pair with 23710 students. Projects require C99 coding. Later projects assume that you got earlier projects working. Grading considers correctness, cleanliness, and thoughtfulness.
- 4% = In-lab coding midterm (Tue Jan 30), to ensure that you can write C code on your own.
- 10% = Written final exam (in-class, Thu Feb 29).
- 4% = Class participation and in-person attendance, in-class quizzes.
- 33710 students do an additional project (to be defined in a flexible way, such as a written report or self-directed programming project) but all students (23710 and 33710) do the work listed above.
- To determine your final numeric grade, the lowest 9% of your graded work is dropped, and the mean is computed from the remaining work.
On the programming projects, you are encouraged to work as a pair with another student, but you must do so responsibly:
- Prior to the original (non-extended) project deadline, students form a pair through work-groups.cs.uchicago.edu. Then, only the code in the new shared repository (in its per-project subdirectory) will be graded. The code in the individual student repositories will be ignored for grading that project.
- Both students have to mutually and enthusiastically agree to work as a pair.
- By forming a pair, students agree to communicate early and often about their shared work. Neither student should ever be in the dark about what their partner is doing, or when they'll finish it.
Deadlines and Extensions
Things are due at 10:00pm, Chicago time, to encourage you to get some sleep.
Throughout the quarter, you can take up to five 24-hour extensions (“late-chips”) on any assignment except hw1 or 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) project deadline. In the case of two students working in a pair for a project, both students use their extension at the same time. Let the instructor know as early as possible about circumstances that make it hard for you to finish the work by the deadline.
Communication and Resources
- This class web page has all the needed information about videos, readings, and assignments. The Canvas page for the class is only for hosting Panopto videos and linking to EdStem discussion and Zoom office hours.
- There is no single textbook. There will be assigned readings from papers in the visualization literature, and from the instructor's "Foundations of Scientific Visualization" (FSV) notes.
- Videos: Pre-recorded videos will be hosted via Panopto and linked from the syllabus. It is impossible to make flawless videos, so be sure to read the "Notes" section of each video for corrections and clarifications. PDFs of the slides will also be available, so that you can download and take notes on the slide PDF, as well as access the hyperlinks within it. Quizzes within the videos are there to help you stay engaged, and your taking the quizzes may be part of how I assess class participation.
- We are an in-person class this year. Class meetings ("lecture") will include discussion of videos and readings, working through examples, taking quizzes, and debugging code together.
- In-person lab meetings: Lab meeting times will be for working through technical coding and debugging issues. One lab session will be for an in-lab coding midterm exam.
- The class EdStem page will be how assignments are discussed, and how all announcements are mode. Everyone registered just prior to the first class will be enrolled there, and the instructor will periodically sync EdStem enrollment with class registration. To ask questions directly to the professor or TA, post a private question on EdStem. 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.
- There are two reference platforms for this class: the CSIL (Intel-based) Macs, and the CS department Linux machines (e.g. linux.cs.uchicago.edu). Reference executables will be distributed for both platforms (and Mac binaries will have both x86_64 and ARM code), and both platforms will be used for grading: Macs for correctness, Linux for cleanliness including using valgrind. We want to enable your working on your own local Mac or Linux laptops (since it will definitely speed development and debugging), but some patience and collaborative effort may be required.
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 own work (such as by putting it in a different repo, or otherwise posting it on the web), definitely breaks the second rule, even after the class is over. 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. Reading other people's code is a great way to introduce structural similaries that may trigger plagiarism detectors. 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 private note on EdStem) as soon as possible. This statement of Academic Honesty is based on that of Adam Shaw.
Sexual Misconduct
Our school is committed to fostering a safe, productive learning environment. Title IX and our school policy prohibits discrimination on the basis of sex. Sexual misconduct – including harassment, stalking, domestic and dating violence — is also prohibited. Harassment 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. Review the Policy on Harassment, Discrimination, and Sexual Misconduct, in particular the Sexual Misconduct and Definitions, so you understand what this covers.
If you have experienced sexual misconduct, talk to someone about what happened, so you can get the support you need, and so our school can respond appropriately and promptly. If you wish to speak confidentially about an incident of sexual misconduct, want more information about filing a report, or have questions about policies, procedures, or support services, please contact our Title IX Coordinator; see the Reporting Options section of the policy. Our school is legally obligated to investigate reports of sexual misconduct after a formal complaint is filed or signed by the Title IX Coordinator, but a request for confidentiality will be respected to the extent possible. As a faculty member, I am required to report any harassment that I learn about to the Title IX Coordinator.