This MOOC teaches you how to program core features and classes from the Java programming language that are used in Android, which is the dominant platform for developing and deploying mobile device apps.
In particular, this MOOC covers key Java programming language features that control the flow of execution through an app (such as Java’s various looping constructs and conditional statements), enable access to structured data (such as Java's built-in arrays and common classes in the Java Collections Framework, such as ArrayList and HashMap), group related operations and data into classes and interfaces (such as Java's primitive and user-defined types, fields, methods, generic parameters, and exceptions), customize the behavior of existing classes via inheritance and polymorphism (such as subclassing and overriding virtual methods). Learners will apply these Java features in the context of core Android components (such as Activities and basic UI elements) by applying common tools (such as Android Studio) needed to develop Java programs and useful Android apps.
Learners will work on several hands-on projects throughout the MOOC, i.e., each week will require learners to write solutions to programming assignments that reinforce the material covered in the lecture videos. There will be roughly 4-6 hours of student engagement time per week, including video lectures, quizzes, and programming assignments.
Module 1: MOOC Overview
Module 1 summarizes the organization of the MOOC and the topics it covers. It also discusses the MOOC prerequisites, workload, and learning strategies needed to complete the MOOC successfully. It then presents an overview of key features in the Java language, outlining its support for object-oriented programming concepts that guide the development of Android apps.
Module 2: Introduction to Android Studio
Module 2 provides an overview of Android Studio, explaining how to install it and apply it to develop a simple app using basic Java and Android features presented in this MOOC.
Module 3: Writing a Simple Android App Using Basic Java Features
Module 3 shows how to write a simple Android app that defines variables using primitive Java data types, shows how to assign values to those variables, and output them to the Android display using Java classes and methods.
Module 4: Control Flow
Module 4 covers Java’s looping constructs (e.g., for loops, while loops, and do/while loops), as well as its conditional statements (e.g., if/else statements).
Module 5: Structured Data
Module 5 provides more detail on common data structures supported by Java, including built-in arrays, as well as core classes in the Java Collections Framework, such as ArrayList and HashMap.
Module 6: Classes and Interfaces
Module 6 covers Java classes and interfaces, focusing on data types, fields, methods, generic parameters, and exceptions.
ModuIe 7: Inheritance and Polymorphism
Module 7 examines Java's inheritance and polymorphism features (e.g., extending classes and virtual methods).
Module 8 guides learners through the creation of an Android app that implements a simple calculator, which provides features for adding, subtracting, multiplying, and dividing numbers input by various means (e.g., via numbers and buttons on the Android user interface).
C. White, Julie L. Johnson, Michael Walker, Jerry Roth and Douglas Schmidt