CMSE 402

Logo

This is the webpage for CMSE 402 for the Spring 2025 semester.

View the Project on GitHub msu-cmse-courses/cmse402-S25-student

CMSE 402: Data Visualization Principles and Techniques

Course Syllabus

“…graphical excellence requires telling the truth about the data”
(Edward R. Tufte; The Visual Display of Quantitative Information)

Course Description

One of the critical steps in data analysis is creating visual representations that facilitate the interpretation of the data, for the purposes of communication, analysis, and decision-making. As datasets and models become ever more complex, and the questions that we ask of them become more sophisticated, it is critical to create graphics that communicate information as clearly and effectively as possible. The overall goal of this course is to give you an introduction to the core principles, methods, and techniques of data visualization that will help you to create meaningful graphics that effectively communicate information. It will also introduce you to a variety of software tools that can be used to visualize a variety of different types of data (e.g., geographic, multivariate, statistical, vector, etc.).

By the end of this course, you will be able to:

  1. Identify the key aspects of visualization of datasets and how they affect the interpretation of data
  2. Analyze a dataset, determine the questions that can be asked of it, and create one or more visualizations using standard techniques that effectively answer those questions
  3. Apply standard techniques to visualize multidimensional scalar and vector datasets using pre-built toolkits.

We will work toward the goals expressed above throughout this course using a range of activities – primarily by writing software both individually and in small groups, but also through discussion, presentations, and other types of exercises.

Topics covered

The primary topics covered in this course include:

Expectations for you (prior to the start of the semester)

The prerequisites for this course are CMSE 201 and 202, as well as multivariate calculus (Calc III; MTH 234 or 254H, LB 220, or the equivalent). In order for you to fully participate in this class, you are expected to do the following prior to the beginning of the semester:

Required reading materials

This class has two required texts, which will be heavily used starting in the first week of class:

  1. The Visual Display of Quantitative Information, 2nd Ed. by Edward Tufte (ISBN 978-0961392147; Amazon link)
  2. The Truthful Art: Data, Charts, and Maps for Communication, by Alberto Cairo (ISBN 978-0321934079; Amazon link)

The total cost of the paper versions of these books is approximately $80 on Amazon.com. These textbooks will be supplemented by a variety of journal articles and web-based materials, which will be provided during the semester.

Other required materials

In-class programming assignments are a critical part of the learning process in this course. To that end, you are expected to bring your laptop, power cord, and, if possible, an HDMI adapter (to plug into the external monitors when necessary) to class every day. If you do not have a laptop, or if your laptop won’t run the software that we need for class, I can arrange to give you a spare machine to use this semester.

Course activities

Class participation: Active class participation (led both by the instructor and by students) is critical to the success of this course. As such, you are expected to attend class every day, bring the required materials (including your laptop and copies of any pre-class assignments and readings) and to actively participate in the in-class activities.

Pre-class assignments: We will often have assignments that are due prior to class. The purpose of these assignments is to introduce new material and give you some practice with it so that we can focus on experimentation and implementation in class. These assignments may consist of watching videos, reading materials, answering questions, or writing software, and will be due at 12:00 p.m. the day of that class period via the course’s GitHub Classroom. We will generally use Python for pre-class assignments that involve programming.

In-class assignments: Class sessions will be held twice a week, and will be broken up into presentations, discussions, and programming/visualization activities that will allow you to implement (and get immediate feedback on) what you have just learned. In-class programming activities will be turned in at the end of the class session via the course’s GitHub Classroom.

Homework: You will have periodic homework assignments (every two or three weeks) that will provide a more in-depth exploration of the materials covered in class. These will be pursued either individually or in pairs, and will be turned in by the given deadline using GitHub Classroom.

Semester Projects: This class will have a semester project that will involve synthesizing some subset of the techniques that you have learned about for a project that relates to your personal or research interests. There will be substantial programming involved, as well as a writeup and a presentation at the end of the semester. More details will be available near the middle of the semester.

Course meeting times and locations

The details regarding the course meeting times and location can be found on the course homepage.

Other important information

Course Website, Calendar, and discussion channel: This course uses a GitHub repository to distribute course materials and an accompanying website, which can both be accessed here. Course information, including the course syllabus and calendar, can be found on the website or repository. All assignments will be handed out and turned in via a GitHub Classroom. To access both of these things, you will need to create a GitHub account. We will also have a course discussion channel on the Microsoft Teams group that is automatically set up for the course and that you should be able to access with your MSU account. The general channel for this group is intended to field your questions and to be used by all students in CMSE 402. Additionally most course communication will take place in MS Teams or via email so make sure you’re monitoring both! Please note that this course nominally also has a Desire2Learn page (at http://d2l.msu.edu), but it will be primarily used for keeping track of grades

Class attendance: This class is heavily based on material presented and worked on during class, and it is critical that you attend the section in which you are registered and participate fully every week! Therefore, class attendance is absolutely required. Since unexpected situations may arise, all students will be permitted to miss three class periods without penalty. After the first three, an unexcused absence will result in zero points for the day, which includes the in-class programming assignment points. Arriving late or leaving early without prior arrangement with the instructor of your session may be counted as an unexcused absence. Note that if you have a legitimate reason to miss class (such as job, graduate school, or medical school interviews) you must arrange this ahead of time to be excused from class. Six or more unexcused absences will result in the reduction of your grade by one step (e.g., from 4.0 to 3.5), with additional absences reducing your grade further at the discretion of the course instructor. Following some of the lessons we’ve learning as a result of the COVID-19 pandemic, if you have to miss class due to illness or self-isolation (as per the CDC recommended guidelines), your instructor will work to provide the necessary accommodations to ensure that your performance in class is not significantly impacted. However, should you find that your overall success in all of your courses is significantly impacted by any illness, please refer to the University policy on medical leave and withdrawal.

Inclusive classroom behavior: Respectful and responsible behavior is expected at all times, which includes not interrupting other students, turning your cell phone off, refraining from non-course-related use of electronic devices, and not using offensive or demeaning language in our discussions. Flagrant or repeated violations of this expectation may result in ejection from the classroom, grade-related penalties, and/or involvement of the university Ombudsperson. In particular, behaviors that could be considered discriminatory or harassing, or unwanted sexual attention, will not be tolerated and will be immediately reported to the appropriate MSU office (which may include the MSU Police Department).

In addition, MSU welcomes a full spectrum of experiences, viewpoints, and intellectual approaches because they enrich the conversation, even as they challenge us to think differently and grow. However, we believe that expressions and actions that demean individuals or groups comprise the environment for intellectual growth and undermine the social fabric on which the community is based. These demeaning behaviors are not welcome in this classroom.

Academic Honesty: Intellectual integrity is the foundation of the scientific enterprise. In all instances, you must do your own work and give proper credit to all sources that you use in your papers and oral presentations – any instance of submitting another person’s work, ideas, or wording as your own counts as plagiarism. This includes failing to cite any direct quotations in your essays, research paper, class debate, or written presentation. The MSU College of Natural Science adheres to the policies of academic honesty as specified in the General Student Regulations 1.0, Protection of Scholarship and Grades, and in the all-University statement on Integrity of Scholarship and Grades, which are included in Spartan Life: Student Handbook and Resource Guide. Students who plagiarize will receive a 0.0 in the course. In addition, University policy requires that any cheating offense, regardless of the magnitude of the infraction or punishment decided upon by the professor, be reported immediately to the dean of the student’s college.

It is important to note that plagiarism in the context of this course includes, but is not limited to, directly copying another student’s solutions to assignments that are expected to be completed individually (pre-class assignments, homework problems, and exams); copying materials from online sources, textbooks, or other reference materials without citing those references in your source code or documentation, or having somebody else do your individual assignments (pre-class assignments, homework problems, and exams) on your behalf. Note that this includes using online tutoring services that provide exact solutions. Any work that is done in collaboration with other students should state this explicitly, and their names as well as yours should be listed clearly. When collaborating with other students, you should still be coding/writing your own solutions to the assignments and should limit your collaboration to conceptual discussions about how one might go about solving the problems, not sharing exact solutions.

More broadly, we ask that students adhere to the Spartan Code of Honor academic pledge, as written by the Associated Students of Michigan State University (ASMSU):

“As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.”

Learning accommodations: If you have a university-documented learning difficulty or require other accommodations, please provide your instructor with your Accommodation Letter as soon as possible and speak with me about how I can assist you in your learning. If you do not have an Accommodation Letter but have been documented with a learning difficulty or other problems for which you may still require an accommodation, please contact MSU’s Resource Center for People with Disabilities (355-9642) in order to acquire current documentation.

Confidentiality and Mandatory Reporting: College students often experience issues that may interfere with academic success such as academic stress, sleep problems, juggling responsibilities, life events, relationship concerns, or feelings of anxiety, hopelessness, or depression. Our goal is to help create a safe learning environment and to support you through these situations and experiences. All instructors also have a mandatory reporting responsibility related to our roles as University employees. We hope that you feel able to share information related to your life experiences in classroom discussions, in written work, and in one-on-one meetings. We will seek to keep the information you share private to the greatest extent possible. However, under Title IX, we are required to share information regarding sexual misconduct, relationship violence, or information about criminal activity on MSU’s campus with the University including the Office for Civil Rights and Title IX Education and Compliance (OCR).

Students may speak to someone confidentially by contacting MSU Counseling and Psychiatric Service (CAPS) (caps.msu.edu, 517-355-8270), MSU’s 24-hour Sexual Assault Crisis Line (centerforsurvivors.msu.edu, 517-372-6666), or Olin Health Center (olin.msu.edu, 517-884-6546).

Instructional Staff Contact Information

The information regarding the instructors associated with this course and their contact information can be found on the course homepage.

Instructional Staff Office Hours

Students are encouraged to attend office/help room hours when they have any questions or concerns related to anything going on in the course or to speak with instructors more broadly about data visualization.

Information about office and help room hour times and locations can be found on the course homepage.

Grading information

Activity Grade percentage
Participation/attendance/in-class assignments 25
Pre-class assignments: 20
Homework assignments 30
Semester project (all components together) 25
   
Total: 100

Grading scale

Grade Point Percentage threshold
4.0 $\geq$ 90%
3.5 $\geq$ 85%
3.0 $\geq$ 80%
2.5 $\geq$ 75%
2.0 $\geq$ 70%
1.5 $\geq$ 65%
1.0 $\geq$ 60%
0.0 $\lt$ 60%