This MOOC describes by example how to connect Android mobile devices to clouds via the use of object-oriented design techniques, Java programming language features, Jetty middleware, Java Servlets, the Java Spring Framework, and cloud computing platforms, such as Google App Engine. Although there will be 10 weeks of lecture material, the required core of the course is six weeks long and can be completed flexibly within the ten week schedule to provide flexibility for students during the summer.
An extended case study project will be used throughout the required core of the MOOC to showcase architectures for communicating with the cloud using HTTP, server-side processing of mobile data using servlets and the Java Spring Framework, and scalable storage of data using no-SQL databases and other platforms. Due to the importance of building secure and scalable mobile/cloud platforms, this MOOC will not only show you how to program handheld systems that talk to the cloud, but how to do so securely, scalably, and efficiently. Security and scalability topics will be woven into discussions of cloud service creation so that students learn, from the start, how to create robust cloud services for mobile devices.
Four weeks of optional lecture material will also be provided for students who would like to gain a deeper understanding of the patterns and frameworks for building cloud infrastructure building. This material will be presented in the context of the open-source JAWS web server, which is implemented in C++ as part of the ACE open-source object-oriented concurrent and networked programming toolkit.
Although the cloud service topics in this course will be taught in the context of connecting mobile devices to the cloud, the concepts are broader and will give students the ability to create the cloud services to support large-scale web applications, such as social networking applications; cloud services for embedded systems, such as the Internet of Things and Industrial Internet; and wearable computing devices, such as Google Glass.
Note: This course is part of a trans-institution sequence of MOOCs entitled Mobile Cloud Computing with Android
This MOOC and two others, taught by Dr. Adam Porter from the University of Maryland and Dr. Douglas C. Schmidt from Vanderbilt University, have been designed to complement one another as part of the first trans-institution Specialization taught on the Coursera platform. Some of the programming assignments and the course project for these MOOCs will be coordinated. Dr. Porter's MOOC, Programming Mobile Applications for Android Handheld Systems, will be taught first; it focuses on the design and programming of user-facing application components. Dr. Schmidt's MOOC, Programming Mobile Services for Android Handheld Systems, will be taught next; it focuses on middleware systems programming topics, such as synchronous and asynchronous concurrency models, background service processing, structured data management, local inter-process communication and networking. This MOOC introduces the concepts and knowledge needed to connect the user-facing and service-based components, built in the first two courses, to the cloud.
If you just want to take some of the MOOCs in this sequence or take them all in different order you’re certainly welcome to do so, and you’ll still learn a lot. If you take all the MOOCs in this sequence in the order presented, however, you’ll gain a deeper, end-to-end understanding of handheld systems, their applications and services, as well as their integration into the cloud.