Justin Tung
Professor Uhe
IS445- Data Visualization
Final Project, Fall 2023
Coming into this class, I had previously taken IS430, Foundations of Information Processing, so I had a semester's experience with Python, as well as being self-taught in some further areas. This class gave me an opportunity to play with visualizations, something I had never done before. Although the material for the course is on the lighter side, each week and each assignemnt was a chance to challenge myself to not just meet the requirements, but exceed them, and in doing so, develop my personal skillset. This often looked like finding more functional and intuitive workflows, improving my ability to find sources of information, both third-party and official documentation online, and a change to explore things like different color pallates and aesthetic preferences. The material for the course also included some things that I would have otherwise found unapproachable or intimidating, such as ipywidgets, which are quickly becoming a favorite of mine.
Although I recognize that my experience in this class may not be representative for others, I find that I have been exposed to enough ideas and been given a vocabulary of representational and visual ideas which can inform how I approach visualizations in the future. When I encounter graphs online, I find myself more aware not just of the presentation of the graph, but also can understand and intuit more of its programmatic construction.
Overall, I believe I gained a lot from taking this class.
One thing I found myself subconciously doing throughout the course was to learn how to make a visualization, then want to tuck it away somewhere to refer to if I ever had to make it again. This was particularly true with the more obscure plots such as a sankey diagram or a ridgeline plot. I think something that may offer myself and perhaps other students value would be a sort of cumulative project. As we encounter plots in this course and learn about the different variations and how to manipulate them, we can make a sort of personal visual library, sort of like many of the python visualization gallaries online.
Another enhancement I would suggest is to provide more clarification between different ways of doing things. What is the difference between Matplotlib, Seaborn, and Plotly? When should they be used? What do they offer? When can one use the more simplified plt. constructor, and when should one differentiate the more object-oriented fig and ax for subplots? These are some areas where I still find myself getting confused, and believe that providing resources, even if just supplementary to the primary curriculum, can be helpful.
I was also conflicted about the position of the course in the UIUC iSchool. Although IS445 requires no prerequisite programming experience, I think that a lot of the things I learned in this course, I could not have learned without prior experience. As much as it's given a hard time, for a lot of people such as myself, I really had to start with print('Hello, World!') in order to "get it". I think that if I had jumped directly into a course like this without any prior experience, I would probably have been stuck with simply replacing data in sample code rather than feeling empowered to truly write it myself.
Given the variety of tools for visualizations available to students, I wonder if it would make sense to have a python-based data visualization course with prerequisite, then a non-python data visualization course without prerequisites that can focus on tools like visualizations in Excel or PowerBI. However, I also understand that there are higher programming courses that use this course as a prerequisite, so this bifurcation may disrupt the departmental balance of power.