Skip to content

class repo for Visual Analytics, DSE CCNY Fall '23

Notifications You must be signed in to change notification settings

mab253/dataviz_fall23

Repository files navigation

DSE I2700-3FG - 📀📊️🌎🪲 Visual Analytics

Instructor: Professor Madeline Blount
Term: Fall 2023
Time: Wednesdays 4:50-7:20pm
Space: Shepard S-275
Office Hours: virtual by appointment, schedule here
E-mail: [email protected] City College, City University of New York

course description

This is a graduate-level course on the theory, practice, design, and critique of data visualization. If "technology has built the house in which we all live" (Ursula Franklin), data certainly makes up the materials for this house, how it works, and how it looks. How does data do its work, and why is visualization a crucial part of this? What are the limits of data, and some potential pitfalls of data visualization? How can visualization help us make sense of the ever-increasing deluge of data in our world? How do we determine what are "good" data visualizations, and how do we make them? Can we automate them - and should we? We'll see how creating strong, evocative, and informative data visualization involves techniques from art, design, math, psychology, computer science, and other fields.

Our explorations in this class will be technical as well as conceptual. We will dive into interdisciplinary readings as we learn the nuts and bolts of designing, coding, and analyzing data visualizations.

what will we do in this class?

  • learn some basic and advanced tools of data visualization in Python and Javascript
  • refine our visualizations based on design principles from interdisciplinary sources
  • work with real datasets from a wide variety of domains
  • develop techniques in interactivity, geospatial mapping, and machine learning visualization
  • get comfortable reading documentation and using new tools quickly
  • interrogate the concept of data as a form of knowledge production, and learn to approach visualizations critically
  • iterate and collaborate on a final data project at the end of the semester

course format

This course will generally meet in-person for 2.5 hours on Wednesdays. Each class session will likely involve:

  • Short Lecture + Group Discussion
    • Based on the readings, due before class each week
  • Student Presentations
    • Mini-talk based on visualization found in the world (see assignment)
  • Lab + Workshop
    • Programming and hands-on work; this will sometimes be guided by the professor, and sometimes involve documentation-based tutorials and group work

👾 We will also build an asynchronous offline community (as exists in nearly every endeavor @ this point!). We will have a class Discord server where we will have multiple channels for posting updates, posing questions, commenting on readings and each others' work, sharing resources, etc.

🎥 There may be a few times throughout the semester when I will film a lecture + lab instead of giving one in-person. When I post a video instead, you will be free to watch it in your own time. These asynchronous lectures will be clearly marked on the schedule. In the case of any change in the schedule, I will announce this change ahead of time via Blackboard/e-mail.

The final for this class will be to develop a data visualization project in a small group. There is no exam in this course.

important info:

key dates
materials & references
tools
expectations & requirements
evaluation
academic honesty & integrity
contact & questions

SCHEDULE, ASSIGNMENTS, READINGS:

💥subject to change

Week 0: Aug. 30
Introduction to Data Visualization, Hello World!

slides! link for class

Assignment: complete class survey; "hello world," post on Discord (invite/link for both will be e-mailed)
DUE: Friday Sep. 1st, 5:00pm (happy labor day weekend!)


Week 1: Sep. 6
History of Data Visualization, Beginnings
🤖 starting off w/python

Readings due today:


Week 2: Sep. 13
Abstraction + Fundamentals of Data Analysis
🤖 python libraries

Readings due today:


Week 3: Sep. 20
Visual Perception, Aesthetics, and Color
🤖 python libraries

Readings due today:


Week 4: Sep. 27
Design Principles + Data Storytelling
🤖 python libraries

Readings due today:


Week 5: Oct. 4
Interactivity
🤖 introducing javascript

Readings due today:


Week 6: Oct. 11
Geospatial Data: Maps I
🤖 javascript

Readings due today:


Week 7: Oct. 18
Geospatial Data: Maps II
🤖 javascript

Readings due today:


Week 8: Oct. 25
Dashboards + Live Data
🤖 javascript, python

Readings due today:


📊 Mid-term Mini-Project Due, Oct. 29 by 11:59pm


Week 9: Nov. 1
Visualizing Uncertainty
🤖 javascript, python

Readings due today:


Week 10: Nov. 8
Visualizing Texts, Networks and Trees
🤖 javascript, python

Readings due today:


Week 11: Nov. 15
Data Collection and Missing Data
🤖 python libraries

📊 Final Project Proposal + Groups Due, before class

Readings due today:


Week 12: Nov. 22
NO CLASS, HOLIDAY


Week 13: Nov. 29
Big Data, Multidimensions, ML

Readings due today:


Week 14: Dec. 6
Questioning Automation, Wrap-Up & Final Presentations

Assignment: work on final project
FINAL REPORT DUE: Dec. 15th, 11:59pm


key dates

  • mid-term mini-project: due Oct. 29, 11:59pm
  • final project presentation: in-class, Dec. 6th
  • final project repot: due Dec. 15th, 11:59pm

assignments

You will be responsible for:

  • weekly: Discord post, due 4:00pm EST before every class session, starting Week 2
  • 1 mini-presentation of Discord post visualization (scheduled throughout course)
  • 1 mid-term assignment (solo work)
  • 1 final group project (proposal, presentation, and final report)

More details for each of these assignments will be given throughout the semester.

materials and references

All course material will be linked via this page on Github. I will often post extra links, tool documentation, and further references beyond the required materials that might be helpful to you, especially as you build your own visualizations - but these extra resources will be optional. There will be no textbook for this course other than what's linked here. I will post the readings at least 2 weeks in advance, but if you look far ahead you might see some "TBDs." I will also post any in-class workshop material (slides, links, etc.) in a folder for each week.

tools we will use a lot

expectations and requirements

how can I do well in this class?

The discussion and lab combination in this class means that attendance is very important, both for your own learning and the learning of your fellow students. Collaborative workshops and rich critical inquiry simply will not happen if we don't have a consistently present, engaged crew of classmates. Attendance in-class, as well as engagement (active listening, asking questions, etc.), will count toward your final grade. Further, most of the technical component of the class involves in-person labs. At the end of each class section with a lab or workshop, you will need to submit your code to show your in-class work.

That said, things happen. Everyone in this course will be allowed 1 absence, no questions asked. Every absence after this 1 will result in a deduction from your partipication/attendance portion of your final grade. Lateness beyond 20 minutes is considered an absence. If you know ahead of time that you will need to miss class, please let me know as soon as possible, and we can arrange a way for you to make up the work.

It is crucial that we build a space where everyone can learn. This class will be an inclusive and harassment-free space for everyone, with no tolerations of discimination based on gender, race, sexual orientation, religion, disability, or appearance. Please let me know privately if you require an academic accommodation.

evaluation:

Grading breakdown:

  • Participation/Attendance (including in-class lab work): 20%
  • Weekly Async Posts: 20%
  • Midterm Assignment: 20%
  • Final Project: 40%

on late work:

Late assignments drop 10% per day, starting after the due time. (If you submit a Discord post 1 hour after the due date, for example, it drops 10%. If you wait another 24 hours, it drops 20%.)

✉️ To receive credit for late work, you will need to e-mail me once you have completed it.

If you have a reason for needing an extension (where you will receive full points), please reach out to me before the due date for an assignment.

academic honesty and integrity:

Plagiarism is "the act of presenting another person's ideas, research or writings as your own." (CUNY). This is as true for writing code as it is for writing others' words and pretending that they are yours.

It is important that everything you turn in for this class is your own work. I understand that collaborating with your classmates can be really helpful when learning - you are allowed and encouraged to do this! However, the code and designs you submit must reflect work you have done on your own. To outline some of the boundaries here, it is acceptable to:

  • Discuss the course’s material with others in order to understand it better.
  • Help a classmate identify a bug in their code.
  • Incorporate a few lines of code that you find online or elsewhere into your own code, provided that those lines are not solutions to assigned work and that you cite the lines’ origins.
  • Turning to the web or elsewhere for instruction beyond the course’s own, for references, and for solutions to technical difficulties, but not for outright solutions to assigned work.
  • Whiteboarding solutions with others using diagrams or pseudocode but not actual code.

It is not acceptable to:

  • Search for or solicit outright solutions to assessments online or elsewhere.
  • Split an assessment’s workload with another individual and combine your work. (exception: group projects)
  • Submit (after possibly modifying) the work of another individual
  • Use AI-based software that suggests or completes answers to questions or lines of code.

These terms modified and inspired by Harvard's CS50's academic honesty policy, here.

I have ways of checking on the originality of your code and assignments. Consequences for violating this academic honesty policy will be severe, including but not limited to failing the course.

You can find CCNY’s Academic Integrity Policy in full here. Do not plagiarize.

contact and questions

👾 Our class will have a Discord server for posting questions and communicating with each other.

If you would like to ask a question privately, please e-mail me - I am available and I try to respond within 24 hours. You are also invited to schedule some virtual office hour time to talk, here. If you need a time that's not on this schedule, please e-mail me.

About

class repo for Visual Analytics, DSE CCNY Fall '23

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published