课程概述

在移动互联网蓬勃发展的今年,能自己动手设计和开发一款手机游戏或者移动应用是件很值得炫耀的事情,但可惜的是一般只有少数计算机专业的高年级学生才可能接触到这方面。现在,机会来了!

本课程将基于主流的安卓Android平台,面向无任何基础的学生,你可以是大一的新手,或者学设计、法学、旅游、机械等专业的非计算机类专业学生,甚至,你都无需是大学生(事实上很多初、高中生也上过本课程,并且效果很好),只要你充满兴趣并愿意每周花上几个小时,相信等到课程结束时你会觉得得偿所愿。

本课程以 Android 的图形化积木式编程软件 App Inventor 2为设计和开发工具,在教学内容的选择和组织上突出了Android平台的特点和开发移动互联应用的主要方法和技能,并融入计算思维培养,教学内容具有鲜明的趣味性和实用性特色。

课程不以语法和组件的使用细节作为主要教学内容,而是通过一个虚拟的主角“小机器人安安”来串起系列案例,包括“安安诞生”、“安安爱画画”、“安安抓蝴蝶”、“安安爱旅游” 、“安安的股市”等8个趣味案例,以此激发学生的兴趣,增强主动学习。课程中每章均以一个精心设计的案例引入,一方面介绍App Inventor编程的方法和技能,另一方面体现相关程序设计思想。通过对该案例的演示和开发过程分析,由浅入深,逐步引出需要掌握的知识点,并讨论其中涉及的相关计算思维。每次课程都有讨论和头脑风暴环节,激发学生的创新和创意,课后会有实验。在课程的后半学期,每个学生要开始酝酿和开发自己的独创App,这也是课程的大作业。完成度较好的同学可以以此作品为基础参加各类软件开发竞赛,如谷歌的Android应用开发中国大学生挑战赛。

为了更好的完成本课程,你需要一台电脑,Windows系统或者Mac系统的都行,最好有一部Android手机,品牌不限,配置也无需太高。


证书要求

中国大学MOOC上的成绩将成为浙江大学城市学院该课程成绩的一部分

预备知识

零起点,无需编程基础,会上网,会敲键盘就行。当然如果你以前学过一点C语言或者Visual Basic之类的,也许你会觉得你有先发优势。

授课大纲

(一)Android与App Inventor简介

本章首先介绍当前移动互联网迅猛发展的背景。Android作为发展势头最好的系统平台之一,越来越受用户的接受和重视。开发Android的App并一定要计算机专业的高年级同学,其实零基础、非专业的同学如果有兴趣也完全可以开发出自己的专属App;然后引出App Inventor,并讲解如何搭建App Inventor开发环境。

本章的主要知识点包括:1)了解Android平台;2)安装App Inventor开发环境;

1.1 Android平台简介

1.2 App Inventor简介

1.3 搭建App Inventor开发环境

1.3.1配置计算机的Java环境

1.3.2下载和安装App Inventor

1.4 习题与实验

实验1 搭建App Inventor开发环境

(二)小机器人安安诞生记

本章通过一个简单的应用程序“Hello, AnAn Robot”的Step by Step开发来介绍App Inventor开发环境及整个开发过程,让学生能够快速开发出第一个非编程的Android小应用。通过这个小应用的开发,让学生对软件开发有了直观的感觉,结合该程序介绍面向对象的思想和App Inventor中的开发体系结构。

本章的主要知识点包括:1)了解如何通过App Inventor组件来设计自己的App;2)熟悉Image、Sound等Media组件和Label、Button、AccelerometerSensor等组件的基本属性和布局;3)学会使用Blocks编辑器来定义组件行为;4)通过模拟器测试开发的App;5)打包下载开发的App到手机中;6)发布App;7)管理App Inventor源程序;8)面向对象程序设计;9)App Inventor开发体系结构。

2.1 安安诞生了:Hello, AnAn Robot

    2.1.1案例展示与分析

    2.1.2开发过程

         界面设计

         增加行为

         模拟运行

         下载安装到手机

         维护我的项目

2.2 计算思维:面向对象程序设计与App Inventor应用开发体系结构

2.2.1面向对象程序设计

2.2.2 App Inventor应用开发体系结构

2.3 习题与实验

2.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

2.3.2 行动起来:实验2 开发你第一个专属App: Hello, X

(三)安安爱画画

本章以一个“涂鸦画板“为案例,对App Inventor程序开发做进一步介绍。涂鸦画板具有最基本的绘图功能,在一张画布上可以选择画笔的颜色,画笔的粗细,作画的方式(画圆点还是划线),画好还可以存盘。通过本案例对Canvas、HorizontalArrangement、Camera等组件和屏幕触摸、滑动事件等进行讲解,并结合案例中记录当前线宽和颜色的需求引出变量的概念,对一般程序设计中的“数据类型和变量”概念进行阐述。

本章的主要知识点包括:1)利用画布实现绘图功能;2)处理触摸和划屏事件;3)控制屏幕的布局;4)定义和使用变量;5)命名规则。

3.1 给安安的礼物:涂鸦画板

    3.1.1案例展示与分析

3.1.2开发过程

界面布局

画圆

选择颜色和线宽

通过触摸事件来划线

存盘

3.2 计算思维:数据类型与变量

3.2.1数据类型和变量

3.2.2定义和使用变量

3.2.2命名规则

3.3习题与实验

3.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

3.3.2 行动起来:实验3 超级涂鸦画板

(四)安安抓蝴蝶

本章以“安安抓蝴蝶”小游戏为例,主要展示了如何在App Inventor中开发一个小游戏,主要功能包括:实现图片的移动、判断是否触摸到某个精灵、计分的基本功能。结合案例对程序结构和过程函数进行讲解和分析。

本章的主要知识点包括:1)使用ImageSprite组件和Canvas组件显示图像精灵;2)使用Clock组件处理定时事件;3)使用Sound组件产生振动效果;4)使用Procedure来实现重复性行为;5)如何产生随机数;6)如何进行算术运算;7)条件控制语句。

4.1 来抓我吧:安安抓蝴蝶

4.1.1 案例展示与分析

4.1.2 开发过程

     界面布局

     图像精灵显示方法画布坐标系

     定时器

     抓蝴蝶过程

     计分规则计分方法

4.2 计算思维:程序结构

4.2.1语句

4.2.2顺序、分支与循环结构

4.2.3过程和函数

4.3习题与实验

4.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

4.3.2行动起来:实验4 打地鼠

(五)安安的通讯小助手

本章以“安安的通讯小助手”小应用为例,主要展示了如何在App Inventor中对短信、电话、数据存储等功能的实现。重点对程序设计中的通讯模块和数据持久化进行讲解分析。

本章的主要知识点包括:1)使用Texting组件发送和处理接收到的短消息;2)使用输入表单;3)使用TinyDB数据库组件来持久化存储客户的消息;4)利用Screen.Initialize事件来装置配置文件;5)利用Text-to-Speech组件来朗读文本;6)数据共享,TinyWebDB组件。

5.1 安安的通讯小助手

5.1.1 案例展示与分析

5.1.2 开发过程

     界面布局

     短信收发

     朗读文本

定制自动回复消息

5.2 计算思维:数据持久化与数据库

5.2.1数据持久化

5.2.2数据库管理系统

5.3习题与实验

5.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

5.3.2实验5 超级通讯助手

(六)安安爱旅游

本章以“安安爱旅游”的小应用为例,主要展示了如何在App Inventor中实现Google地图、方位传感器、相机等组件的应用。实现地图定位,拍照,加书签等功能。重点对传感器和基于位置的服务LBS应用进行讨论。

本章的主要知识点包括:1)使用ActivityStarter组件来调用Google Maps;2)使用List列表类型;3)利用LoacationSensor组件来获取当前位置信息;4)调用相机并存储照片。

6.1安安爱旅游

6.1.1 案例展示与分析

6.1.2 开发过程

     界面布局

     展现地图

     地图定位

定制书签

     增加照片

6.2 计算思维:传感器与LBS

6.2.1传感器

6.2.2 LBS基于位置的服务

6.3习题与实验

6.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

6.3.2实验6 出行助手

(七)安安历险记

本章以“安安历险记”小游戏为例,主要展示了如何实现一个稍微复杂一点的游戏,包括使用方向传感器组件来控制精灵的运动方向,更加直观的表示精灵的生命值,加入初步的人工智能策略等。重点对程序设计中的过程及人工智能思想进行讲解分析。

本章的主要知识点包括:1)使用多个ImageSprite组件处理多精灵;2)通过OrientationSensor方向传感器组件来控制精灵;3)        精灵造型变换;4)图形化变量表示;5)通过Clock组件控制多个事件; 6)创建和使用带参数的过程;7)使用逻辑运算;8)碰撞检测思想与方法;9)边界检测思想与方法;10)人工智能初步。

7.1 安安历险记

7.1.1 案例展示与分析

7.1.2 开发过程

     界面布局

     老虎追赶安安

     生命值的图形化展现

     滚球来了,快躲开

     游戏结束

7.2 计算思维:算法与人工智能

7.2.1算法

7.2.2人工智能

7.3习题与实验

7.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

7.3.2实验7 螳螂捕蝉,黄雀在后

(八)安安爱弹琴

本章以“安安爱弹琴”小应用为例,主要展示了如何实现一个Android平台的简单电子琴,主要功能包括不同琴键的发声和弹奏录音、回放功能。案例中采用List来记录弹奏的过程,通过对List的一些高级用法分析和回放弹奏过程的设计,引出程序设计中的数组、循环递归等概念。

本章的主要知识点包括:1)使用单个Sound组件来播放不同的声音文件;2)使用Clock组件测量时序;3)创建递归procedure;4)        List的高级用法;5)数组、循环与递归思想

8.1 安安爱弹琴

8.1.1 案例展示与分析

8.1.2 开发过程

     界面布局

     让琴键发声

     录制弹奏过程

     弹奏回放

8.2 计算思维:数组、循环与递归

8.2.1 数组

8.2.2 递归

8.3习题与实验

8.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

8.3.2实验8 跟我学弹琴

(九)安安的股市

本章以“安安的股市”小应用为例,主要展示了如何实现一个基于Web API的小应用,主要功能包括通过调用Web服务来查询股市行情。重点对程序设计中的API和Web服务进行讲解分析,讨论面向服务的软件开发思想。

本章的主要知识点包括: 1)了解和使用API;2)Web API。3)了解面向服务的软件开发思想。

9.1 安安的股市

9.1.1 案例展示与分析

9.1.2 开发过程

     界面布局

     JSON数据解析方法

     进一步完善

9.2 计算思维:应用编程接口API和Web服务

9.2.1 应用编程接口API

9.2.2 面向服务的软件开发

9.3习题与实验

9.3.1头脑风暴:现在我能做什么?如何改进?(课堂讨论)

9.3.2 实验9 我的天气预报

(十)大作业点评

点评学生完成的Android创新应用,讨论和分析。


*注:以上内容将根据教学效果有所调整

参考资料

吴明晖,《App Inventor - 零基础Android移动应用开发》,教学讲义,即将出版

常见问题

Q:我需要特殊版本的计算机吗?

A:任何计算机都可以用于App Inventor开发,包括但不限于各个版本的MS Windows、各个版本的Mac OS X、各种发行版本的Linux。关键是要能上网(相信大家能上MOOC应该就能上网的)。

Q:我需要特殊版本的手机吗?

A:需要Android系统的智能手机。所以苹果手机、Winphone手机或是老式的功能手机(非智能机)是不行的。但Android手机没有太大的版本限制,主流的都行。

Q:我需要安装特定的软件才能做这门课的作业吗?

A:App Inventor是基于浏览器,网页模式开发的。如果纯粹开发在PC上是无需安装任何特殊软件的,但开发过程中的调试需要用到配套的PC上的模拟器软件或者安装在Android手机上的伴侣软件。

Q:每周会发布多少时间的视频?我需要花多少时间来学习?

A:我们按照90分钟的授课时间来设计课程。但是发布的视频肯定小于90分钟,一般在30到60分钟左右。因为在线下上课时,老师可能会回顾一下上周的内容、某些内容会看学生的反应重复几遍、会当堂问做一些提问,以及在各种软件等教学工具之间切换,这些都要花点时间,而这些在线上课程中都不存在了,所以视频的时间不会正好是90分钟。但是一般我们设计课程需要1:1.5到1:2的课后学习时间,这包括预习、作业、练习和复习的时间,所以每周大约需要花费三到五小时的时间。

Q:课程的大作业怎么提交?

A:课程的大作业需要在规定时间内完成,并提交软件的源代码(aia文件),安装文件(apk文件)、设计开发文档(有模板可以参考)和演示视频文件。分数将根据 创意、功能完整性、可用性、用户体验、技术、开发报告和展示 等6个方面综合评价。