Engineering Maintainable Android Apps

This Specialization enables learners to successfully apply core Java programming languages features & software patterns needed to develop maintainable mobile apps comprised of core Android components, as well as fundamental Java I/O & persistence mechanisms.The Capstone project will integrate the material from throughout the Specialization to exercise and assess the ability of learners to create an interesting Android app by applying knowledge and skills learned in previous MOOCs, including Java programming features, Android Studio tools, Android Activity components, Material Design, f

Created by: Dr. Douglas C. Schmidt

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 84 / 100

icon
Course Description

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. Students will work on the appropriate automated unit quizzes, 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, and quizzes. 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.

icon
Instructor Details

placeholder

Douglas C. Schmidt is a Professor of Computer Science, Associate Chair of the Computer Science and Engineering program, and a Senior Researcher at the Institute for Software Integrated Systems, all at Vanderbilt University. He has also been the Chief Technology Officer for the Software Engineering Institute at Carnegie Mellon University, where he was responsible for directing the technical vision and strategic R&D investments. Dr. Schmidt has published 10 books and more than 500 technical papers on software-related topics, including patterns, optimization techniques, and empirical analyses of object-oriented frameworks and domain-specific modeling environments that facilitate the development of distributed real-time and embedded (DRE) middleware and mission-critical applications running over data networks and embedded system interconnects. Dr. Schmidt has also led the development of ACE, TAO, and CIAO for the past two decades. These technologies are pattern-oriented DRE middleware frameworks used successfully by thousands of companies and agencies worldwide in many domains, including national defense and security, datacom/telecom, financial services, medical engineering, and massively multiplayer online gaming.

icon
Reviews

4.2

40 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Emil D O A on 7-Jul-19

Thanks for the final video about how to film lectures!

By Sam H on 26-Jun-17

There is no evaluation in this class in the form of online unit tests, so essentially there is no evaluation of anything reflecting actual insight into the material (multiple choice quizzes don't). The material covered is general, hand wavy, and elementary to anyone who has been doing software engineering for 10 minutes.

By Lajos J on 21-Mar-17

Few content, bad quality, many mistakes in the material, no programming assignments, poor support.Definitely not worth the money.

By Molin Z on 30-Mar-17

personally speaking, the contents are not helpful. and the multiple-choice quizzes stuck me a lot.

By Sherif S on 31-May-17

it would have been better than this regarding to the material, i think it need some useful written material as well as the recorded ones, walk through are a little bit confusing, best luck

By sushrut on 27-Nov-17

Non optional programming assignments would be quite helpful to learn the curriculum throughly

so hard

By Amrish A J on 24-Dec-17

Helped me understand the security features of android. The examples were explained very well. Testing was covered to a good extent in this course.

By Dmytro N on 24-Dec-17

Great presentation of material. Not so much useful information on Android platform vulnerabilities.

By Ruben P F on 29-Aug-17

Great job & course! Getting deeper in core aspects of your App, just a little point : - Some credito/week more extra & practical exam about testing, with exercises to complete with all framework you explained.Thanks for your decication.

By Steve C on 5-Apr-17

I would advise anyone doing this specialization, to take the Java for Android first, then do the Engineering Maintainable Android apps, as its only in the Engineering Maintainable Android apps that there is an optional coursework to create and test a very simple app for the first time. All the other MOOCs optional courseworks start from very complex pre-existing app examples. I was able to complete these courseworks but I didnt really understand all the surrounding code that did a lot of important UI stuff, or the JUnit test. Its good to be forced to make a simple app and get used to JUnit from day 1. I did not take this route, but I wish I had.

By Alex M on 20-Mar-17

Good information on unit and Android testing.Also provide some info on security issues. Could do with more hands-on assignments and provide URLs to Android testing, security, and debugging/code analysis tools. May be expand to include overview of code analysis tools like lint