PLTW Computer Science Computer Science A Course Outline

Similar documents
Android App Development for Beginners

GACE Computer Science Assessment Test at a Glance

Rental Property Management: An Android Application

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

Preferences...3 Basic Calculator...5 Math/Graphing Tools...5 Help...6 Run System Check...6 Sign Out...8

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

MINISTRY OF EDUCATION

Unit purpose and aim. Level: 3 Sub-level: Unit 315 Credit value: 6 Guided learning hours: 50

November 17, 2017 ARIZONA STATE UNIVERSITY. ADDENDUM 3 RFP Digital Integrated Enrollment Support for Students

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

Modeling user preferences and norms in context-aware systems

Course Content Concepts

Computer Science (CS)

Five Challenges for the Collaborative Classroom and How to Solve Them

On Human Computer Interaction, HCI. Dr. Saif al Zahir Electrical and Computer Engineering Department UBC

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Chapter 1 Analyzing Learner Characteristics and Courses Based on Cognitive Abilities, Learning Styles, and Context

Specification of the Verity Learning Companion and Self-Assessment Tool

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

PROCESS USE CASES: USE CASES IDENTIFICATION

Online Marking of Essay-type Assignments

Open Source Mobile Learning: Mobile Linux Applications By Lee Chao

Lecturing in the Preclinical Curriculum A GUIDE FOR FACULTY LECTURERS

Rover Races Grades: 3-5 Prep Time: ~45 Minutes Lesson Time: ~105 minutes

INTERMEDIATE ALGEBRA PRODUCT GUIDE

Prepared by: Tim Boileau

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Computer Organization I (Tietokoneen toiminta)

Unit 7 Data analysis and design

Radius STEM Readiness TM

Instructional Approach(s): The teacher should introduce the essential question and the standard that aligns to the essential question

CSCI 333 Java Language Programming Fall 2017 INSTRUCTOR INFORMATION COURSE INFORMATION

Algebra Nation and Computer Science for MS Initiatives. Marla Davis, Ph.D. NBCT Office of Secondary Education

Storytelling Made Simple

WSU Five-Year Program Review Self-Study Cover Page

Blank Table Of Contents Template Interactive Notebook

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

2 User Guide of Blackboard Mobile Learn for CityU Students (Android) How to download / install Bb Mobile Learn? Downloaded from Google Play Store

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

Platform for the Development of Accessible Vocational Training

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

Planning a Webcast. Steps You Need to Master When

Outreach Connect User Manual

Introduce yourself. Change the name out and put your information here.

The Enterprise Knowledge Portal: The Concept

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

BPS Information and Digital Literacy Goals

K5 Math Practice. Free Pilot Proposal Jan -Jun Boost Confidence Increase Scores Get Ahead. Studypad, Inc.

Pragmatic Use Case Writing

DYNAMIC ADAPTIVE HYPERMEDIA SYSTEMS FOR E-LEARNING

TEACHING IN THE TECH-LAB USING THE SOFTWARE FACTORY METHOD *

use different techniques and equipment with guidance

An Open Framework for Integrated Qualification Management Portals

CS Course Missive

Get with the Channel Partner Program

A Neural Network GUI Tested on Text-To-Phoneme Mapping

Speak Up 2012 Grades 9 12

Bootstrapping Personal Gesture Shortcuts with the Wisdom of the Crowd and Handwriting Recognition

Selling Skills. Tailored to Your Needs. Consultants & trainers in sales, presentations, negotiations and influence

Leadership Guide. Homeowner Association Community Forestry Stewardship Project. Natural Resource Stewardship Workshop

Appendix L: Online Testing Highlights and Script

Web-based Learning Systems From HTML To MOODLE A Case Study

Using Task Context to Improve Programmer Productivity

LOS ANGELES CITY COLLEGE (LACC) ALTERNATE MEDIA PRODUCTION POLICY EQUAL ACCESS TO INSTRUCTIONAL AND COLLEGE WIDE INFORMATION

Requirements-Gathering Collaborative Networks in Distributed Software Projects

COURSE LISTING. Courses Listed. Training for Cloud with SAP SuccessFactors in Integration. 23 November 2017 (08:13 GMT) Beginner.

Parcel. Low-fi Prototyping & Pilot Usability Testing. Management & Documentation. Development & Digital Prototyping

Designing Educational Computer Games to Enhance Teaching and Learning

Project Management for Rapid e-learning Development Jennifer De Vries Blue Streak Learning

Bluetooth mlearning Applications for the Classroom of the Future

BUS Computer Concepts and Applications for Business Fall 2012

Eller College of Management. MIS 111 Freshman Honors Showcase

The Development Of Project Grade-Up

JING: MORE BANG FOR YOUR INSTRUCTIONAL BUCK

PowerTeacher Gradebook User Guide PowerSchool Student Information System

Unit 3. Design Activity. Overview. Purpose. Profile

Protocol for using the Classroom Walkthrough Observation Instrument

Examining the Structure of a Multidisciplinary Engineering Capstone Design Program

Introduction to Mobile Learning Systems and Usability Factors

CWIS 23,3. Nikolaos Avouris Human Computer Interaction Group, University of Patras, Patras, Greece

Quick Start Guide 7.0

TEACH WRITING WITH TECHNOLOGY

Connect Communicate Collaborate. Transform your organisation with Promethean s interactive collaboration solutions

Blended E-learning in the Architectural Design Studio

ESSENTIAL SKILLS PROFILE BINGO CALLER/CHECKER

Courses in English. Application Development Technology. Artificial Intelligence. 2017/18 Spring Semester. Database access

Common Core Standards Alignment Chart Grade 5

Education the telstra BLuEPRint

Spring 2015 Achievement Grades 3 to 8 Social Studies and End of Course U.S. History Parent/Teacher Guide to Online Field Test Electronic Practice

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

An Open Letter to the Learners of This Planet

new research in learning and working

Carolina Course Evaluation Item Bank Last Revised Fall 2009

Worldwide Online Training for Coaches: the CTI Success Story

A virtual surveying fieldcourse for traversing

Introduction and survey

Your School and You. Guide for Administrators

The Multi-genre Research Project

Transcription:

Develop and publish your own original apps for Android TM mobile devices! Students use state of the art development tools to design apps that can have an impact in their communities. They create apps using Java and XML that can fully utilize all capabilities of mobile devices. Computer Science A (CSA) aligns with the College Board s CS A framework. CSA builds on the basic skills learned in PLTW Computer Science Principles (CSP) to teach students Java and authentic Android TM app development. Students in this course continue to hone their communication and collaboration skills while learning to use a variety of tools. The primary goal of the course is to create independent-thinking app developers: every unit in this course builds on students' prior knowledge and skills until they are able to complete an app development cycle independently from the ground up. PLTW's CSA is designed to cover all learning objectives in the College Board s AP Computer Science A framework, and exceeds the College Board s requirement of 20 hours of lab activity. It is also an example of a CSTA level 3C course. Activities, projects, and problems are provided to the teacher via the PLTW LMS in the form of studentready handouts, teacher notes, and supplementary materials including code and slide presentations. The course is designed to be readily adaptable to student interests and community assets. Individual teachers are encouraged to modify the course content so that it feels as authentic and meaningful within the local context as possible. This course aims to fully develop Object Oriented Programming (OOP) skills that were introduced in CSP and will require consummate engagement with the material for success. As such, augmenting content to keep it fresh and exciting is a priority. The following is a summary of the units of study in the course. Unit 1 Introducing Java (22%) Unit 2 Vanilla Android TM Development (25%) Unit 3 Advanced Android TM Features (25%) Unit 4 The LibGDX Game Development Framework (28%) Unit 1: Introducing Java Unit 1 provides a primer in the basics of the Java programming language and object oriented programming (OOP). Students create classes, instantiate them, add instance data and access that data. They use conditionals, iteration, arithmetic and logical operators, arrays and iterators, first in BlueJ to ensure code correctness, and then in Android TM Studio to incorporate their own code into fully functional apps. The material provided also includes extra practice on all these Java topics and more. Page 1

Introducing Java Lesson 1.1 Objects in Java Lesson 1.2 Manipulating Data Lesson 1.1 Objects in Java The goal of this lesson is to give students the tools they need to create Java objects. Students create their own methods and call them to manage and manipulate data. Students then program the logic into a weather app that notifies the user of appropriate courses of action to take when heading out the door in the morning based on the weather forecast. The lesson concludes with students augmenting the artificially intelligent natural language processing MagPie app based on the College Board s MagPie chatbot lab. Activity 1.1.1 Activity 1.1.2 Activity 1.1.3 Activity 1.1.4 Activity 1.1.5 Activity 1.1.6 Introduction to Android TM Development (2 days) Your First Class (3 day) Making Objects (3 days) If It s Raining... (5 days) Your Sci-Fi Name (1 day) Chatting with MagPie (7 days) Lesson 1.2 Manipulating Data This lesson focuses on managing data in arrays and using iteration in Java. Students write code in BlueJ that parses string data and then plug that code into an app in Android Studio that retrieves data from the device s local memory. They also write code to manage and maintain a list of billboard music ratings. The unit culminates with students creating an app from the ground up that uses buttons to play sound assets. Activity 1.2.1 Activity 1.2.2 Activity 1.2.3 Activity 1.2.4 Activity 1.2.5 Parsing Text (4 days) Today s Top 40 (5 days) Data Storage (5 days) Create an Android Project (1 day) Synthesizer (2 days) Unit 2: Vanilla Android TM Development Students spend most of this unit developing a viewer for college applications, with college admissions officials as the target audience. Highlights of this unit include working with fragments, mastering encapsulation, and designing and implementing apps that incorporate the most common and useful user interface elements. Students use a Backend As A Service (BaaS) to implement persistent data within their app, allowing a user to access their data from any Android TM device. At the end of the unit, students design apps and perform usability testing on their designs using a prototyping tool. Page 2

Vanilla Android TM Development Lesson 2.1 App Navigation Lesson 2.2 Data Persistence Lesson 2.3 The Development Process Lesson 2.1 App Navigation Students begin this lesson by testing out a sample app that showcases the functionality of the final product they are asked to produce in the Unit 2. The College App is designed to quickly show an admissions officer whatever assets an applicant has provided in a mobile format. Students learn to incorporate and extend several common User Interface (UI) features into the College App. In the process, they learn about inheritance and class definitions and also have an opportunity to apply prior knowledge of basic Java constructs. Incorporating a navigation drawer into the app improves usability and gives students experience working with a design pattern found in many real world apps. Finally, students explore and critique a Unified Modeling Language (UML) diagram and other documentation for the College App. Activity 2.1.1 Activity 2.1.2 Activity 2.1.3 Project 2.1.4 Activity 2.1.5 Usability Testing (1 day) Prototyping with proto.io (2 days) Classes (1 day) App Navigation (3 days) User Input (4 days) Lesson 2.2 Data Persistence This lesson continues to emphasize the OOP paradigm, reinforcing previous learning. Additionally, students learn about and use some common data structures including ArrayLists. Students create their own checked exceptions, and access a Backend as a Service (BaaS) to implement data persistence. They create classes that inherit from interfaces or other classes and use these within data structures, necessitating a solid understanding of polymorphism. Finally, students decide on a feature to add to the College App and implement it. Activity 2.2.1 Activity 2.2.2 Activity 2.2.3 Problem 2.2.4 Activity 2.2.5 Project 2.2.6 Exceptions and Scope (1 day) Remote Database (5 days) ListView (4 days) One Method, Many Classes (4 days) List and Detail (2 days) Integration Testing and Unit Testing (4 days) Lesson 2.3 The Development Process Students start out this lesson by accessing Google s libraries for taking and displaying pictures in the College App. Having completed the College App, students will have fully utilized the ArrayList class in one dimension, extended interfaces and abstract classes, overloaded methods and more. This lesson culminates with students choosing a project in which they will extend their knowledge. They will revisit this project at the end of the course when they know more about Android TM development. Students must prototype and test their app for usability, as well as properly document and present their final products. Page 3

Activity 2.3.1 Activity 2.3.2 Let Me Take A Selfie (3 days) The Development Process (13 days) Unit 3: Advanced Android TM Features The goal of Unit 3 is for students to reach a level of understanding of Google's Android TM libraries that allows them to create apps using a broad range of mobile features such as Global Positioning Systems (GPS) and Internet services. The major project in this unit is a social networking app that utilizes the BaaS they learned in Unit 2. Students begin by learning to manage a new set of data in the back-end database, writing client and server code in their app. Students then learn to access the GPS features of mobile devices, to reading QR codes (Quick Response codes) and accessing the web. The unit culminates in a problem in which students create a geo-cache style app using the techniques they developed in the social networking app projects. Advanced Android TM Features Lesson 3.1 Trip Tracker Lesson 3.2 Location Awareness Lesson 3.3 Contacts in an App Lesson 3.4 App Analysis Lesson 3.1 Trip Tracker In this lesson, students learn to add a backend service to their apps. Students store and retrieve user data from the cloud. This provides teachers with an opportunity to connect the OOP that students have learned in Java to authentic web frameworks and APIs (Application Programming Interfaces). The goal of this lesson is to give students the power to create apps that store significant amounts of data, that benefit from crowd/cloud-sourcing, and then allow users to access data from anywhere. Students manage the front and back end interfaces for a social networking app, going through the steps of prototyping and usability testing. They continue to enhance the social networking app throughout this unit. Activity 3.1.1 Activity 3.1.2 Activity 3.1.3 Activity 3.1.4 Activity 3.1.5 Activity 3.1.6 Activity 3.1.7 Activity 3.1.8 Project 3.1.9 Project 3.1.10 Trip Tracker Start Up (2 days) User Authentication (2 days) A New Trip (2 days) Listing Trips (1 days) Updates and Deletes (1 day) Public vs. Private Trips (2 days) Sort Algorithms (3 days) Search Algorithms (2 days) Social Networking App Design (2 days) Social Networking App Development (5 days) Lesson 3.2 Location Awareness In this lesson students reinforce their understanding of basic Java language constructs and OOP while making their apps location aware with GPS. They also practice data storage and management by adding location data to Page 4

posts that users make in the app. Activity 3.2.1 Activity 3.2.2 Project 3.2.3 Activity 3.2.4 Preparing for Google Play Services (1 days) Using Google Play Services (4 days) Location Awareness App Design (1 day) Location Awareness App Development (4 days) Lesson 3.3 Contacts in an App This lesson concludes work on the Trip Tracker app by adding the ability to query the device to discover locally stored contacts. Each contact is categorized into a subclass of an abstract type and then combined into a large list, requiring students to use and understand polymorphism. To achieve the finished product, students must use common features such as autoboxing, common methods from the String class, and dynamic late binding, in addition to reinforcing all of the Java constructs from the previous unit. Students create a GeoQuest app that combines the camera feature from Unit 2, the geolocation feature from Lesson 3.2 and knowledge of polymorphism, lists, and strings. The app keeps track of a list of polymorphed quest items to find around campus; when a team member discovers a quest item, the user records it in the app with a geolocation tag and an image of the item. When all required items have been found, the quest is complete. Activity 3.3.1 Activity 3.3.2 Activity 3.3.3 Activity 3.3.4 Activity 3.3.5 Trip Cost and Rating (3 days) Polymorphic People (2 days) Persistent People (2 days) Polymorphic Behavior (3 days) Geo-Quest (5 days) Lesson 3.4 App Analysis The goal of this lesson is to explore nuances of the Java language, especially those that occur during computational algorithms. Students will analyze the performance of various sorts and searches, perform statement execution counts, learn a simple rounding algorithm, experiment with operator precedence, witness integer overflow, and convert between the hexadecimal and decimal number systems. Activity 3.4.1 Activity 3.4.2 Activity 3.4.3 Investigating Sort (1 day) Investigating Search (1 day) Computations in Java (2 days) Unit 4: The LibGDX Game Development Framework The goal of Unit 4 is to give students an opportunity to practice and refine their understanding of Java techniques in the context of game development. LibGDX is a popular open source game development framework that is constantly growing due to the contributions of its active community members. An important part of this lesson is teaching students to access resources to help themselves utilize all the tools that are available to them. Students learn to incorporate media assets, and work with graphics and touch events. Students access and manipulate data in 2D data structures, and interpret code created using the MVC pattern before making significant modifications of their own. Finally, students create a unique app that incorporates elements like geolocation, communication with a database, and utilization of the camera, speakers, and microphone. The choice of app theme and topic are left to the student, though they should target a specific audience, and benefit their community in some way. Page 5

Students will need to find a "client" with whom they will communicate regularly about the progress of the project. This could be the manager of a GitHub repository, a community leader, or a local business owner. Students might also choose to develop a full-fledged game at this point in the course with their fellow students as the clients. The LibGDX Game Development Framework Lesson 4.1 Creating a New World Lesson 4.2 Graphic Adventure Game Lesson 4.3 Independent Projects Lesson 4.1 Creating a New World The goal of this lesson is to get students to understand the foundations of game development in LibGDX. The end product uses the touch screen to register user input. Students incorporate 2D graphic assets into the project, and manipulate 2D data structures. Activity 4.1.1 Activity 4.1.2 Activity 4.1.3 LibGDX Setup (1 day) Level Loading (2 days) Walls, Characters, and Doodads (5 days) Lesson 4.2 Graphic Adventure Game In this lesson, students transfer their knowledge to fix problems with existing source code and add entirely new features to an existing game. In order to meaningfully improve the existing code, students must use math and problem solving skills as well as Java and object oriented concepts covered previously in this course. Activity 4.2.1 Activity 4.2.2 Project 4.2.3 Code Overview (1 day) Erratic Movement (1 day) Game Improvement (5 days) Lesson 4.3 Independent Projects Before the start of this lesson, students may opt to investigate bonus activities that cover animation outside of LibGDX, and publish apps they develop. In this lesson students put into practice everything they've explored in the course thus far. Likely more than for any task they've taken on up to this point, this problem requires students to be effective teammates, collaborators, communicators, and developers. Students will be tasked with finding an authentic "client" for their work with whom regular communication is embedded in the Agile design process. This project may be a continuation of student work from Unit 2. Student projects should address authentic needs in their community, though the choice of problem is left to the individual students. Example projects might include a water conservation awareness app for clients living in the drought-riddled southwest, or a puzzle game for friends to play. Students might choose to make an app that allows students to register online for courses at their school, develop an educational game for younger students, or perhaps even build an interactive set of tutorials for this very course. The possibilities are limitless, but the time available is not. Students will need to practice expert time management skills in order to create successful apps. Problem 4.3.1 Make an App (20 days) Android is a trademark of Google Inc. All other marks are properties of their respective owners. Page 6