Andrew Pullin
Carleton University
Andrew Pullin has been part of the IT team in the School of Computer Science at Carleton since 2010. His duties are split mainly between three areas that support teaching and research in the School: Virtualization and cloud computing infrastructure; Windows Active Directory and SCCM infrastructure (labs); Core infrastructure (linux servers, server room, networking).Outside of work, he's a Beaver Scout Leader, Hockey Trainer, Ringette Trainer, Soccer Coach, Softball coach ... basically a volunteer for whatever the kids are doing. In the winter he spends most of his free hours volunteering at a City of Ottawa outdoor rink. He loves playing with... err... helping his kids play with things like Lego robotics and Scratch. Family canoe camping is his number one get-away activity.He also provides - you guessed it - IT support to a number of non-profits. He built and maintains SpaceFactsBot for the wikipedia community.
Discover how the virtualization - most importantly cloud-based (Openstack) - has transformed teaching and research at Carleton University's School of Computer Science (SCS).
Drawing on eight years of experience, and expanding on previous CANHEIT presentations, this presentation will focus on some of the many use-cases that now exist in the SCS programs and research and the virtualization technology used to support them. It is hoped this will provide attendees with practical ideas on how to use cloud technology - and more generally, virtualization - to support their own teaching and research users.
Some scenarios:
Traditional teaching courses use a variety of customized images where the goal is providing pre-configured software, allowing the students to focus on learning the concepts.
Compute, AI and Machine Learning courses and especially research groups are more interested in high performance applications; they need images that give them ready to use tools such as MPI, cilk, and hadoop, but also images that are flexible so they can customize them to their unique needs.
Security courses require the ability to launch a large variety of instances with known exploits that can be hacked in a safe environment.
High Performance Computing has also brought the need for teaching and research on GPUs, where the limited resources need to be shared by many individuals.
Web application development courses need an environment where students can build live systems and have remote users interact with those systems.
OS / Kernel design courses rely on images that are easy to redesign, and easy to recover or recreate if their kernel hacks go badly.
There are also other unique and one-off scenarios, such as supporting Biology courses with a large and complex Bioinformatics image, or providing a docker based digital humanities environment for a large History Department course.
The solutions consider the perspectives of the variety of players. The course delivery users (Faculty, instructors, TAs), the clients (students), and the IT staff that must support it. How do you match specific resources to learning outcomes? How do you collect and mark assignments for 600 or more students in a single course? How do you change your course plan on short notice and be supported by your infrastructure rather than hindered? How do you balance the resources of many competing users? All of these scenarios have different challenges for everyone, and virtualization has been used to make things easier.
Virtualization has given the School the ability to support teaching and research in ways that were scarcely imaginable a decade ago. Every solution is unique. Even with the growth of - and emphasis on - our cloud infrastructure, many of our solutions still use a hybrid approach, where the students can choose to use lab, client-side or cloud virtualization - or a combination of each - to support their learning and research goals.
Student Success and Systems: Teaching and Learning: evolution of technology