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 Getting Started with Processing Unit / Weeks Title, Topic, Student Objectives 1. Understanding Processing Sketching and Prototyping Flexibility Giants and Family Tree 2. Starting to Code Your First Program Show and Save Share, Examples and Reference 3. Draw Basic Shapes Drawing Order Shape Properties Color Custom Shapes and Comments 4. Variables Making Variables Processing Variables Math class Repetition 5. Response Follow Map Click Location Type 6. Media Images Fonts Shapes 7. Motion Speed and Direction Tweening Random, Timers Circular Translate, Rotate, Scare 8. Functions Function Basics Make a Function Return Values Resource, Assessment and Strategies Resources: Text Books 1. Getting Started with Processing 2. Learning Processing Others 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 10. Arrays Make an Array Repetition and Arrays Arrays of Objects Robot 8: Arrays 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 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 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 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/ 7. https://code.google.com/p/ketai/ 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) 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 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 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/ 7. https://code.google.com/p/ketai/ 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 Using Peer-to-Peer Networking Unit / Weeks Title, Topic, Student Objectives 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 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 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/ 7. https://code.google.com/p/ketai/ 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 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 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 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 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/ 7. https://code.google.com/p/ketai/ 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.