“Programming Cloud Services for Android Handheld Systems”是美国马里兰大学和范德堡大学联合推出的专项慕课“基于 Android 系统的移动云计算”中的一门子课程。本课主要介绍如何将安卓移动设备与云端计算和数据存储资源进行连接,实质上就是将设备扩展为建立在当前流行的云计算平台上的强大的云端服务,例如:Google应用引擎和亚马逊EC2(弹性计算云)。
值得称赞的是不同于其他普通的录像课,本课为充分照顾看视频听课的小伙伴,老师倒着写板书,让你在看黑板的同时还能看到老师的表情,这样就不会开小差了。。。开课日是7月21日即今天
去报名
课程概述
课程通过实例讲解如何 利用面向对象的设计方法将移动设备与云端连接 Java 编程语言的特点, Jetty 中间件,Java Servlets,Java Spring 架构和云计算平台, 如Google应用引擎。通过案例扩展研究来展示利用HTTP与云端通信的架构,采用servlets和Java Spring 架构的移动数据的服务端处理,以及利用no-SQL数据库和其他平台的数据可扩展存储。
鉴于构建安全以及可扩展的移动/云平台的重要性,课上我们不仅要讲如何为与云端对话的手持系统编程,还要研究如何编写安全高效和可扩展的程序。谈到安全性和可扩展性时,我们会结合讨论云服务的创建,方便大家从一开始就能学习如何为移动设备构建稳定的云端服务。
虽然课程主要针对移动设备与云端的连接来讲解云服务,不过我们还是扩展了知识面,提供更广阔的概念和思路,让大家有能力创建支持大型网络应用程序(如:社交网络应用),嵌入式系统(如:物联网和工业互联网)以及便携计算设备(如:Google眼镜)的云服务。
授课大纲
The course is organized into the sections outlined below.
Section 0: Course Overview
Section 1: Talking to the Cloud with HTTP
Section 2: Building Java Cloud Services
Section 3: Building Database-driven Java Cloud Services
Section 4: Restricting Service Access with User Accounts
Section 5: Deploying to the Cloud Scaling
Section 6: Patterns and Frameworks for Concurrent and Networked Server Software [Optional Material]
先修知识
本课程针对计算机科学专业大二或初级本科生;
学生应该具备基本的编程概念和能力,会用Java编程;
不要求学生有深入的移动应用开发或安卓和云平台的经验;
如果学员能大致了解面向对象的设计和编程概念(如:封装、抽象性、多态性和扩展性),面向对象的Java编程语言的特点(如:类别、继承、Java通用术语),系统编程的基本概念(如:事件处理、进程/线程、同步性)以及网络术语(如:客户端/服务器端、点对点架构)是再理想不过了。
常见问题
课程的教学目标是什么?
通过学习,学员应该能够:
构建支持移动、嵌入式或基于网络客户端的云端服务。
理解与客户提供数据有关的安全考量,以及导致不安全服务的常见的编程缺陷。
应用面向模式的软件架构的关键技术来开发使用面向对象的Java编程语言、Servlets和Spring框架的可复用的并发和网络云服务。
开发与云端通信的安卓组件,设计/实现HTTP应用层协议。
实现云服务的数据持久性组件,理解不同架构的扩展性问题。
知道如何找到为移动设备、嵌入式系统和网络应用创建安全的、可扩展的云端服务的其他信息资源。
跨学校大型网络公开课的顺序是什么?
本课程与另外两套课程《安卓手持系统的移动应用编程》 (由美国马里兰大学的 Adam Porter教授主讲)和《安卓手持系统的移动服务编程》(由范德堡大学的Douglas C. Schmidt教授主讲)互为补充,并适当调整部分编程作业和课程项目。首先发布的是Porter教授的课程,主要研究面向用户的应用程序的设计和编程,于2014年1月开课。同年4月发布的第二门课程是Schmidt教授的《安卓手持系统的移动服务编程》,主要研究中间件系统编程,如同步与异步并发模型、后台服务进程、结构化数据的管理和本地进程间通信与联网。欲了解跨学校大型网络公开课发布顺序的其他信息,请访问和。
选修这门课之前,需要学习Porter教授和Schmidt教授的两部课程吗?还是可以单独选修这门课?
可以直接选修本课程,如果只按顺序学习部分内容或按照不同顺序学习全部课程也没问题,而且会有不小的收获。不过,如果按顺序习得全套课程,大家能够更深入、更系统地了解手持系统,系统应用程序和服务,及其与云端的融合。
这门课和范德堡大学的相关课程有什么区别?
本课程以范德堡大学的课程(如:软件工程原理)为基础,课程资料相似,而测验、编程作业和范德堡大学的课程反馈则有所不同;但是由于范德堡大学的上课人数较少,所以教授和助教显然会给予学生更多针对个人的指导,这是网络公开课(尚且)无法做到的。
选修这门课的学生可以使用编程语言[X]吗?
编程作业的设计语言是Java,虽然我们欢迎同学们使用其他语言来实现云服务,但是如果偏离了Java,你就要找到教学视频和编程项目中与所用语言相对应的内容,无疑增加了工作量;而且你的作业很难通过Coursera的同学评分系统得到反馈。
学习课程内容最有效的方式是什么?
我们建议大家反复观看教学视频,从不同层面研究图表和示例的含义;当然,我们也建议同学们阅读课上引用的论文和推荐阅读(选读)中的资料;参加在线讨论(如果条件允许,最好以小组形式见面讨论),更好地利用课程资源。
如果之前没学过安卓编程或Java编程,可以选修这门课吗?
课程适合熟悉Java编程并具备一定安卓应用编程经验的学生。如果不具备Java编程的相关背景,我们建议你先选修创新、严肃好玩的安卓应用程序开发 课程,它主要介绍了适合初学者的计算机科学、智能手机和平板电脑的安卓应用编程的基础知识。选修本课程无需编程经验,当然,我们建议大家先学习Adam Porter教授的安卓手持系统的移动应用编程课程,因为其中介绍了安卓应用编程的重要内容,会对这门课有所帮助。
为了完成编程作业,哪里可以学习Java开发环境的设置?
Porter教授的安卓手持系统的移动应用编程课程逐步讲解了如何利用Eclipse和Java建立安卓开发环境。Eclipse是课程主要用到的开发环境,Porter教授还会介绍如何创建Google应用引擎的Eclipse插件程序。如果同学们用的不是Eclipse开发环境(如:Intellij IDEA),则要到讨论区寻求其他同学的帮助了。
哪里可以学习模式和框架?
2013年春季发布的《并发和网络软件的面向模式的软件架构》课程中有很多涉及模式和框架的内容,视频链接为。课程第二部分和附页介绍了很多关于模式和框架的背景信息,如果你是Safari在线读书俱乐部的会员,请访问Java设计模式的系列教学视频,其中包括“四人组”的模式设计。
Coursera专项课程
专项课程是Coursera联合相关大学开设的一组帮助学生精研某个主题的系列MOOC课程,学生须先完成每门课并获得对应的认证证书,最后还要完成课程毕业设计(Capstone project),才可获得专项证书。
以“基于 Android 系统的移动云计算”为例,该系列中每门课都可以免费听课学习,如果想要获取证书就须交费,每门49美元,3门课+一次毕业设计(49美元),共计196美元。要拿到该系列专项证书的前提是每门课都要拿到证书,也就是说一张专项证书的价值是196美元。每门课程开始时才需要付费,如果你没能通过课程,还有一次免费重新学习的机会。
查看“基于 Android 系统的移动云计算”专项课程详情
另外两门“基于 Android 系统的移动云计算”专项课程:
Android手持系统的移动应用编程(开课时间:2014年1月21日)
Programming Mobile Applications for Android Handheld Systems
面向模式的软件架构:Andr??oid手持系统的移动应用编程(开课时间:2014年5月12日)
Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems