{"id":76569,"date":"2019-04-18T08:20:40","date_gmt":"2019-04-18T15:20:40","guid":{"rendered":"https:\/\/cloudblogs.microsoft.com\/opensource\/?p=76569"},"modified":"2025-06-27T08:19:11","modified_gmt":"2025-06-27T15:19:11","slug":"how-to-teach-cloud-powered-mobile-app-development-to-students","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/","title":{"rendered":"How to teach cloud-powered mobile app development to students"},"content":{"rendered":"\n<p>Over the past five years, I&#8217;ve had the pleasure of teaching a course titled \u201cCloud-Powered Mobile App Development\u201d ten times at the University of Houston with my long-time friend and faculty colleague <a href=\"https:\/\/twitter.com\/j3sus_h\">Jesus Hernandez<\/a>. I\u2019ve been humbled by <a href=\"http:\/\/thedailycougar.com\/2016\/09\/09\/profile-friday-professor-peaks-in-ranking-also-leads-in-sparking-passion\/\">the course\u2019s success<\/a>, regularly producing some of the highest course evaluations in the department and earning me a less-official ranking of highest-rated professor on&nbsp;<a href=\"http:\/\/www.ratemyprofessors.com\/ShowRatings.jsp?tid=1903236\">ratemyprofessors.com<\/a>&nbsp;for&nbsp;<a href=\"http:\/\/www.ratemyprofessors.com\/campusRatings.jsp?sid=1109\">the entire University of Houston<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-1.png\" alt=\"Rate My Professor ranking of 5.0\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Given the <a href=\"https:\/\/www.ratemyprofessors.com\/ShowRatings.jsp?tid=1903236\">results<\/a>, I packaged up the curriculum and best practices for others to leverage and duplicate in similar courses. All course materials are <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum?WT.mc_id=msopensource-blog-pdecarlo\">open source on GitHub<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"course-background\">Course background<\/h2>\n\n\n\n<p>For context, this is a course that runs in a compressed, one-week, timeframe. Our shortened timeframe benefited from the instructional modality \u2013 it provided an immersive environment, similar to a bootcamp that is free of distraction from other courses. However, note many of the best practices in this guide could be applied to courses that run in different increments or durations.<\/p>\n\n\n\n<p>The course itself is taught in the Bauer College of Business as part of the Management Information Systems degree track. As a result, many students often have high interest in computer systems but the degree of technical ability in areas of software development can be wide-ranging. And that\u2019s okay; we are learning concepts related to cloud computing, many of which are best understood through application after explanation. That\u2019s generally how the flow of the course is handled: we teach a concept, then demonstrate that concept in a lab-based exercise.<\/p>\n\n\n\n<p>Over the years, the content has undergone changes, mainly in reaction to changes in technology trends. When we first taught the course, students would create and publish a mobile application and website as part of the course projects. We now focus on three main areas: a free-reign website project, a hands-on Internet of Things (IoT) project that involves pushing sensor readings from a microcontroller to a cloud-connected application running in a cloud-hosted virtual machine, and a wild card project that has something to do with an emerging technology.<\/p>\n\n\n\n<p>Historically, the wild card project has been related to Virtual Reality, Augmented Reality, Drones, and most recently blockchain\/cryptocurrency.&nbsp;In the most recent offering, we&nbsp;<a href=\"https:\/\/www.hackster.io\/pjdecarlo\/how-to-make-a-cryptocurrency-using-litecoin-v0-15-source-fb5e82\">dissected the Litecoin codebase<\/a><u>.<\/u><\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2.webp\" alt=\"Applied learning in action - tweet image\" class=\"wp-image-76575 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2.webp 578w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-300x251.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-299x250.webp 299w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-330x276.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-400x335.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2.png 578w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-300x251.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-299x250.png 299w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-330x276.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-2-400x335.png 400w\"><figcaption class=\"wp-element-caption\">Applied learning in action<\/figcaption><\/figure>\n\n\n\n<p>Aside from the wild card project, the content is relatively static and can be reused by other professors. In fact,&nbsp;<a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum?WT.mc_id=msopensource-blog-pdecarlo\">the course content is open-sourced and hosted on GitHub<\/a>&nbsp;for all to use as they please.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3.webp\" alt=\"GitHub repo image\" class=\"wp-image-76578 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-300x244.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-768x625.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-307x250.webp 307w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-330x269.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-400x326.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-300x244.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-768x625.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-307x250.png 307w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-330x269.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-3-400x326.png 400w\"><figcaption class=\"wp-element-caption\">Cloud-powered mobile app development curriculum now open source<\/figcaption><\/figure>\n\n\n\n<p>Now, I\u2019ll break down how the course is taught day-by-day.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"day-one-introduction-to-cloud-concepts\">Day One: Introduction to Cloud Concepts<\/h2>\n\n\n\n<p>On the first day of class, some time is devoted to setting up accounts for services that we will be employing in the course. Currently this requires a&nbsp;<a href=\"https:\/\/outlook.live.com\/mail\/\">Microsoft Live ID account<\/a>, an&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/free\/students\/?WT.mc_id=msopensource-blog-pdecarlo\">Azure account<\/a>&nbsp;(which is free for anyone with a&nbsp;.edu e-mail), and a&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/?WT.mc_id=msopensource-blog-pdecarlo\">Microsoft Learn account<\/a>. Once these are obtained, we begin with an introduction to the Cloud and explain the concept of Infrastructure as a Service, Platform as a Service, and Software as a Service. We then apply those concepts by deploying a virtual machine (IaaS) and WordPress site instance (PaaS).<\/p>\n\n\n\n<p>Each day, an associated quiz and Microsoft Learn module are assigned along with a larger homework assignment. The first homework assignment requires the students to create a design document around the website that they plan to build. Students are encouraged to play around with their site instances and understand the limitations of various service tiers. It is common that students exhaust the resources allotted by free-tier services during the class and experience the need for scalability first-hand. We like to refer to this situation as a real-world learning opportunity. \ud83d\ude09<\/p>\n\n\n\n<p>Day one course materials are on GitHub <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum\/tree\/master\/Day1?WT.mc_id=msopensource-blog-pdecarlo\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"day-two-building-a-website-with-wordpress\">Day Two: Building a Website with WordPress<\/h2>\n\n\n\n<p>On the second day of class, we teach the students how to leverage more advanced features in WordPress and discuss responsive design. We challenge students to investigate how their site looks on various device form factors, and if there are issues myself and Jesus are on-hand to help.<\/p>\n\n\n\n<p>This allows the students to explore creating something, while having expert assistance on-hand when needed. It is not uncommon that Jesus or myself have to ftp into a site instance to fix a botched plugin installation or to help guide students on how to incorporate a lofty feature that was included on their design document assignment. We usually camp out in a Discord chat after hours to field questions that students have after class.<\/p>\n\n\n\n<p>We very often hear that once students get started on their projects that they don\u2019t want to stop. It\u2019s fun to build something that you can share out to friends and family, but we feel the reason is because we encourage the students to be invested in the project before they begin. Since we leverage WordPress (created by former UH student Matt Mullenweg while studying political science\u200a\u2014\u200aa fact I love to call attention to), students are mostly on the hook for delivering content. This allows students to focus on creating something they have a legitimate passion or use for.<\/p>\n\n\n\n<p>Students have created wedding sites that include interactive maps for logistics and forms for RSVP\u2019ing and revamped websites for businesses, including a karate school, dentist office, pool repair company, and more. Some have showcased their passions with art portfolios, guitar collections, and foreign film reviews. I had one student build a <a href=\"http:\/\/azimmaknojia.com\/\">photography services website<\/a>&nbsp;in a couple days that he still uses three years later.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4.webp\" alt=\"Wedding website created by student\" class=\"wp-image-76581 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-300x146.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-768x373.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-330x160.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-400x195.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-300x146.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-768x373.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-330x160.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-4-400x195.png 400w\"><figcaption class=\"wp-element-caption\">Former student Rabia Tasneem Nizami created a site for her wedding ceremony<\/figcaption><\/figure>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5.webp\" alt=\"Wedding website maps and RSVP form\" class=\"wp-image-76584 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5.webp 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-300x146.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-768x372.webp 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-330x160.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-400x194.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-300x146.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-768x372.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-330x160.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-5-400x194.png 400w\"><figcaption class=\"wp-element-caption\">The site included interactive maps and an RSVP form<\/figcaption><\/figure>\n\n\n\n<p>The key point is that by making assignments that students invest in personally, they actually want to do the work and often create very stunning projects in only a few days.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"measuring-progress-through-daily-quizzes\">Measuring Progress through Daily Quizzes<\/h3>\n\n\n\n<p>Daily quizzes are very insightful and allow me to gauge if students are in fact picking up on the concepts. I like to ask a combination of <em>very targeted<\/em> and <em>open-ended<\/em> questions to allow me to test if a student knows a thing as-is, as well as if they can synthesize the knowledge into something new.<\/p>\n\n\n\n<p>Here is an example of a targeted question:<\/p>\n\n\n\n<p><em>In class, we deployed an instance of WordPress to Microsoft Azure using Platform as a Service. The deployment rendered appropriately because WordPress is written in the PHP programming language which is a supported technology on Azure PaaS. Here is a condensed version of why this works:&nbsp;<\/em><\/p>\n\n\n\n<p><em>1) PaaS is essentially a pre-configured OS environment that has support for certain technologies, like PHP<br>2) If we put PHP code on the server in an appropriate way, it should execute since PHP is available.<\/em><\/p>\n\n\n\n<p><em>Now consider the Prolog programming language, which is not supported on Azure PaaS. That said, there are ways to deploy \/ run Prolog applications into Microsoft Azure. Similar to above, in 2 steps, describe how you might run a Prolog application on Azure.<\/em><\/p>\n\n\n\n<p>If students can answer the question above, then I am satisfied that they understand the difference between IaaS and PaaS. And furthermore, it is my hope that they never forget it since we have tied the question to an in-class experience.<\/p>\n\n\n\n<p>The open-ended questions are a different beast \u2013 you never really know what you\u2019ll get, but for the most part, students often impress me with some of the ways they interpret the concepts.<\/p>\n\n\n\n<p>Here is an example open-ended question:<\/p>\n\n\n\n<p><em>A student asks you: \u201cHey, I heard you took that cloud class at UH, what is the cloud?\u201d How might you answer this student in your own words?<\/em><\/p>\n\n\n\n<p>And here a few anonymous responses:<\/p>\n\n\n\n<p><em>\u201cCloud consists of computing and storage. Cloud computing is internet-based computing that provides shared computer resources for processing and other on demand services. Cloud storage backs up data remotely and makes it available to users over the internet.\u201d<\/em><\/p>\n\n\n\n<p><em>\u201cThe cloud is basically a network of servers with the ability to store and access data or programs over the internet rather than on a personal hard drive. It allows ease of access and use for a majority of people. Some benefits from the cloud include flexibility and cost. The cloud allows users to scale up or down the servers to accommodate for their usage, which may be financially beneficial.\u201d<\/em><\/p>\n\n\n\n<p><em>\u201cA cloud is basically a data server that is fully controlled virtually. This means that if you want to upgrade, downgrade, grow, or condense your current server host power, you just put in the request and the machine will automatically make the changes rather than a physical person having to go and upgrade the server you are on. The cloud makes it easier and quicker to do server business and make it easier to change your host server size based on your needs.\u201d<\/em><\/p>\n\n\n\n<p>All of these responses are acceptable to me, but it is interesting to note the various features that different students will highlight. In the past we ran all of the anonymized responses from students into a text miner to try to see how previous students thought of the cloud in aggregate.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6.webp\" alt=\"Text miner summary of how student defined cloud\" class=\"wp-image-76587 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6.webp 636w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-277x300.webp 277w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-231x250.webp 231w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-324x350.webp 324w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-400x433.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6.png 636w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-277x300.png 277w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-231x250.png 231w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-324x350.png 324w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-6-400x433.png 400w\"><figcaption class=\"wp-element-caption\">How every student who ever took this class defined &#8220;cloud&#8221;<\/figcaption><\/figure>\n\n\n\n<p>Day two materials are on GitHub <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum\/tree\/master\/Day2?WT.mc_id=msopensource-blog-pdecarlo\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"day-three-hands-on-internet-of-things-iot-lab\">Day Three: Hands-on Internet of Things (IoT) Lab<\/h2>\n\n\n\n<p>Day three is my personal favorite, which is when we focus primarily on the IoT hands-on-lab. I love this because we get to put a microcontroller device into the hands of business students who then make the hardware \u201cdo a thing\u201d by connecting it to a cloud service. Traditionally, the idea of working with hardware implies that it must somehow be \u201chard\u201d to even begin.<\/p>\n\n\n\n<p>I\u2019m not sure whether it is the advances in tooling that now make hardware accessible to hobbyists and the like, or whether techies of the past just wanted to keep it needlessly complex. Whatever the reason, that is all over, as entrepreneurs can now become&nbsp;<a href=\"https:\/\/www.hackster.io\/\">weekend inventors<\/a> without the need for a rigorous technical background. The lab has evolved over time to use Raspberry Pi devices connected serially to an Arduino,&nbsp;<a href=\"https:\/\/www.particle.io\/wifi\/\">Particle\u2019s Core and Photon devices<\/a>, and it\u2019s current incarnation where we leverage the&nbsp;<a href=\"http:\/\/www.mxchip.com\/az3166\">MXChip<\/a>&nbsp;to produce a&nbsp;<a href=\"https:\/\/medium.com\/r\/?url=https%3A%2F%2Fgithub.com%2FAzure%2FCloudIoTHack%2F\">simulated Air Traffic Control system<\/a>.<\/p>\n\n\n\n<p>The lab requires that students deploy a virtual machine (VM), which is capable of running a recent installation of&nbsp;<a href=\"https:\/\/visualstudio.microsoft.com?WT_mc_id=msopensource-blog-pdecarlo\">Visual Studio<\/a>. Inside the VM, they develop a client application that connects to something called&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/iot-hub\/?WT_mc_id=msopensource-blog-pdecarlo\">Azure IoT Hub<\/a>. An IoT Hub is a high-throughput service bus that allows for publishing massive amounts of data from IoT devices, similar to an <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/event-hubs\/?WT_mc_id=msopensource-blog-pdecarlo\">Event Hub<\/a> but with bi-directional and bookkeeping features for devices. The MXChip device publishes data to this endpoint which is then forwarded to a <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/functions\/?WT_mc_id=msopensource-blog-pdecarlo\">Serverless function<\/a>&nbsp;to process the data. The processed data is then forwarded on to a classroom-shared EventHub so that all data flows to a central location. Once a student successfully creates this pipeline, the data from their MXChip will make them appear as an airplane in-flight on a projector at the front of the classroom.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7.webp\" alt=\"Twitter picture of class demo\" class=\"wp-image-76590 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7.webp 580w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-300x250.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-330x275.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-400x334.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7.png 580w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-300x250.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-330x275.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-7-400x334.png 400w\"><figcaption class=\"wp-element-caption\">&#8220;Air-Traffic Control, this is CoolKid1337. Can you see me on the radar?&#8221;<\/figcaption><\/figure>\n\n\n\n<p>Students race to be the first to have their name on the real-time flight-board, and get excited when they see that first blip of device pumping data through an array of cloud services. Seeing each student tackle the challenge is awesome, as you can see the possibilities light up as they make the hardware \u201cdo a thing.\u201d It\u2019s also really cool to see students helping others once they have completed the task.<\/p>\n\n\n\n<p>After this lab, I give a homework assignment, which asks students to create an IoT solution. I don\u2019t expect them to build it, or to go into details on build out materials\/parts\/etc., but rather let them draw out what they would create if there were no limits. This has produced such gems as the smart bed, a few variants of IoT animal feeders, and solar-powered pants that charge your phone.<\/p>\n\n\n\n<p>Day three materials are on GitHub <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum\/tree\/master\/Day3?WT_mc_id=msopensource-blog-pdecarlo\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"day-four-guest-speaker\">Day Four: Guest Speaker<\/h2>\n\n\n\n<p>On day four, I will usually invite a guest speaker. I try to get someone involved in an emerging tech space. These have included Augmented Reality sessions with Jared Bienz, Virtual Reality Development with Faysal Sharif, and Machine Learning with Paige Bailey, among others.<\/p>\n\n\n\n<p>Recently we invited some local Power BI experts from&nbsp;<a href=\"https:\/\/www.ironedgegroup.com\/\">Iron Edge Group<\/a> who showed us how to create data visualization around mortality rate and alcohol consumption.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8.webp\" alt=\"Twitter image of Power BI demo\" class=\"wp-image-76593 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8.webp 582w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-300x250.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-330x275.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-400x333.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8.png 582w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-300x250.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-330x275.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-8-400x333.png 400w\"><figcaption class=\"wp-element-caption\">Conclusion: &#8220;You drink more, you die more&#8221;<\/figcaption><\/figure>\n\n\n\n<p>We also brought in local startup&nbsp;<a href=\"https:\/\/zenus-biometrics.com\/\">Zenus Biometrics<\/a> that does really cool work around event entry using facial recognition.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9.webp\" alt=\"Twitter image of Zenus Biometrics demo\" class=\"wp-image-76596 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9.webp 580w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-300x241.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-311x250.webp 311w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-330x265.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-400x321.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9.png 580w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-300x241.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-311x250.png 311w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-330x265.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-9-400x321.png 400w\"><figcaption class=\"wp-element-caption\">Me: &#8220;Awww, bummer I left my tickets in the car&#8221; Zenus: &#8220;Your face is now a ticket&#8221;<\/figcaption><\/figure>\n\n\n\n<p>Once we are finished with the emerging tech session, we do a little prep in anticipation of final presentations the following day. Students are often able to leave early if they have completed their assignments, but usually stay to take advantage of the ginormous projector to play 8-player Smash Bros.<\/p>\n\n\n\n<p>Day four materials are on GitHub <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum\/tree\/master\/Day4?WT.mc_id=msopensource-blog-pdecarlo\">here<\/a>.<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10.webp\" alt=\"Twitter image of student playing Smash Bros game\" class=\"wp-image-76599 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10.webp 575w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-300x242.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-310x250.webp 310w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-330x266.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-400x322.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10.png 575w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-300x242.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-310x250.png 310w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-330x266.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-10-400x322.png 400w\"><figcaption class=\"wp-element-caption\">This may or may not contribute to elevated ratings on ratemyprofessors.com \ud83d\ude09<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"day-five-final-presentations\">Day Five: Final Presentations<\/h2>\n\n\n\n<p>Day five is the final presentation day. This day has bit of personal effect as I am effectively asking the students to do what I do for a living as a final grade \u2013 i.e., they are required to speak about something they created to a room full of peers for around 5 minutes.<\/p>\n\n\n\n<p>About 99% of the time, students will talk about their website with some insisting on adding time to discuss an app or IoT solution that they created. At the beginning of the course, I ask the students if they want to present in our classroom or at the Houston Microsoft Office. 100% of the time, the students want to present at the office.<\/p>\n\n\n\n<p>This is the part where everyone gets to revel at all of the work that the students have put into their projects throughout the week. It\u2019s an awesome time for students to share a portion of their personalities with others and it is typical that we learn something new with every presentation. For example, I\u2019m pretty sure none of us were prepared for one student\u2019s presentation on Korean Dramas or the fact that one of the students had done makeup for <a href=\"https:\/\/twitter.com\/slimthugga\">Slim Thug<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image alignnone attachment-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-11.png\" alt=\"Twitter image of student presentation\" \/><figcaption class=\"wp-element-caption\">That right there is a humble achievement! Props to Rija!<\/figcaption><\/figure>\n\n\n\n<p>At the end of the presentations, we tour portions of the office and take a class picture. We\u2019ve done one of these for every class. It\u2019s awesome to reflect on the creativity I\u2019ve witnessed over ten courses!<\/p>\n\n\n<figure class=\"wp-block-image alignnone attachment-full size-full\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12.webp\" alt=\"Class picture\" class=\"wp-image-76605 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12.webp 581w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-300x230.webp 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-326x250.webp 326w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-330x253.webp 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-400x307.webp 400w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12.png 581w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-300x230.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-326x250.png 326w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-330x253.png 330w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/Image-12-400x307.png 400w\"><figcaption class=\"wp-element-caption\">Go Coogs!<\/figcaption><\/figure>\n\n\n\n<p>Day five materials are on GitHub <a href=\"https:\/\/github.com\/toolboc\/Cloud-Powered-Mobile-App-Development-Curriculum\/tree\/master\/Day5?WT.mc_id=msopensource-blog-pdecarlo\">here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"key-takeaways\">Key Takeaways<\/h2>\n\n\n\n<p>There are few takeaways that I would like to leave you with. I\u2019ve talked about how I teach my class, from my perspective, and of course everyone has their own teaching and learning styles. However, there are elements discussed here that I think could be beneficial regardless of modality.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Whether you are an instructor or student, I highly encourage adopting personal expression into your assignments. It is rare that a student will ask what the minimal requirements are to produce a passing assignment when they are allowed to express themselves and their passions in the process.<\/li>\n\n\n\n<li>As an instructor, be capable of producing the content that you expect from your students. By doing this, you can assist students in achieving their desired outcomes and guide them to success. Also, as an instructor, be willing to guide.<\/li>\n<\/ul>\n\n\n\n<p>I was never really a fan of professors out there who purchase their exams from textbook publishers and assign content according to a prescribed rubric with little, if any, care for how that content is disseminated, leaving students to be measured solely on how accurately their answers match up to the exam key. The ones who stood out for me were the ones who stepped in to show how I could improve or took the time to answer questions when there was confusion. I am certain that the most memorable professors were the ones who were able to present knowledge in a way that was fun. I try to adopt these principles in every subject that I&#8217;ve had the opportunity to teach.<\/p>\n\n\n\n<p>In summary, be fun, engage, and take pride in what you do &#8212; that\u2019s pretty much all there is to it.<\/p>\n\n\n\n<p>Questions or feedback? Let me know in the comments below.<\/p>\n\n\n\n<p><em>Follow Paul on Twitter at <\/em><a href=\"https:\/\/twitter.com\/pjdecarlo\"><em>@pjdecarlo<\/em><\/a><em>. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the past five years, I&#8217;ve had the pleasure of teaching a course titled \u201cCloud-Powered Mobile App Development\u201d ten times at the University of Houston with my long-time friend and faculty colleague Jesus Hernandez.<\/p>\n","protected":false},"author":5562,"featured_media":76638,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[2272],"content-type":[340],"topic":[2240,2241],"programming-languages":[],"coauthors":[573],"class_list":["post-76569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-microsoft","content-type-tutorials-and-demos","topic-application-development","topic-cloud","review-flag-1593580428-734","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-5-1593580453-725","review-flag-8-1593580468-572","review-flag-facia-1593580652-299","review-flag-free-1593619513-693","review-flag-inter-1680213152-551","review-flag-iot-1680213327-385","review-flag-lever-1593580265-989","review-flag-machi-1680214156-53","review-flag-never-1593580314-283","review-flag-new-1593580248-669","review-flag-vm-1593580807-312"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog<\/title>\n<meta name=\"description\" content=\"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-18T15:20:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T15:19:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paul DeCarlo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul DeCarlo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/paul-decarlo\/\",\"@type\":\"Person\",\"@name\":\"Paul DeCarlo\"}],\"headline\":\"How to teach cloud-powered mobile app development to students\",\"datePublished\":\"2019-04-18T15:20:40+00:00\",\"dateModified\":\"2025-06-27T15:19:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\"},\"wordCount\":2794,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\",\"keywords\":[\"Microsoft\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\",\"name\":\"How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\",\"datePublished\":\"2019-04-18T15:20:40+00:00\",\"dateModified\":\"2025-06-27T15:19:11+00:00\",\"description\":\"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg\",\"width\":1000,\"height\":560,\"caption\":\"a group of people in a room\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to teach cloud-powered mobile app development to students\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog","description":"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/","og_locale":"en_US","og_type":"article","og_title":"How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog","og_description":"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2019-04-18T15:20:40+00:00","article_modified_time":"2025-06-27T15:19:11+00:00","og_image":[{"width":1000,"height":560,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","type":"image\/jpeg"}],"author":"Paul DeCarlo","twitter_card":"summary_large_image","twitter_image":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Paul DeCarlo","Est. reading time":"11 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/paul-decarlo\/","@type":"Person","@name":"Paul DeCarlo"}],"headline":"How to teach cloud-powered mobile app development to students","datePublished":"2019-04-18T15:20:40+00:00","dateModified":"2025-06-27T15:19:11+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/"},"wordCount":2794,"commentCount":4,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","keywords":["Microsoft"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/","url":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/","name":"How to teach cloud-powered mobile app development to students | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","datePublished":"2019-04-18T15:20:40+00:00","dateModified":"2025-06-27T15:19:11+00:00","description":"Paul DeCarlo shares his curriculum and best practices for others to use in similar courses. All course materials are available on GitHub.","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/04\/class-featured-image_1000x560.jpg","width":1000,"height":560,"caption":"a group of people in a room"},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/04\/18\/how-to-teach-cloud-powered-mobile-app-development-to-students\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to teach cloud-powered mobile app development to students"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=76569"}],"version-history":[{"count":2,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76569\/revisions"}],"predecessor-version":[{"id":97772,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/76569\/revisions\/97772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/76638"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=76569"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=76569"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=76569"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=76569"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=76569"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=76569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}