Teaching from Edge to Cloud at the University of Missouri

This month, we're featuring an interview with Professor Prasad Calyam, a distinguished educator and researcher at the University of Missouri-Columbia.


Tell us a little bit about yourself

My name is Prasad Calyam, I am a Professor in the Department of Electrical Engineering and Computer Science at the University of Missouri-Columbia. I am also the Director of the Center for Cyber Education, Research, and Infrastructure (Mizzou CERI), and Greg L. Gilliom Professor in Cyber Security in the MU College of Engineering. A Core Faculty at the University of Missouri Informatics and Data Science Institute (MUIDSI). My research and development areas of interest include Cloud Computing, Cyber Security, Computer Networking, Networked-Multimedia Applications, and Advanced Cyberinfrastructure. I enjoy working with students in the "VIMAN Lab" - Virtualization, Multimedia and Networking Lab.

"My Instrumental Music Hobby" - I enjoy playing the bamboo flute, mridangam (Indian Drum), and love to compose Indian-Western fusion music on the keyboard.

What areas of knowledge are you teaching using Chameleon?

I teach Cloud Computing, an undergraduate and graduate class for about 70 students each year. The class covers, primarily, principles that integrate computing theories and information technologies with the design, programming, and application of distributed systems. 

The goal of this class is to improve the knowledge and skills in cloud computing, which is highly sought after in today’s competitive job market. Also, cloud computing can help students to develop innovative solutions, and lead them to more efficient systems in the cloud to serve applications that are important to our society such as Healthcare, Manufacturing, Transportation and so on. 

I believe that cloud computing needs to be taught in a synergistic way by combining theory on foundations and concepts relating to architectures and service models, as well as exposure to hands-on learning exercises with real world application case studies. Thereby, students can gain experience, practical skills, and exposure to real world platforms and services. We also put a lot of emphasis in our course on encouraging collaboration with application stakeholders, promoting teamwork, and a lot of critical thinking that can make them capable of making the right decisions when selecting appropriate cloud services based on use-cases or application demands. 

Since we have several students in this class, some of the main challenges are access to resources and relevant pre-requisite background of the students. Access to cloud platforms and resources that are needed for hands-on lab exercises need to be accessible along with clear documentation. In addition, exposing students to rapidly evolving technologies will involve updating the course content regularly to suit diverse learning styles and academic backgrounds of students.

What is the character of your educational project?  

I teach the cloud computing course every year and have done so since 2013. Early on, I was one of the few teachers who had a regular undergraduate/graduate course in cloud computing, and I have been able to publish my educational project methodology and outcomes in publications and talk about it in various educator forums. The course involves two 75-minute lecture sessions and one 2-hour lab/homework every week.

In this class we also cover distributed system models and enabling technologies, such as virtual machines and virtualization of clusters, networks, and data centers; cloud platform architecture with security; cloud DevOps tools; service-oriented architectures for distributed computing; and cloud programming and software environments. By the end of the semester, students can design and implement scalable applications that can adapt to changing user demands. They focus on a final project, in which they leverage all the theoretical and hands-on experience learned throughout the course, working on a real-world problem, and applying effective cloud solutions.   

More information about the hands-on lab exercises used in my cloud computing course can be found in the Mizzou CloudDevOps website. These lab exercises have been developed with generous support from VMware.

The class conveys a lot of dynamicity with a variety of students with diverse levels of technical expertise. Occasionally we have students with experience learned in internships or graduate students that have worked previously in industry. Based on that, the level of experience among students varies vastly. Since the course is targeted for both graduate and undergraduate students, we assume some basic level of understanding or experience in programming, computer networking, operating systems, and cybersecurity. However, we introduce students to fundamental principles and practices, aiming to provide them how cloud deployment operates in different aspects. For instance, we teach students many concepts related to public, private, hybrid or multi-cloud services. We also teach students various service models, and security considerations in the cloud. Thus, students gain practical skills, and the technical knowledge to design and manage applications in the cloud effectively, independently of their prior experience or expertise.

One of the goals is to expose students to community cloud and public cloud testbeds/platforms. Again, some of the students might be familiar to testbeds or they might have experience with cloud testbeds/platforms during their previous studies or projects. At the same time, since students are primarily computer science students, being technically savvy, they are capable of learning how to use a variety of open/community or private cloud testbeds very quickly. In addition to the number of tutorials and documentation available online, students are equipped with adequate support, particularly for those who might be relatively new to the subject with two teaching assistants for the class support.

What made you select Chameleon for your class? How are you using Chameleon to teach class?

We expose students to various cloud computing testbeds/platforms. We work with different private and open/community cloud platforms, however, for specific labs, we rely on Chameleon and its features as a compelling choice among other options of open cloud testbeds such as GENI, CloudLab and Nautilus that are supported by the National Science Foundation. Chameleon’s support of bare-metal configurations allows students to work on experimentation with different hardware setups. In addition, we work with KVM machines, which can be very similar to bare metal nodes. For example, in some labs we focus on Cloud DevOps, and we do not require the use of a specific type of hardware, hence these types of instances are a good choice for us. 

Recently, we have explored the Chameleon support for experiment orchestration, which aims to simplify the management of complex experiments. This allows students to replicate and share their work with teaching assistants and work in groups with other peers. 

During the pandemic, it was a significant challenge to find alternatives and options that can provide the necessary features and resources needed for the classes and final projects. Chameleon offers students the ability to learn and explore different types of hardware and bare-metal configurations. This is quite essential to offer crucial aspects of cloud computing technologies that they may find in industry.  Students can continue with their experiments, learning outside of the class, ensuring collaborative learning, and flexibility. Chameleon thus plays an important role in ensuring hands-on learning exercises and the class/final projects are completed by the students in an effective and efficient manner.

What are the most useful features of Chameleon for your educational project and what would you like to see improved?

Chameleon cloud plays an important role in our class and in our hands-on experience labs. Students learn not only about open/community cloud testbeds, but also about how to automate the deployment and management of applications. Students are exposed to resource allocation, remote access to nodes and collaborative work. Some of the issues that we have faced a couple of times is the availability of resources. Since we have numerous students in this class, and sometimes – because students do not use their time effectively -- more than one student could end up trying to allocate resources at the same time, just a couple of hours before the lab or assignment is due. 

This is understandable from the infrastructure perspective. We understand that having many students trying to allocate resources at the same time can make access to resources challenging. But this is not an issue with Chameleon in particular, whereas a better class organization from the students’ side. We were thinking of having a way to work with Chameleon operators, finding some instructions or documentation on how to deal or manage classes with the infrastructure. For example, an educator can have the ability to allocate resources for a particular class, or for a few students. Educators can sign out for an educator profile, whereas students with a profile that will limit them access only the class that was assigned to them.

Can you point us to any virtual resources connected with your class that would be of interest to our readership? 

The CS 4530 / 7530, Cloud Computing syllabus, details on the course organization and example student projects from the course can be found at my website.

Hands-on lab exercises with instructions can be found in with labs walkthroughs in our YouTube channel list.

Most powerful piece of advice for teachers, especially young educators, just starting out in their careers?

I believe that teaching should involve topics one feels passionate about and should be done in a manner that is inspiring, inclusive, purposeful, and compassionate by catering to diverse student learning needs. Below are a few tips that I feel can help an early teaching faculty member become successful in having impactful teaching outcomes:

  • Integrate real-world applications in the course content. Develop courses that are relevant in practice and create hands-on lab exercises and student projects to help students connect what is taught in class and what are the latest advances in the field of study. These efforts help students feel more connected to the content and will help them in their future efforts of job search, pursuing graduate school research projects, etc.
  • Consider teaching as a learning experience by itself. Invite other expert teachers to attend your class and provide feedback. This will help in getting a better perspective in terms of what makes your teaching effective and where it needs improvement.
  • Aim to write peer-reviewed papers that explain your unique educational projects, so that you can share your best practices with other peers, and also get feedback to improve your methods. Example venues are IEEE EduHiPC, IEEE Transactions on Learning Technologies and ACM CompEd 
  • Believe that students should learn from each other, in addition to your efforts in teaching. Create opportunities in the teaching where students share their ideas as part of their active learning and pursue team projects that are timely and significant to the topics being taught in the class. The experience of working in a team helps students to communicate effectively and collectively produce solutions that build upon diverse strengths and thought streams of the team members. 

Thank you for sharing your knowledge with the Chameleon community!


Add a comment

No comments