Engineering Maintainable Android Apps (Coursera)

Offered by Vanderbilt University,
Engineering Maintainable Android Apps (Coursera)

Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Students will work incrementally on a hands-on project that systematically adds pattern-oriented enhancements to the app they developed in MOOC #3, along with the appropriate automated unit tests, i.e., each week they will add new functional and unit testing capabilities to their app project, based on the material covered in the lecture videos. These lessons will demonstrate the benefits of good software engineering practices that are targeted at creating maintainable code for mobile apps.
There will be roughly 3-4 hours of student engagement time per week, including video lectures, quizzes, and programming assignments. The ordering of the modules within the course is designed to be flexible. In particular, students can watch the videos in whatever order suits their experience and needs, e.g., they may want to watch the unit testing videos prior to the software pattern videos if they prefer to learn about unit testing first.

Course 4 of 5 in the Android App Development Specialization.

Syllabus

WEEK 1
MOOC Overview
Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by-example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps.
Software Engineering & Testing I

WEEK 2
Software Engineering & Testing II

WEEK 3
Security & Sustainability I

WEEK 4
Security & Sustainability II
This module provides an introduction to Unit Testing using the Junit 4.0 Framework in Android, as well as an introduction to Testing Frameworks using the Robotium open-source test framework for writing graybox testing cases to automate the testing of multi-Activity Android apps.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Single Page Web Applications with AngularJS (Coursera) Coursera
Johns Hopkins University

Single Page Web Applications with AngularJS (Coursera)

Do you want to write powerful, maintainable, and testable front end applications faster and with less code? Then consider joining this course to gain skills in one of the most popular Single Page Application (SPA) frameworks today, AngularJS. Developed and backed by Google, AngularJS is a very marketable skill to acquire.

Jun 8th 2026
5-12 Weeks
Sistemas Digitales: De las puertas lógicas al procesador (Coursera) Coursera
Universitat Autònoma de Barcelona

Sistemas Digitales: De las puertas lógicas al procesador (Coursera)

En este curso aprenderemos los fundamentos del diseño de los circuitos digitales actuales, siguiendo una orientación eminentemente práctica. A diferencia de otros cursos más "clásicos" de Circuitos Digitales, nuestro interés se centrará más en el Sistema que en la Electrónica que lo sustenta. Este enfoque nos permitirá sentar las bases del diseño de Sistemas Digitales complejos.

Jun 8th 2026
5-12 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 8th 2026
4 Weeks
Agile Meets Design Thinking (Coursera) Coursera
University of Virginia

Agile Meets Design Thinking (Coursera)

Despite everyone's good intentions, hard work and solid ideas, too many projects end up creating unneeded, unusable, and unsellable products. But it doesn't have to be this way. Agile and design thinking offer a different--and effective--approach to product development, one that results in valuable solutions to meaningful problems. In this course, you’ll learn how to determine what's valuable to a user early in the process--to frontload value--by focusing your team on testable narratives about the user and creating a strong shared perspective.

Jun 8th 2026
4 Weeks
Materials Science: 10 Things Every Engineer Should Know (Coursera) Coursera
University of California, Davis

Materials Science: 10 Things Every Engineer Should Know (Coursera)

We explore “10 things” that range from the menu of materials available to engineers in their profession to the many mechanical and electrical properties of materials important to their use in various engineering fields. We also discuss the principles behind the manufacturing of those materials. By the end of the course, you will be able to: recognize the important aspects of the materials used in modern engineering applications; explain the underlying principle of materials science: “structure leads to properties,”; identify the role of thermally activated processes in many of these important “things” – as illustrated by the Arrhenius relationship; relate each of these topics to issues that have arisen (or potentially could arise) in your life and work.

Jun 8th 2026
5-12 Weeks
Cybersecurity and the Internet of Things (Coursera) Coursera
University System of Georgia

Cybersecurity and the Internet of Things (Coursera)

Welcome to “Cybersecurity and the Internet of Things”! This course is for you if you are curious about the most recent trends and activities in the internet capabilities and concerns about programmed devices. There are complexities and areas of necessary awareness when the industrial sector becomes connected to your home.

Jun 8th 2026
4 Weeks
Code Yourself! An Introduction to Programming (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

Code Yourself! An Introduction to Programming (Coursera)

Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.

Jun 8th 2026
5-12 Weeks
Exploring Light: Hands-on Activities and Strategies for Teachers (Coursera) Coursera
Exploratorium

Exploring Light: Hands-on Activities and Strategies for Teachers (Coursera)

This is an Exploratorium teacher professional development course taught by Teacher Institute staff, open to any science teacher (particularly middle or high school level) and science enthusiast. This is a hands-on workshop that explores topics and strategies teachers can use to help their students become active investigators of light.

Jun 14th 2026
4 Weeks
Hardware Security (Coursera) Coursera
University of Maryland, College Park

Hardware Security (Coursera)

In this course, we will study security and trust from the hardware perspective. Upon completing the course, students will understand the vulnerabilities in current digital system design flow and the physical attacks to these systems. They will learn that security starts from hardware design and be familiar with the tools and skills to build secure and trusted hardware.

Jun 8th 2026
5-12 Weeks
Introduction to CSS3 (Coursera) Coursera
University of Michigan

Introduction to CSS3 (Coursera)

The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.

Jun 8th 2026
4 Weeks
Software Processes and Agile Practices (Coursera) Coursera
University of Alberta

Software Processes and Agile Practices (Coursera)

This course delves into a variety of processes to structure software development. It also covers the foundations of core Agile practices, such as Extreme Programming and Scrum. Upon successful completion of this course, you will be able to: distinguish between different process models for organizing software production; gauge the applicability of process models for a software development project; apply the fundamentals of Agile software development and management practices.

Jun 8th 2026
4 Weeks