MPCS 51031 Android App Development (Spring 2018)

Section 1
Instructor(s) Gerber, Adam (gerber)
Location Ryerson 277
Meeting Times Thursday 5:30pm - 8:30pm


Course Description

After a quick introduction to mobile computing, competing platforms, Android architecture, market projections, and social and economic implications, we will dive directly into developing Android apps. Alternating between theory and practice, and progressing cumulatively, will will cover many of the features of the Android platform, including; activities, intents, fragments, mapping/Geo-positioning, JSON, persistence, and threads, among others. For a more detailed description of the course, please see the official course website:


Course Contents

Students will be required to read the textbook, view course videos, follow along during lectures and lab in class, and do four projects outside of class. The content of the projects will mirror the content of the lectures, labs, and textbook material. We will be using Android Studio, which is a collaboration between JetBrains (maker of IntelliJ) and Google. Android Studio will soon be the official IDE for Android development, and it is an outstanding, feature-rich, and extremely forgiving IDE available on all major platforms.  

The following are the topics we will cover in this course:

    Setting up your development environment

    Java SDK

    Android Studio installation and tour

    Git and SourceTree

    Setitng up Bitbucket and projects

    Cloning labs

    Course registration

    The Android Computing Platform and Architecture

    Understanding Android Resources


    Model-View-Controller in Android

    Activity Lifecycle

    Dubugging tools


    Version compatibility



    Layouts and Views



    Fragment arguments




    File i/o


    Context Menus

    Contextual Action Mode





Projects descriptions and due dates:

    proClassicsQuiz: due 3rd week, a simple application that tests the user on his Latin and Greek vocabulary. Uses viewPager and configuration changes

    proTodos: due 5th week, an app that is persisted to a sqlite database, also uses listView extensively.

    proCurrency: due 7th week, an app that uses concurrency and web-services

    proFavRestos: (final project) due 10th week, an app that integrates all that we've learned throughout the quarter. This app allows the user to find their favorite restaurants and integrates with the Yelp api.


Course grade

The final grade is determined as:

    proClassicsQuiz 13%

    proTodos 13%

    proCurrency 13%

    proFavRestos 31%

    midterm exam 20%

    class participation -- including team presentation 10%  

Projects evaluation criteria:

    40% does the software work according to the specification—or as expected

    20% performance and exceptions; are your algorithms elegant/efficient with respect to threads and resources, or clumsy/wasteful. Does the software

    handle exceptions.

    20% code style; naming variables, formatting, ease of reading, well-documented.

    20% UI style; is the UI well designed and intuitive

The midterm exam (multiple choice) is 20% of final grade, 60 minutes in duration.


Course Textbook

"Android Programming: The Big Nerd Ranch Guide" by Phillips and Hardy. ISBN: 0321804333

Course Prerequisites

Core Programming, some knowledge of Java preferred.

Other Prerequisites

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 55001-1 -- Algorithms