How to teach Cloud-Powered App Development Virtually
Published Feb 15 2021 08:16 AM 3,401 Views


Over the past seven years, I’ve had the pleasure of teaching a course titled “Cloud-Powered App Development” twelve times now at the University of Houston with my long-time friend and faculty colleague 
Jesus Hernandez. I’ve been humbled by the course’s success, regularly producing some of the highest course evaluations in the department and earning me a less-official ranking of highest-rated professor on for the entire University of Houston.  Our course content is open-source and maintained on GitHub and we encourage you to use any portions that may be of benefit to your classroom.



The Covid-19 pandemic has created many new challenges, particularly in the area of Education.  In September of 2020, I learned that the University of Houston would move all classes to a primarily virtual format.  My course would not be offered until the Winter, and it became very clear as that date neared that the Cloud-Powered App Development course would need to adapt to this.

To accommodate, the first issue was to figure out how the students would meet together for instruction.  Microsoft Teams was a natural choice as the University of Houston provides student access to Office 365 services.  However, this did not mean that the process was straightforward, as this is not activated for students by default.  One month before class started, I created a custom Teams channel for the course and sent a message to all students with instructions on how to obtain access with a simple instruction of leaving a message of "here" to ensure that they could properly access the virtual classroom.  This gave students ample time and peace of mind that they could properly access the course, and as a result we had 100% attendance on the first day of class!


The second issue was ensuring that students would have access to the prerequisite services needed to complete the coursework.  Looking at the course description for MIS4397: Cloud-Powered App Development" can give a glimpse into what was needed:

"The course will cover: (a) Cloud Services - The primary technology focus will be on the Microsoft Azure Platform and cover scalable services / websites / virtual machines; (b) Platform as a Service offerings to support scalable web development / deployment with WordPress on Azure. (c) Introduction to AI concepts including computer vision and the development of custom object detection models. (d) Internet of Things applications using GPU accelerated embedded devices to employ object detection models and publish inference results to the cloud."


To accomplish these goals students would need access to the following services:

  1. Microsoft Azure,
  2. Microsoft Learn Platform
  3. NVIDIA's Deep Learning Institute

The great news is that academic institutions can obtain access to these resources at zero cost!


To accommodate access to Microsoft Azure, we leveraged the Azure for Students Offer,  which provides $100 in Azure Cloud for use in academic settings given a valid *.edu email address.  This serves as the backbone for a variety of hands on activities in the course which include:


Microsoft Learn Platform is a free, online training platform that provides interactive learning for Microsoft products and more. The goal is to help you become proficient on Microsoft technologies and learn skills with fun, guided, hands-on, interactive content that's specific to your role and goals.  We use many of the modules here as homework content which we were able to track completion (which greatly simplified the grading process) using a custom Cloud Skills Challenge.  Examples of modules used in the course include:






NVIDIA's Deep Learning Institute (DLI) offers hands-on training in AI, accelerated computing, and accelerated data science. Developers, data scientists, researchers, and students can get practical experience powered by GPUs in the cloud.  This was particularly challenging as we required physical devices in order to complete the AIoT Lab - Getting Started with DeepStream for Video Analytics on Jetson Nano hands-on-lab. This required engineering a home lab solution consisting of 10 NVIDIA Jetson Nano devices that were deployed into a securely segmented LAN and made accessible over the internet.   The effort was totally worth it as each student was awarded with an official certification from NVIDIA for completing the lab!  If you have the chops or interest to reproduce or use my homelab, let me know, I plan to keep it in production until the pandemic ends ;)  




With these challenges out of the way, the course was able to be offered with zero compromises, we could teach exactly the same content that we would have had we held the class in-person.  However, we discovered that a 100% virtual classroom actually opens up the door to otherwise inaccessible opportunities.

Microsoft Teams gives you a number of benefits to ensure students are engaged and provides features to make it very easy to help students who may be stuck on portions of an exercises.

  •  Use the Raise hand in Teams meetings feature to poll students on where they are in the middle of group tasks.  For example, ask students to "raise their hand" when they complete a segment.
  • Use the Share your screen in a chat in Teams feature to assist students who may have technical issues.  A side-benefit is that when you solve issues through screen share, others who face similar issues get to see the solution.
  • Use the Sharing files and folders in Microsoft Teams feature to collect assignments in one place.  This simplifies grading assignments and is a million times better than the alternative of herding e-mails.  We used this to gather IoT inventions from all students and believe me, my team was very inspired by some of the suggestions and hope to implement some of them for an upcoming #JulyOT event.
  • Using Teams makes it super easy to bring in guest lecturers from around the world!  We used teams to bring in special guest speakers featuring Dustin Franklin of NVIDIAPanos Moutafis of Zenus.AI, and Jim Bennett of Microsoft.  In fact, if you would a like Microsoft speaker to guest lecture for you course, reach out!  We can probably make it happen ;)

    df1.PNG zenus.PNG jb2.PNG

As a final assignment, we task students to present a scalable website running on Microsoft Azure.  Using Teams we were able to allow students to deliver class presentations from the comfort of their home, and let me tell you, these presentations were amazing!  Here are a couple examples (keep in mind they build these in FIVE days!):

sammiches.PNG poetry.PNG

At the end of class we took a couple team pictures using Together Mode, one "normal" and the other will be familiar if you attended the University of Houston (Go Coogs!)

classpic11.png classpic44.png



I am pleased to say that as a result of this course, we had 30 students who successfully completed each and every assignment, which consisted of:

When you take advantage of technology, it is often the case that you can improve your overall situation.  In our case, by leveraging tools and technology services we were able to deliver a course that covered a wide range of topics with hands-on materials provided by various online learning platforms.  This enabled us to make the most of situation, and as a result we have inspired a new batch of students who are now aware of these possibilities and prepared them for the world of tomorrow.  But don't take my word for it:

neel.PNG brandon.PNG

Until next time...

Paul DeCarlo

1 Comment
Version history
Last update:
‎Feb 03 2021 04:16 PM
Updated by: