MAP524 - Mobile App Development - Android

Outline info
Semester
School
Last revision date 2017-05-29 00:33:44.722
Last review date 2017-07-17 00:15:49.074


Subject Title
Mobile App Development - Android

Subject Description
This course will familiarize the student with all aspects of planning, developing and testing mobile applications for the Android platform. It will emphasize the creation of applications using the Java programming language, as well as programming techniques for achieving effective interaction on mobile devices. Writing mobile applications that feature location-awareness, messaging, Wi-Fi network access and multimedia will be introduced. 

Credit Status
1 credit (3 units) 
Professional Option for CPA - Computer Programming and Analysis (Ontario College Advanced Diploma) 
Professional Option for CPD - Computer Programmer (Ontario College Diploma)

Learning Outcomes
Upon successful completion of this subject the student will be able to:

  • Efficiently use the Java programming language to create applications for Android
  • Effectively use the Android software development tools, frameworks, and documentation
  • Analyze and select the appropriate framework components in the creation of a software application
  • Apply best-practice software design principles to the creation of Android applications
  • Identify the requirements of an entry-level programming task, and create software that meets the requirements

Essential Employability Skills
Communicate clearly, concisely and correctly in the written, spoken and visual form that fulfils the purpose and meets the needs of the audience.

Respond to written, spoken, or visual messages in a manner that ensures effective communication.

Execute mathematical operations accurately.

Apply a systematic approach to solve problems.

Use a variety of thinking skills to anticipate and solve problems.

Locate, select, organize, and document information using appropriate technology and information systems.

Analyze, evaluate, and apply relevant information from a variety of sources.

Manage the use of time and other resources to complete projects.

Take responsibility for one's own actions, decisions, and consequences.

Cheating and Plagiarism
Each student should be aware of the College's policy regarding Cheating and Plagiarism. Seneca's Academic Policy will be strictly enforced.

To support academic honesty at Seneca College, all work submitted by students may be reviewed for authenticity and originality, utilizing software tools and third party services. Please visit the Academic Honesty site on http://library.senecacollege.ca for further information regarding cheating and plagiarism policies and procedures.

Discrimination/Harassment
All students and employees have the right to study and work in an environment that is free from discrimination and/or harassment. Language or activities that defeat this objective violate the College Policy on Discrimination/Harassment and shall not be tolerated. Information and assistance are available from the Student Conduct Office at student.conduct@senecacollege.ca.

Accommodation for Students with Disabilities
The College will provide reasonable accommodation to students with disabilities in order to promote academic success. If you require accommodation, contact the Counselling and Disabilities Services Office at ext. 22900 to initiate the process for documenting, assessing and implementing your individual accommodation needs.

Prerequisite(s)
JAC444 – Introduction to Java 

Topic Outline
Android Platform for Mobile Development
·         Outline the history of the Android operating system
·         Discuss the key features of current smartphone hardware
·         Describe geo-location in the context of Android-based smartphones
·         Explain how the Android operating system runs on different types of mobile devices
·         Explain the innovation of how databases can fit into a small device in the form of SQL Lite and content providers
 
Android Development Framework
·         Describe the software stack and how it applies to the Android stack
·         Explain a virtual machine in general terms and more specifically a Dalvik virtual machine
·         Describe software architecture and the components that make up the Android application architecture
·         List all the phases in the Android application lifecycle, and describe each one of them in a single phrase
 
Android Development Tools
·         Download and install the android software development kit (SDK)
·         Download and install the ADT plug-in for Eclipse
·         Use the SDK and Virtual Device Manager (VDM) on the command line
·         Use the Android PDA emulator and run a sample application on diverse smartphones and tablets
·         Use the Eclipse IDE to compile, package and reference resources using the asset packaging tool
·         Use the Eclipse IDE to run and debug applications using the android debug bridge
·         Use the Eclipse IDE to monitor applications running on diverse devices (i.e. emulators) using the Dalvik Debug Monitoring Service
 
Creating Applications and Activities
·         Describe the application architecture and identify the manifest and its components
·         Edit files in Eclipse from a "raw view" editor, or using the Manifest Editor
·         Explain how the file and folder structure of an Android project stores diverse types of resources
·         Find the section where resources are located and add/change/delete resources
·         Define simple values such as strings, colors, dimensions, and numbers and store as resources
·         Define styles and themes and store as resources
·         Define drawables such as layouts, animations and menus and store as resources
·         Explain how resources are directly managed and used by Java code in an android application
·         Explain how resources can be created for specific languages, locations and hardware configurations
·         Describe the Android Application Lifecycle
·         Describe an application's priority and its process' states
·         Explain the Android application class
·         Extend and use the application class
·         Create an activity
·         Describe the activity lifecycle: stacks and states
·         Monitor state changes in an applicaton
·         Explain activity lifetimes
 
Layouts
·         Explain the fundamentals of Android user interface design
·         Assign user interfaces to activities
·         Describe a layout
·         Embed one or more views in a layout
·         Create device-independent user interfaces
·         Code and use a linear layout
·         Code and use a relative layout
·         Optimize layouts
·         Describe all the widgets available in the Android widget toolbox
·         Code all the widgets available on the Android widget toolbox
·         Program scalable graphics assets
·         Describe the Android menu system
·         Code a menu item
·         Specify an action bar action
·         Program menu item options
·         Add action views and action providers
·         Discuss the notion of embedding views on layouts and what this means to the design of an application
·         Program adapters and array adapters
 
Communication
·         Customize the array adapter
·         Describe what an intent is and how to code it in Java
·         Start activities, sub-activities and services using implicit and explicit intents
·         Explain what linkify is and how to use it
·         Explain what a broadcast event is
·         Program intent filters
·         Explain what a broadcast receiver is and how to program it
·         Program broadcast intents
·         Monitor device state changes
 
Connecting to Databases and Content Providers
·         Create a database using SQLite
·         Use content providers, cursors, and content values to store, share, and consume application data
·         Program asynchronous queries to content providers using cursor loaders
·         Add search capabilities to an Android application
 
Working with Concurrency
·         Create, start, and stop background services
·         Bind services to activities
·         Create ongoing foreground services
·         Extend the intent service
·         Describe how asynchronous tasks are used to manage background processing
·         Create background threads and handlers and synchronize them with the GUI thread
·         Use alarms to schedule application events
 
Digital Media
·         Explain how to play audio and video using the media player
·         Explain how to handle audio focus and media button presses
·         Use the remote control client
·         Apply audio and video effects
·         Record audio and video using the media recorder
·         Record video and take pictures using intents
·         Pre-view recorded video and display live camera streams
·         Take pictures and control the camera
·         Manipulate raw audio
·         Use face and feature recognition

Mode of Instruction
Online
This course is offered online.  This may involve the use of digital materials and/or a text, group discussions, interaction with your instructor and online activities.

Distant Learning students please refer to addendum. 

It is the student's responsibility to save documents, articles and notes that the instructor has provided online or in class. Students will not be able to access anything posted as of the last day of the student’s class.
Platform - Desire2Learn

Prescribed Texts
Android 6 for Programmers: An App-Driven Approach
Author: Deitel
Publisher: Pearson
Edition: 3rd 
ISBN#: 9780134289366

Promotion Policy

Grading Policy
A+ 90%  to  100%
A 80%  to  89%
B+ 75%  to  79%
B 70%  to  74%
C+ 65%  to  69%
C 60%  to  64%
D+ 55%  to  59%
D 50%  to  54%
F 0%    to  49% (Not a Pass)
OR
EXC Excellent
SAT Satisfactory
UNSAT Unsatisfactory

For further information, see a copy of the Academic Policy, available online (http://www.senecacollege.ca/academic-policy) or at Seneca's Registrar's Offices.


Modes of Evaluation
In order to successfully complete this course, the student is required to meet the following evaluation criteria:
 

Discussions 10%,
Assignments 40%
Online Tests 20%
Project 30%

 The passing grade for this course is 55%.

Approved by: Sharon Estok