App Development Course Description: App Development Full Year

advertisement
App Development
Course Description: App Development
Full Year
Grades 9-12
5.0 Credits
Prerequisite: Introduction to Computer Science, Advanced Placement Computer Science, or by
permission of the instructor
This is a first course in applied computer science. It is designed for the students who have some
prior knowledge of computer science and have taken Introduction to Computer Science Course.
This elective course introduces students to various applications within computer programming
from a hands-on modeling perspective. It explores the development of Java applets and fullfeatured apps for the Android operating system. Students will gain experience in back-end and
front-end processing as well as in using both graphical user interface (GUI) and text commands.
First part of this course focuses on Processing, which is a Java based programming language,
development environment and online community. Initially created to serve as a software
sketchbook and to teach computer programming fundamentals within a visual context,
Processing evolved into a development tool for professionals. Today, there are tens of
thousands of students, artists, designers, researchers, and hobbyists who use Processing for
learning, prototyping, and production. Processing now runs just as easily on a mobile platform
with Android.
During the second part of the course we will move to android development using the ideas
created in processing. This will include creating android apps with all of the functionality,
transferring it to eclipse, testing them with android API, testing on emulator and installing app
on android devices.
App Development may be taken at any time in the computer science sequence of course
offerings and does not prepare students to take the AP Exam in Computer Science. Students
who take App Development are encouraged to continue their study of computer science by
taking Advanced Placement Computer Science.
Major Texts
1. GSP: Getting Started with Processing, Casey Reas & Ben Fry, O’Reilly Media, Inc, June
2010: First Edition
2. LP: Learning Processing, A beginner’s Guide to Programming Images, Animation and
Interaction, Daniel Shiffman, Elsevier Inc, 2008
3. RAD: Rapid Android Development, Build Rich, Sensor – Based Applications with
Processing, Daniel Sauter, The Pragmatic Bookshelf, 2013
4. Android Boot Camp, for Developers using Java, A Beginner’s Guide to Creating Your First
Android App, Corinne Hoisington
Marking Period I
Unit /
Weeks
Title, Topic, Student Objectives
1. Understanding Processing
 Sketching and Prototyping
 Flexibility
 Giants and Family Tree
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
Objectives:
Others

1.
2.
3.
4.


Getting Started with Processing
Resource, Assessment and Strategies
Understanding role processing plays in
developing thinking process.
Understanding flexibility processing
offers for implementation.
Understanding of whole family of
languages processing can work with.
2. Starting to Code
 Your First Program
 Show and Save
 Share, Examples and Reference
Objectives:



3. Draw





Understand how to install and run
processing
Understand menu option, basic Errors,
The Play button.
Understand how to write, run and save
programs on processing.
Basic Shapes
Drawing Order
Shape Properties
Color
Custom Shapes and Comments
Objectives:




Understanding pixel coordinates
Basic shapes: point, line, rectangle and
ellipse
Understanding Color: gray scare, “RGB”
Understanding and implementing Color
Transparency
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period I
Unit /
Weeks
Title, Topic, Student Objectives
4. Variables
 Making Variables
 Processing Variables
 Math class
 Repetition
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
Others
Objectives:

Getting Started with Processing





Understanding meaning behind setup()
and draw()
The “flow” of a program
Declaring and initializing variables in
processing
Identifying and using Variables we get
free with Processing
Using random values for variables
Iteration in the context of computer
graphics.
5. Response
 Follow
 Map
 Click
 Location
 Type
Objectives:



Writing first “dynamic” Processing
program
Handling events, such as mouse click
and key presses.
Mouse Interaction
6. Media
 Images
 Fonts
 Shapes
Objectives:


Understand how to load raster images,
vector files and fonts into programs.
Understand how to do drawing with
letters and shapes.
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period I
Unit /
Weeks
Title, Topic, Student Objectives
7. Motion
 Speed and Direction
 Tweening
 Random, Timers
 Circular
 Translate, Rotate, Scare
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
Others
Objectives:

Getting Started with Processing

Understand how to create illusion of
fluid motion
Create flip card like effects in processing
8. Functions
 Function Basics
 Make a Function
 Return Values
Objectives:



Understanding role of modularity
Learn how to write and call functions
Using and understanding Function
signature
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period II
Getting Stated with the Touch Screen and Android Sensors
Unit /
Weeks
Title, Topic, Student Objectives
9. Objects
 Classes and Objects
 Robot 7: Objects
Objectives:



10. Arrays




Writing own classes in processing
Creating your own objects
Understanding processing tabs
Make an Array
Repetition and Arrays
Arrays of Objects
Robot 8: Arrays
Objectives:




Understanding what is an Array
Declaring and initializing Arrays
Array Operations
Understand how to interact with array
of objects.
11. Getting Started with Android Development
 Install the Required Software
 Write your First Android Sketch
 Run a Sketch in the Android Emulator
 Run a Sketch on an Android Device
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
Objectives:


Students will learn how to create
graphics for Android using processing
Install Android SDK and use it in
conjunction with Processing IDE to
develop Android apps.
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period II
Getting Stated with the Touch Screen and Android Sensors
Unit /
Weeks
Title, Topic, Student Objectives
12. Working with Touch Screen Display
 Introducing the Android Touch Screen
 Using Colors
 Use Mouse Speed to Control Hues
 Introducing The Ketai Library
 Install the Ketai Library
 Working with the KetaiGesture Class
 Detect Multitouch Gestures
Objectives:




Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Using mouse callback methods available
in Processing for Android
Discussion and use of different color
modes processing has to offer
Using the mouse speed to manipulate
the hues of the ellipses we draw
To understand how most common
gestures including the tap, double-tap,
flick, pinch, and rotate gestures.
Learn how to change the scale, position,
rotation and color of a rectangle using
Assessment :
multitouch gestures
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period II
Getting Stated with the Touch Screen and Android Sensors
Unit /
Weeks
Title, Topic, Student Objectives
13. Using Motion and Position Sensors
 Introducing the Device Hardware and
Software Layers
 Introducing Common Android Sensors
 Working with the KetaiSensor Class
 List the Built-in Sensors on an Android
Device
 Display Values from the Accelerometer
 Display Values from Multiple Sensors
 Build a Motion-Bases Color Mixer and
Palette
 Save a Color
 Build a Palette of Colors
 Erase a Palette with a Shake
Objectives:



Understand how to interact with
sensors on an Android device using the
Ketai Library
Understand how to use motion sensors
to measure how device is oriented in
space and how it accelerates when we
move it.
Work with orientation of an Android
device to create an interactive color
mixer app.
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period III
Working with Camera and Location Devices
Unit /
Weeks
Title, Topic, Student Objectives
14. Using Geolocation and Compass
 Introducing the Location Manager
 Working with the KetaiLocation Class
 Determine Your Location
 Setting Sketch Permissions
 Working with the Location Class
 Determine the Distance Between Two
Locations
 Determine the Speed and Bearing of a
Moving Device
 Find Your Way to a Destination
 Find a Significant other ( Device)
Objectives:




Understand to work with and use data
provided by Android's Location
Manager.
Learn to use KetaiLocation or the
Android's Location class in order to
determine the geographic location.
Will be able to find distance between
two geolocations and calculator bearing
towards a fixed location.
Will learn how to write a way-finding
app that point to another mobile device
on the move.
15. Using Android Cameras
 Introducing the Android Camera and API’s
 Working with the KetaiCamera Class
 Display a Back-Facing Camera Full-Screen
Preview
 Toggle Between the Front- and Back- Facing
Cameras
 Snap and Save Pictures
 Superimpose and Combine Images
 Detect and Trace the Motion of Colored
Objects
 Detect Faces
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period III
Unit /
Weeks
Title, Topic, Student Objectives
Objectives:


Working with Camera and Location Devices


Will learn how to work with camera on
the Android device.
How to display the images the camera
acquires, how to save them and how to
work with them when they are stored in
memory.
Will be able to use camera to detect
colored objects in motion, and display
their paths on the screen.
Will understand and know how to
activate and use Android's face
recognition feature.
16. Networking Devices with Wi-Fi
 Working with Wi-Fi on Android Devices
 Working with Networking Classes
 Using the Open Sound Control Networking
Format
 Network and Android with a Desktop PC
 Share Real – Time Data
 Network a Pair of Androids for a
Multiplayer Game
Objectives:



Will master the exchange of data across
devices within a Wi-Fi network.
Understand how to package diverse
data types into OSC messages, send the
across wireless LAN's and unpack them
on the other side.
Will be able to expand this concept to
other application contexts, including
making Android remote control.
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period III
Unit /
Weeks
Title, Topic, Student Objectives
Using Peer-to-Peer Networking
17. Peers-to-Peer Networking Using Bluetooth and WiFi Direct
 Introducing Short-Range Networking and UI
Classes
 Working with the KetaiBluetooth Class
 Introducing Bluetooth
 Working with the Android Activity Life
Cycle
 Connect Two Android Devices via Bluetooth
 Create a Survey App Using Bluetooth
 Working with Wi-Fi Direct
Objectives:



Will learn how to interact with other
Android users without using WiFi/3G/4G.
Will learn to write a range of apps that
use peer-to-peer principles.
Will learn how does bluetooth
discovery, pairing, connecting and
exchanging data works.
18. Using Near Field Communications (NFC)
 Introducing NFC
 Working with the KetalNFC Class and NDEF
Messages
 Share a Camera Preview Using NFC and
Bluetooth
 Read a URL from an NFC Tag
 Write a URL to an NFC Tag
Objectives:



Understand what Near Field
Communication is and how it is
different from Wi-Fi and Bluetooth.
Understand peer-to-peer
communication.
Will learn how to use NFC to initiate
peer-to-peer communication between
two devices and to read NFC tags
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.c
om/tutorials/
5. http://developer.android.com/trai
ning/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12/
android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.c
om/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of the
Programs and hands on coding.
Marking Period IV
Creating 3D Graphics and Cross-Platform Apps
Unit /
Weeks
Title, Topic, Student Objectives
19. Working with Data
 Introducing Databases
 Working with the Table Classes and the File
System
 Working with Android Storage
 Read a Tab-Separated Grocery List
 Read Comma-Separated Web Color Data
 Save User Data in a TSV File
 Write Data to External Storage
 Visualize Real-Time Earthquake Data
 Add Vibes to the Earthquake App
Objectives:





Understand what is database and
tables.
Understand how Android file system
works.
Will to learn how to work with Table
class.
Will be able to read and write data
locally to android device, for seamless
transition between the states.
Will learn how to work with private and
public directories of Android.
20. Using SQLite Databases
 Working with SqLite Databases
 Working with the KetaiSqLite Class
 Implement a Data Table in SQLite
 Record Sensor Data into a SqLite Database
 Refine SQLite Results Using WHERE Clauses
 Write a URL to an NFC Tag
Objectives:



Will understand the need to work with
SQLite database for the complex
projects.
Will be able to use search, sort and
query features of SQLite database.
Will be able to develop data driven
application and take advantage of the
powerful SQL.
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.
com/tutorials/
5. http://developer.android.com/tra
ining/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12
/android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.
com/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of
the
Programs and hands on coding.
Marking Period IV
Unit /
Weeks
Title, Topic, Student Objectives
Creating 3D Graphics and Cross-Platform Apps
21. Introducing 3D Graphics with OpenGL
 Introducing 3D Graphics and Open GL
 Working with 3D Primitives and Lights
 Apply an Image Texture
 Use the camera Preview as 3D Texture
 Working with Spot and Point Lights
 Working with SVG Graphics and Maps
 Use GPU Memory to Improve Frame Rate
 Control Virtual Camera with Your Gaze
Objectives:





Learn how to work with basic geometric
shapes.
Learn how to work with 3D primitives:
sphere and box, and how to illuminate
them in 3D scene.
Will learn how to apply image textures
to these shapes.
Will learn to manipulate the properties
of spotlights, ambient lights, and point
lights.
Will learn how to use system fonts, load
a custom font into a processing sketch
using Processing’s 3D render.
22. Sharing and Publishing Applications
 Share Your Code
 Brand Your App
 Move Your App to Eclipse
 Publish your App to Google Play
 Package your App to Run in HTML5-Ready
Browser
Objectives:


Will learn how to put together all the
learned information about touch screen
panel, device sensors, location devices,
cameras, peer-to-peer networking, and
OpenGL-accelerated graphics to create
android apps.
Learn how to share work with friends,
other developers and how to publish it
to Google Play.
Resource, Assessment and Strategies
Resources:
Text Books
1. Getting Started with Processing
2. Learning Processing
3. Rapid Android Development
4. Android Boot Camp
Others
1.
2.
3.
4.
http://processing.org/
http://processing.org/examples/
http://www.openprocessing.org/
http://www.learningprocessing.
com/tutorials/
5. http://developer.android.com/tra
ining/basics/firstapp/index.html
6. http://hackaday.com/2010/07/12
/android-development-101%E2%80%93-a-tutorial-series/
Assessment :
 Student created projects
 Exercises from the text
 http://www.learningprocessing.
com/exercises/
This content will be taught with help of
power points, in class activities, class
discussions, worked out examples of
the
Programs and hands on coding.
Download