Programming Mobile Applications for Android Handheld Systems: Part 2

University of Maryland, College Park

This course introduces you to the design and implementation of Android applications for mobile devices. You will build upon concepts from the prior course, including handling notifications, using multimedia and graphics and incorporating touch and gestures into your apps.

If you're taking this course, you've already learned the basics in Part 1, have a basic background in Java and and are ready to focus on more advanced components:

  • notifying users about important events
  • handling concurrency
  • acquiring data over the network 
  • leveraging multimedia and graphics
  • incorporating touch and gestures
  • working with sensors
We'll work on a project together to help you apply these skills and, by the end of this course, you'll have the skills to create your own app! 

A Comprehensive Program for Android Developers

The Mobile Cloud Computing with Android Specialization is comprehensive program in which you will learn to create create complex, cloud-based Android applications, applying what you've learned through hands-on activities and a final project designed with industry partners.

"This is an excellent resource for any developer wishing to enter the growing mobile app industry. We’ve seen lots of great apps come out of this program."

   - Ankur Prasad, Amazon Appstore team

"The professors provided high-quality course materials and the forums and my fellow students were extremely helpful. To top it all off, being able to participate in the Capstone project and then voted into the top 30 apps was an absolutely amazing experience.  I have now achieved my goal of working as a professional Android developer primarily due to the skills I obtained in this specialization."

   - Daun Davids, program graduate

Join our growing community of over 600,000 learners and get started with Android app development today!


Objective 1: In this lesson I discuss how to handle concurrency with Threads, AsyncTask & Handlers. There is also a lecture explaining how to access and process data over the network.
  • Threads, AsyncTask & Handlers
  • Networking
  • Display Tweet Data: Students build an app that downloads and displays Tweet data. The app uses an AsyncTask for downloading data over the network.
Objective 2: In this lesson I discuss using User Notifications to interact with the user, listening for and responding to events using the BroadcastReceiver class. There is also a lecture dealing with using Alarms to run code at pre-scheduled times.
  • User Notifications
  • The BroadcastReceiver Class
  • Alarms
  • Tweet app: Students build an app that displays Twitter data. The app will use BroadcastReceivers and User Notifications to apprise the user of the app’s behavior and state.
Objective 3: In this lesson I present a number of technologies related to presenting and interacting with dynamic content. This includes graphics and animation, handling touch input from the user, and recording and playing multimedia.
  • Graphics & Animation
  • Multi-touch & Gestures
  • MultiMedia
  • Bubble Popper: Students write an application to display and animate bubbles on the device's screen. When users touch the screen where a bubble is displayed, the bubble pops. The app will also accept gesture input, allowing the user to change the direction and speed of the bubble, using a fling gesture.
Objective 4: In this lesson I go over the many sensors that now come standard on most mobile devices. I also provide a focused discussion of using sensors to capture location information and using maps to display that information. Finally, I discuss some options for storing structured data.
  • Sensors
  • Location & Maps
  • DataManagement
  • Place Badge Collector: Students build an application that uses location information to collect Badges for the places they visit.

Mini-project - DailySelfie: Students will build a complete app from scratch. This app will remind users to take a picture of themselves once a day. The app will collect and display the resulting set of photos.

Recommended Background

This course is created for students who already know how to program in Java, but are not expected to have studied mobile application development. This corresponds roughly to Sophomore- or Junior-level undergraduate students in a computer science related discipline or the equivalent.

If you don't already know Java, but have strong familiarity with other programming languages, you can improve your Java knowledge by taking one of the many Java tutorials and online courses available on the web.

As discussed above, this course assumes previous programming knowledge. It also assumes that you are willing to search for, read and learn from Android's developer documentation. This is both a necessary skill for success in the class, and, in our experience, a necessary skill for successful Android developers at all levels.

In short, this course is not designed for truly novice programmers. If your background is not appropriate for this class, consider first taking a less programming-intensive introduction to Android such as "Creative, Serious and Playful Science of Android Apps", by Lawrence Angrave of the University of Illinois and Urbana-Champaign.

Suggested Readings

There is no textbook for this course, but I strongly encourage students to explore the wide range of freely-available Android-related resources.

  • Keep up with changes and improvements in the Android ecosystem by reading the Android Developer's Blog.
  • Watch tutorials and other presentations from the Google I/O conference.
  • Instructors and learners share additional resources as the course progresses.

Course Format


Each lesson will consist of video presentations, logically divided roughly into 5-10 minute sections.

In-Video Questions

Throughout the lecture video there are ungraded "in-video" questions to help ensure that students are understanding the material.  The in-video questions are related to the current video section, and provide supplementary information, “Food For Thought” discussion, and "FLASHBACK" questions, which challenge the students to think about something we have discussed in a previous lesson.


Each week there is also a short quiz containing questions/tasks to help ensure that the students have understood that week's lectures.

Lab Exercises

Each week's videos will be accompanied by a lab exercise consisting of an assignment write-up, partially completed source code, and executable test cases. The students will run the test cases on their own computers to determine whether they've successfully completed the lab. For some labs, we will also require students to examine and grade the submissions of other students.

Each lesson covers multiple Android source code examples. I strongly encourage students to download all the examples and to consult them both while watching the lecture and afterwards. The source code is publicly available on github:


The course will also have a final mini-project, which asks learners to put together what they’ve learned into an application that is responsive and elegantly designed. 


What if I already passed the previous version of this course in 2014? Do I have to re-take this to qualify for the final project?

  • If you passed the 2014 version of this course with a Verified Certificate, you will be credited for completing Part 1 and Part 2. You do not have to retake these two courses.
  • However, if you did not pass, or did not earn a Verified Certificate, you should take Part 1 and Part 2.
  • If you have questions, please consult the Specializations Help Center or contact the Coursera support team.

What are the course objectives? Upon completing this course, students should be able to:

  • Use Android platform's organization, patterns and programming mechanisms effectively to develop their own Android applications.
  • Use development tools, such as those found in the Android Developer's Toolkit to efficiently create, understand, debug and optimize Android applications.
  • Name the key forces and constraints acting on handheld devices and know how to accommodate these when designing and building their own Android applications.
  • Know where to find additional sources of information to understand and solve Android-related problems.
  • What is the coolest thing I'll learn if I take this class?
  • How to write the software applications that you and half the world are running on your handheld devices.
  • What computer languages do I need to know?
  • Experience with Java should be enough. As mentioned in the Recommended Background Section, those who don't know Java, but have strong familiarity with other languages may want to take a Java tutorial prior to starting this course.
  • Can students take this course if they have no prior experience with Android programming or programming with Java?
  • This course assumes that students are comfortable programming in Java and have some experience programming Android apps. If you don't have any significant Java programming background, please look on the Internet for one of the many Java-related tutorials that are freely-available.
  • Can students use programming language, other than Java, for the course?
  • Not really. The main programming language for Android is Java.
  • Do I need to buy an Android device?
  • No. All the graded exercises will be done using the Android Emulator.
  • Will you use Eclipse or Android Studio in this course?
  • All of my videos use Eclipse. But now that Android Studio is out of beta release state, I encourage students to start using it.
  • Is it necessary to take all the courses in the Specialization sequence?
  • No. If you just want to take some of the courses in this sequence--or take them all in different order--you're certainly welcome to do so, and you'll still learn a lot. However, if you take all the courses in this sequence in the order presented you'll gain a deeper, end-to-end understanding of handheld systems, their applications and services, as well as their integration into the cloud.
  • How does this MOOC compare/contrast with courses at the University of Maryland? This MOOC is heavily based on courses I teach at UMD, called CMSC436, Programming Handheld Systems. The course lecture material is similar, but the quizzes, programming assignments, and level of feedback for the UMD courses are more challenging, given that we have about twice the amount of time to work on it. Also, as the UMD course has many fewer students, there's significantly more personalized guidance from the professor and TAs that can't (yet) be replicated via a MOOC. This is one reason why it's important for students to take on some of the  role of the Instructor. When we all work together, we all benefit.
  • When will the course material be made available each week?
  • All the course material (e.g., video lectures, quizzes, short essays, programming assignments, etc.), for each week will be made available at 12:00am eastern time (5am UTC/GMT). each Friday of the course.
  • What is the most effective way to learn material covered in the course?
  • I recommend watching the videos multiple times, looking for different levels of meaning in the diagrams and the examples. Likewise, I recommend reading outside sources of information. Naturally, participating in the online discussion forums (and ideally, a meetup group if one is available in your area) will help make the course material more engaging.
  • Which web browsers are recommended?
  • Coursera recommends using the Chrome and Firefox browsers. There's also a mobile app for Coursera MOOC, as well.
  • Is the course broadcast live? I live on the other side of the world from you!
  • No. Course lectures are videotaped. Students watch the lectures and do programming assignments and quizzes when it's convenient for them.
  • Where can students download the slides that are presented in the videos?
  • PDF versions of the slides will be available online as the videos are released.
  • What resources will I need for this class?
  • For this course, you'll need is an Internet connection, a computer on which to run free Android developer tools, and the time to read, write, and discuss.
  • What should I be reading to prepare for class?
  • There is no course textbook. If you want to get started early, dive into the Android Developer's Website
  • When I try to watch the videos before the class start, I get an error message.
  • You can preview some of the videos by pressing the "Preview Lectures" Button at the top of the course webpage
How do I qualify for the final capstone project? Has this requirement changed since the last offering?As before, you will need to pass all courses in the series with Verified Certificates in order to qualify. 
This time, however, we've simplified the criteria by making the programming assignments mandatory. We decided to do this because we felt the assignments were an important part of learning the material and students were confused by having multiple requirements. 
I remember this course used to be part of a larger course in 2014. Why was it split into two courses?Based on survey feedback, completion data and studies of other courses, we realized that having shorter courses gives our students more flexibility around their busy schedules.
Even though the courses have been split, the overall content remains the same, so we feel confident that we are not diluting the actual learning standards of our material.
If I passed the older version of the course, do I have to retake it to be a part of the Specialization?It depends: Did you earn a Verified Certificate with distinction in the last offering? If so, you do not have to retake this or the next course.
However, if you did not earn a Verified Certificate with distinction, you should retake this course. This includes:
  • Passing with an unverified Statement of Accomplishment
  • Passing normal (not distinction) with a Verified Certificate
Does this mean that the overall cost of the Specialization is greater now?Yes. Since there are more courses now, the overall cost is greater than before. However, we felt this was reasonable because the cost of earning the official certificate and capstone is still very affordable compared to many other university courses. Plus, if you just want to join and check out our course content, it's still free and available to everyone.
I still have questions about these changes. Who should I talk to?Please consult the Specializations Help Center or contact the Coursera support team.
  • 2 May 2016, 5 weeks
  • 28 March 2016, 4 weeks
  • 7 March 2016, 4 weeks
  • 25 November 2015, 4 weeks
  • 14 October 2015, 4 weeks
  • 2 September 2015, 4 weeks
  • 22 July 2015, 4 weeks
  • 17 June 2015, 4 weeks
  • 6 May 2015, 4 weeks
  • 25 March 2015, 4 weeks
  • 18 February 2015, 4 weeks
  • 26 September 2014, 4 weeks
  • 21 January 2014, 4 weeks
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb


No reviews yet. Want to be the first?

Register to leave a review

Included in selections:
Slide1 Разработка ПО для мобильных устройств
3 курс МИЭМ ВШЭ, 5 кредитов.
More on this topic:
Slide1 Programming Mobile Applications for Android Handheld Systems
Introduction to the design and implementation of applications for handheld systems...
Posa-mocca Pattern-Oriented Software Architectures: Programming Mobile Services for Android Handheld Systems
In this course--the second in a trans-institution sequence of MOOCs on Mobile...
Coursera_course_logo Programming Cloud Services for Android Handheld Systems
In this course----the third in a trans-institution sequence of MOOCs on Mobile...
Screen-shot-2015-05-19-at-9.40.26-pm Programming Mobile Applications for Android Handheld Systems: Part 1
This course introduces you to the design and implementation of Android applications...
Posa-mocca Programming Mobile Services for Android Handheld Systems: Concurrency
In this MOOC, we will learn how to apply patterns and frameworks to alleviate...
More from 'Engineering & Technology':
Regular_1800ce45-0511-4bf2-b353-6b3bab9a9b60 Exploring Everyday Chemistry
Explore the organic chemistry behind perfume, medicine, brewing and sport from...
Regular_d22081d0-28bc-4122-b492-f3dcef8f6c27 Introduction to Psychology: The Psychology of Personality
Explore the complex factors and influences that help shape our personality and...
Regular_56cb2a32-9702-4b78-b8af-43bdf0a0a21a Beneath the Blue: The Importance of Marine Sediments
Understand the importance of our planet's seafloor and get an introduction to...
Regular_29f57fb2-9098-4f9b-91f4-9c3504a2ac33 Engineering the Future: Creating the Amazing
Learn more about the fascinating world of engineering, and discover where an...
Regular_a010978b-2f41-4422-a3d9-d1c8b34f5c13 Antimicrobial Stewardship for the Gulf, Middle East and North Africa
Improve your knowledge of the spread of antimicrobial resistance in the Gulf...
More from 'Coursera':
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019