Designing interactive visualizations for X
Table of Contents
This was posted at the date above on the department’s list of instruction-initiated projects for CSC494H1. Nancy Hu and Evan Wang were selected for CS1 and CS2. Kevin Li and Charles Green were selected for operating systems. And Victor Zheng was selected for computer architecture.
Project description #
Textbooks and lecture notes that are available online have the opportunity to convey information in a variety of ways. The modalities go beyond traditional static methods (e.g., diagrams, text) to dynamic (e.g., animations) and interactive. Studies have shown that, for example, allowing students to both animate and interact with visualizations of algorithms (like bubble sort) is more engaging and leads to better student outcomes [1]. More recently, interactive visualizations have been created for explaining convolutional neural networks [2]. Broadly speaking, prior art supports that visualization and interaction are important tools in teaching and learning [3, 4], especially when interactive visualizations are used in active learning [5].
X = CS1 and CS2 #
In this project, you will design and implement interactive visualizations for CS1 (e.g., CSC110) and CS2 (e.g., CSC111) level courses. Topics in CS1 and CS2 range from fundamental control flow (e.g., if statements, loops) to fundamental data structures and algorithms (e.g., linked lists, graphs). Beyond programming, visualizations may also be created for theoretical concepts, such as running time analysis. These visualizations will work entirely within a user’s browser, without server-side communication. The end goal is to integrate these visualizations directly into lecture notes used at the University of Toronto.
X = operating systems #
In this project, you will design and implement interactive visualizations for operating systems (CSC369H). Topics in operating systems include the mechanisms and policies used to virtualize the computer (e.g., page replacement, process scheduling, etc.). These visualizations will work entirely within a user’s browser, without server-side communication. The end goal is to integrate these visualizations directly into lecture notes or Quercus pages (if possible) used at the University of Toronto.
This project is ideal for students interested in operating systems, computer science education research, and data visualization.
X = computer architecture #
In this project, you will design and implement interactive visualizations for computer architecture (CSC258H1, CSC368H1). Topics in computer architecture range from fundamentals of caches and pipelining to multi-core and specialized architectures. These visualizations will work entirely within a user’s browser, without server-side communication. The end goal is to integrate these visualizations directly into lecture notes or Quercus pages (if possible) used at the University of Toronto.
This project is ideal for students interested in computer architecture, computer science education research, and data visualization.
References #
[1] Grissom, Scott, Myles F. McNally, and Tom Naps. “Algorithm visualization in CS education: comparing levels of student engagement.” Proceedings of the 2003 ACM symposium on Software visualization. 2003.
[2] Wang, Zijie J., et al. “CNN explainer: learning convolutional neural networks with interactive visualization.” IEEE Transactions on Visualization and Computer Graphics 27.2 (2020): 1396-1406.
[3] Hundhausen, Christopher D., Sarah A. Douglas, and John T. Stasko. “A meta-study of algorithm visualization effectiveness.” Journal of Visual Languages & Computing 13.3 (2002): 259-290.
[4] Ericson, Barbara J., Mark J. Guzdial, and Briana B. Morrison. “Analysis of interactive features designed to enhance learning in an ebook.” Proceedings of the eleventh annual international conference on international computing education research. 2015.
[5] Naps, Thomas L., et al. “Exploring the role of visualization and engagement in computer science education.” Working group reports from ITiCSE on Innovation and technology in computer science education. 2002. 131-152.
Skills #
X = CS1 and CS2 #
Strong software engineering skills and experience with front-end development is required. These skills may be demonstrated through course work (e.g., CSC301, CSC309) and/or relevant internships and projects. Strong proficiency in concepts covered in first-year computer science is required.
Experience creating data visualizations (e.g., by experience with CSC316) is an asset. Interest in computer science education is an asset.
X = operating systems #
Strong software engineering skills and experience with front-end development is required. These skills may be demonstrated through course work (e.g., CSC301, CSC309) and/or relevant internships and projects. Strong proficiency in concepts covered in CSC369H is required.
Experience creating data visualizations (e.g., by experience with CSC316) is an asset. Interest in computer science education is an asset. Strong proficiency in concepts covered in CSC469H1 is an asset.
X = computer architecture #
Strong software engineering skills and experience with front-end development is required. These skills may be demonstrated through course work (e.g., CSC301, CSC309) and/or relevant internships and projects. Strong proficiency in concepts covered in CSC258H1 and CSC368H1 is required.
Experience creating data visualizations (e.g., by experience with CSC316) is an asset. Interest in computer science education is an asset.
Notes #
The CS1 and CS2 project is supervised by Mario Badr and David Liu.