Programming for Android I


Programming for Android I teaches the fundamentals of programming in the Android Studio Development Environment using the Java language. Students will learn core Java concepts and language fundamentals as they apply to Android app development. Students will also learn debugging, version control, and object-oriented programming.
PRG 105 with a grade of C or higher.
Students will:

1. Create an Object-Oriented program using the Java programming language

2. Use the tools in the Android Studio for program development

3. Plan Object-Oriented programs using UML class diagrams

4. Practice advanced debugging techniques

5. Describe Agile Design Methodology

6. Demonstrate version control using online repositories

7. Implement programming structures (decision and looping) to solve business problems

8. Create detailed internal documentation of programs using comments

9. Use Android Studio to design user interfaces

10. Implement modular programming

I) Overview of the programming language and environment

A) Java is an interpreted language

B) Using the Integrated Development Environment

i) Installing the environment (mac or pc)

ii) Using the environment

II) Version control (Agile Project Management)

A) Using Git

B) Committing changes

C) Agile Project Management

III) Java language fundamentals

A) Basic Syntax

B) Comments

C) Objects

D) Variables

E) Primitives

F) Operators

G) Characters

H) Strings

IV) Program flow control

A) Looping

B) Decision statements

V) Data collection

A) Arrays

B) Parallel arrays

C) Vectors

VI) Java Methods

A) Creating methods

B) Passing parameters

VII) Object-oriented programming - classes

A) Class diagrams

B) Constructors

C) Private and public methods and parameters

D) Initializing variables

E) Objects

VIII) Object-oriented programming – inheritance

A) Extending a class

B) Inheritance

C) Polymorphism

IX) Object-oriented programming - encapsulation

A) Encapsulation

B) Stub

C) Black box

X) Final project

A) Device Provisioning

B) Interface design considerations (tablets vs. phone)