├── Day1 ├── Content │ ├── 01 - Intro to Azure.pdf │ └── 01 - Intro to Azure.pptx ├── Homework │ └── README.md ├── Modules │ └── README.md └── Quiz │ └── README.md ├── Day2 ├── Content │ ├── 01 - Modern Development with Wordpress in the Cloud.pdf │ ├── 01 - Modern Development with Wordpress in the Cloud.pptx │ ├── 02 - All about The Internet of Things.pdf │ └── 02 - All about The Internet of Things.pptx ├── Homework │ └── README.md ├── Modules │ └── README.md └── Quiz │ └── README.md ├── Day3 ├── Content │ ├── 01 - GPU Accelerated IoT Workloads at the Edge.pdf │ └── 01 - GPU Accelerated IoT Workloads at the Edge.pptx ├── Homework │ └── README.md ├── Modules │ └── README.md └── Quiz │ └── README.md ├── Day4 ├── Content │ ├── 01 - Intelligent Home Security with NVIDIA Jetson.pdf │ └── 01 - Intelligent Home Security with NVIDIA Jetson.pptx └── Homework │ └── README.md ├── Day5 └── README.md ├── LICENSE └── README.md /Day1/Content/01 - Intro to Azure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day1/Content/01 - Intro to Azure.pdf -------------------------------------------------------------------------------- /Day1/Content/01 - Intro to Azure.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day1/Content/01 - Intro to Azure.pptx -------------------------------------------------------------------------------- /Day1/Homework/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Design Document Outline 3 | 4 | For this homework assignment, you will complete each of the sections below as they relate to the website that you intend to build in the course. This document will serve as a roadmap for what you plan to create and may be modified as you develop your website if needed. 5 | 6 | **Executive Summary:** 7 | 8 | A concise overview of the project that communicates the basic concept. What's it all about? 9 | 10 | **Statement of Purpose:** 11 | 12 | Motivation, intended use, importance. Why are you doing this? What will you do with it when it's done? Why does it matter? Articulate the standards by which the success of the project may be measured. 13 | 14 | **Content Outline:** 15 | 16 | A logically organized, hierarchical outline of the project's content. 17 | 18 | **Experiential Flowchart:** 19 | 20 | A chart depicting the user's experience -- how he or she can navigate through the content. 21 | 22 | **Interface Mockups:** 23 | 24 | Nonfunctional, annotated sketches of key elements and screens. 25 | 26 | **Media Inventory:** 27 | 28 | An exhaustive, detailed list of all the media necessary for the project. Account for copyright issues, if any. 29 | 30 | **Implementation Plan:** 31 | 32 | A detailed plan which spells out how the above will be accomplished. 33 | -------------------------------------------------------------------------------- /Day1/Modules/README.md: -------------------------------------------------------------------------------- 1 | ## Microsoft Learn Modules ## 2 | 3 | * [Learn how to manage IoT devices as an IT Admin module](https://docs.microsoft.com/en-us/learn/modules/manage-iot-devices/?WT.mc_id=iot-10260-pdecarlo) 4 | -------------------------------------------------------------------------------- /Day1/Quiz/README.md: -------------------------------------------------------------------------------- 1 | ## Cloud Quiz ## 2 | 3 | Name: 4 | 5 | 1. A student wishes to create a startup business which requires a website. The student learned some HTML 5 and JavaScript in a previous course taught by Dr. Parks. With this knowledge, the student was able to create a website that archives copies of old tests submitted by students. The student has an old computer and read somewhere that they could turn it into a web server to use for hosting a website. During finals week the server receives a high amount of traffic and the hard drive dies. This was the only server and there were no backups of the hard drive. What could have been done to avoid this type of failure? 6 | 7 | 2. Scalability is a great feature of cloud deployments because you can ramp up resources to meet demand as you need it. The problem is that "more resources" typically implies "more cost". In your own words, describe the concept of Elasticity in cloud platforms and how it can reduce deployment costs. 8 | -------------------------------------------------------------------------------- /Day2/Content/01 - Modern Development with Wordpress in the Cloud.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day2/Content/01 - Modern Development with Wordpress in the Cloud.pdf -------------------------------------------------------------------------------- /Day2/Content/01 - Modern Development with Wordpress in the Cloud.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day2/Content/01 - Modern Development with Wordpress in the Cloud.pptx -------------------------------------------------------------------------------- /Day2/Content/02 - All about The Internet of Things.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day2/Content/02 - All about The Internet of Things.pdf -------------------------------------------------------------------------------- /Day2/Content/02 - All about The Internet of Things.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day2/Content/02 - All about The Internet of Things.pptx -------------------------------------------------------------------------------- /Day2/Homework/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Create a Responsive and Scalable Website Assignment 3 | 4 | Before the next session it is important that you wrap up work on your website and get it in a presentable form. It is understandable that you may not have much in terms of content. I am hoping that you have something that can serve as a foundation for building upon in the future. 5 | 6 | At minimum, your website should have: 7 | 1. A clear purpose 8 | 2. A non-default theme 9 | 3. Two Pages or Posts of content 10 | 4. An about page 11 | 5. Employ an external plug-in 12 | 6. Support viewing on Mobile devices 13 | 14 | That said, I encourage you to challenge yourself and see what you can create! Please have fun and explore! Your website will serve as the basis for your final class presentation! 15 | -------------------------------------------------------------------------------- /Day2/Modules/README.md: -------------------------------------------------------------------------------- 1 | ## Microsoft Learn Modules ## 2 | 3 | * [Detect objects in images with the Custom Vision service](https://docs.microsoft.com/en-us/learn/modules/detect-objects-images-custom-vision/?WT.mc_id=iot-10260-pdecarlo) -------------------------------------------------------------------------------- /Day2/Quiz/README.md: -------------------------------------------------------------------------------- 1 | ## Web Quiz ## 2 | 3 | Name: 4 | 5 | 1. 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. 6 | 7 | Here is a condensed version of why this works: 8 | 9 | 1.) PaaS is essentially a pre-configured OS environment that has support for certain technologies, for example PHP 10 | 11 | 2.) If we put PHP code on the server in an appropriate way, it should execute since PHP is available 12 | 13 | Now consider, the Prolog programming language is not supported on Azure PaaS. That said, there are ways to deploy and run Prolog applications in Microsoft Azure. 14 | 15 | Similar to above, in 2 steps, describe how you might run a Prolog application on Microsoft Azure (Hint: IaaS)? 16 | 17 | 18 | 2. A student asks you: "Hey, I heard you took that cloud class at UH, what is the cloud?" 19 | How might you answer this student in your own words? 20 | -------------------------------------------------------------------------------- /Day3/Content/01 - GPU Accelerated IoT Workloads at the Edge.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day3/Content/01 - GPU Accelerated IoT Workloads at the Edge.pdf -------------------------------------------------------------------------------- /Day3/Content/01 - GPU Accelerated IoT Workloads at the Edge.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day3/Content/01 - GPU Accelerated IoT Workloads at the Edge.pptx -------------------------------------------------------------------------------- /Day3/Homework/README.md: -------------------------------------------------------------------------------- 1 | Today you have learned about the exciting world of the Internet of Things. Now it is your turn to create a compelling IoT solution! 2 | 3 | At minimum, your idea should have: 4 | 5 | 1. A clear purpose 6 | 2. Compelling description 7 | 3. Diagram detailing intended functionality 8 | 4. List of any required parts (to best of your ability) 9 | 10 | That said, I encourage you to challenge yourself to see what you can create! Please have fun and enjoy! 11 | -------------------------------------------------------------------------------- /Day3/Modules/README.md: -------------------------------------------------------------------------------- 1 | ## Microsoft Learn Modules ## 2 | 3 | * [Introduction to Azure IoT Edge](https://docs.microsoft.com/en-us/learn/modules/introduction-iot-edge/?WT.mc_id=iot-10260-pdecarlo) 4 | * [Deploy a pre-built module to the Edge device](https://docs.microsoft.com/en-us/learn/modules/deploy-prebuilt-module-edge-device/?WT.mc_id=iot-10260-pdecarlo) 5 | 6 | -------------------------------------------------------------------------------- /Day3/Quiz/README.md: -------------------------------------------------------------------------------- 1 | ## AIoT Quiz ## 2 | 3 | Name: 4 | 5 | 1. Object detection algorithms (which are very math intensive to create from scratch) can often be trained by providing sample inputs in the form of tagged images. Imagine that you are tasked to create an object detection model that detects squirrels on UH campus. How might you go about gathering samples? What would you do to ensure your model can detect squirrels at night? 6 | 7 | 2. Graphical Processing Units are really good at performing vectorized mathematical operations in addition to other optimizations like shared memory access which makes them capable of performing certain tasks much better than any off-the-shelf CPU. Most of us have witnessed CPUs shrink to very small sizes during the era of mobile phones, particularly during the rise of Android/iOS. Some might notice similarities occurring in the GPU space at this very moment! Consider how shrinking CPUs over the last 20 years impacted your daily life, how might you imagine the shrinking of GPUs changing your life over the next 20 years? 8 | -------------------------------------------------------------------------------- /Day4/Content/01 - Intelligent Home Security with NVIDIA Jetson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day4/Content/01 - Intelligent Home Security with NVIDIA Jetson.pdf -------------------------------------------------------------------------------- /Day4/Content/01 - Intelligent Home Security with NVIDIA Jetson.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toolboc/Cloud-Powered-App-Development-Curriculum/341e0e542f38ce805e0670891f450dd312baadd3/Day4/Content/01 - Intelligent Home Security with NVIDIA Jetson.pptx -------------------------------------------------------------------------------- /Day4/Homework/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Presentation Preparation 3 | 4 | Be ready to present your completed web site and applications to your peers. You may wish to dress sharp for your presentation, though it is not required. Bonus points for dressing relevant to your topic (i.e. if you make an app of your favorite band, wear a shirt depicting them). 5 | 6 | Presentations should last 3 – 5 minutes. Much of your content can be derived from the first Homework assignment. 7 | 8 | Key things to consider: 9 | 10 | 1. What did you think when you first heard the project requirements? 11 | 2. Why did you create the website you created? How can it be of use to others? 12 | 3. How do you plan to market these projects going forward? 13 | 4. What have you learned from this process? 14 | 5. Anything else you feel is important to share? 15 | -------------------------------------------------------------------------------- /Day5/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Presentation Day!!! 3 | 4 | Good Luck on your presentations! 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Paul DeCarlo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cloud-Powered App Development Syllabus 2 | 3 | ## Instructor Information 4 | | Instructor | Email | Office Location & Hours | 5 | | ------------- | ----------------------- | ------------------------- | 6 | | Paul DeCarlo | pdecarlo@microsoft.com | Contact via e-mail 24/7/365 7 | 8 | ## General Information 9 | 10 | | Room | 11 | | ------- | 12 | | [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams/group-chat-software) | 13 | 14 | ## Description 15 | 16 | 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. 17 | 18 | ## Expectations and Goals 19 | 20 | Take a closer look at the description above. That's right, in addition to creating a scalable website we will create artificially intelligent object detection models, and deploy AI workloads onto GPU-accelerated IoT devices to publish inference results into the Azure Cloud as part of this course! Do not worry about prerequisites, we will use templates and tools to facilitate course assignments to ensure that you are successful in understanding and applying the concepts that are covered. 21 | 22 | The course style will be lecture based with hands-on-labs and online modules selected from Microsoft Learn. The lecture content will cover overviews of cloud concepts, web development basics, design methodologies, AI concepts, and the Internet of Things. The majority of the grade is reliant upon successful completion of the course projects and a final presentation. 23 | 24 | ## Online Materials 25 | The course instruction materials can be found online @ https://aka.ms/cloudpoweredappdev 26 | 27 | ## Optional Materials 28 | A personal machine capable of running the development tools. 29 | 30 | ## Daily Requirements 31 | 32 | Check the Folder for the corresponding class day for a summary of all presentation content, quizzes, homework, and MS Learn 33 | Modules. You will want to make sure all homework and quizzes are completed before class the next day. MS Learn Modules *should* be completed on the day assigned, although you may work on them at your leisure which includes skipping ahead as well as postponing. Be warned that letting these pile up could make for a very stressful evening before final presentations. I will check all students for completion of these modules at the beginning of the last day of class. 34 | 35 | ## Course Schedule 36 | 37 | | [Day 1](/Day1) | Suggested Time | 38 | | ----------------------------------------------------------------------------------------------------------- | --------------- | 39 | | Introduction | 30 Mins | 40 | | [Create Azure Accounts](https://microsoft.sharepoint.com/:f:/t/MIS4397-UniversityofHouston/EtAxikyoNAtBqLXJKyoDolcBIKpguizZMwc8S1ezjCDY2w?e=6U1S6u) | 15 Mins | 41 | | [Create Microsoft Learn Accounts](https://docs.microsoft.com/learn/?WT.mc_id=iot-10260-pdecarlo) | 15 Mins | 42 | | [Enroll in Cloud Skills Challenge](https://docs.microsoft.com/en-us/learn/challenges?id=b99c9309-f375-40a9-b136-ceff971c01b7&WT.mc_id=iot-10260-pdecarlo) | 15 Mins 43 | | [Enroll in Microsoft Imagine Cup](https://imaginecup.microsoft.com/?WT.mc_id=iot-10260-pdecarlo) | 15 Mins | 44 | | [Enroll in Deep Learning Institute](https://www.nvidia.com/en-us/deep-learning-ai/education/) | 15 Mins | 45 | | [Presentation - Intro to Azure](/Day1/Content) | 15 Mins | 46 | | [Azure Fundamentals](https://docs.microsoft.com/learn/paths/azure-fundamentals/?WT.mc_id=iot-10260-pdecarlo) | 1 hour | 47 | | [Deploy Windows VM](https://docs.microsoft.com/learn/modules/create-windows-virtual-machine-in-azure/?WT.mc_id=iot-10260-pdecarlo)| 1 hour | 48 | | [Brainstorming Website Ideas](/Day1/Homework/DesignDocument.md) | 1 hour | 49 | | [Deploy WordPress Instance on Azure](https://azuremarketplace.microsoft.com/marketplace/apps/WordPress.WordPress/?WT.mc_id=iot-10260-pdecarlo) | 1 hour | 50 | | Work on Website and Design Documents | 1 hour | 51 | | [MS Learn Modules](/Day1/Modules) | 1 hour | 52 | | [Homework](/Day1/Homework) | 1 hour | 53 | 54 | 55 | | [Day 2](/Day2) | Suggested Time | 56 | | ----------------------------------------------------------------------------------------------------------- | --------------- | 57 | | [Presentation - Interactive Introduction to WordPress](/Day2/Content) | 1 hour | 58 | | Instructor-Assisted Website Development | 3 hours | 59 | | [Presentation - All About the Internet of Things](/Day2/Content) | 1 hour | 60 | | [MS Learn Modules](/Day2/Modules) | 1 hour | 61 | | [Homework](/Day2/Homework) | 1 hour | 62 | 63 | | [Day 3](/Day3) | Suggested Time | 64 | | ----------------------------------------------------------------------------------------------------------- | --------------- | 65 | | Discuss Web Sites | 30 minutes | 66 | | [Presentation - GPU Accelerated IoT Workloads at the Edge](/Day3/Content) | 1 hour | 67 | | [Fundamentals of Deep Learning - Workshop](https://www.nvidia.com/content/nvidiaGDC/us/en_US/training/instructor-led-workshops/fundamentals-of-deep-learning/) | 4 hours | 68 | | [MS Learn Modules](/Day3/Modules) | 1 hours | 69 | | [Homework](Day3/Homework) | 1 hour | 70 | 71 | | [Day 4](/Day4) | Suggested Time | 72 | | ----------------------------------------------------------------------------------------------------------- | --------------- | 73 | | [Fundamentals of Deep Learning - Workshop](https://www.nvidia.com/content/nvidiaGDC/us/en_US/training/instructor-led-workshops/fundamentals-of-deep-learning/)| 4 hours | 74 | | [Presentation - Intelligent Home Security with NVIDIA Jetson](/Day4/Content) | 1 hour | 75 | | [Homework](Day4/Homework) | 1 hour | 76 | 77 | | [Day 5](/Day5) | Suggested Time | 78 | | ----------------------------------------------------------------------------------------------------------- | --------------- | 79 | | Class Presentations | 4 hours | 80 | 81 | ## Grading Criteria 82 | * Quizzes 10% 83 | * Design Documents 10% 84 | * Publishing Scalable Web Site 20% 85 | * DLI Lab 10% 86 | * Design IoT Solution 10% 87 | * Online Learn Modules 20% 88 | * FinalPresentation 20% 89 | 90 | Final Grade will be determined by the sum of the above criteria. 91 | 92 | * A = 90 – 100 93 | * B = 80 – 89 94 | * C = 70 – 79 95 | * D = 60 – 69 96 | * F = 0 - 59 97 | --------------------------------------------------------------------------------