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.