CE881: Mobile and Social Application Programming
In this course you will learn how to develop mobile / social applications for Android devices.
The module outline can be found here. Note that this is a very hands-on course, where the main aim is to maximise your potential as mobile and social application programmers using the Android platform. Assessment is via coursework only, though this does include a multi-choice progress test.
During the course we’ll study a range of apps. The course involves a two-hour lecture slot and a three-hour lab slot each week. Attendance at lectures and labs is mandatory.
The lectures will be rather informal and involve plenty of class discussion, plus short presentations from students taking the course.
The lecture notes and lab scripts for this course will be made available and further developed during the course. Extensive use will be made of external Android developer resources.
Week 16-19, 21-24: Monday 10:00-12:00 in TC2.8+TC2.9
Week 20: Monday 11:00-12:00 in EBS.2.66
- Lecture 1: Introduction (Apps and the Android platform)
- Lecture 2: Layouts
- Lecture 3: Lifecycle
- Lecture 4: Services, Menus, Dialogs and Fragments
- Lecture 5: Fragments and Sensors
- Lecture 6: Threads and Surface
- Lecture 7: Persistence, all about data
- Lecture 8: Networking and Publishing
Week 16: Thursday 16:00-18:00, CES Lab 6
Week 17-25: Tuesday 16:00-18:00, CES Lab 6
Be sure to work through the labs carefully, and to check that you understand the material.
You can use whatever IDE you want for the course, however the three proposed ones are:
1 progress test and 2 assignments. The main assignment is to produce an Android app; this is split into two parts to help ensure that you make steady progress. Assignment 1 is to design and describe a prototype of your app. Assignment 2 is to implement the complete app, write a report on it and make a presentation.
- Progress test (15%, week 20)
- Multi-choice test under exam conditions
- Assessment 1 (25%, wk 21): please download the assignment 1 by clicking here.
- App essentials programming based on lab scripts; to be submitted via FASer in week 21.
- Assessment 2 (60% in total), including:
- Complete app (40%)
- To be issued in week 21 and submitted via FASer in week 25
- Report (15%)
- No longer than 5 pages; to be issued in week 21 and submitted via FASer in week 25
- Presentation (5%)
- New product release conference. This will take place during the last lab (wk 25).
See timetable for progress test time and Online Coursework Submission (OCS) server for exact assignment deadline. Be sure to observe the submission deadlines: late work gets zero.
The recommended course text is:
- Programming Android: Java Programming for the New Generation of Mobile Devices, by Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura, Publisher: O’Reilly Media, July 2011
- Android Programming: The Big Nerd Ranch Guide (2nd Edition), by Bill Phillips, Chris Stewart, Brian Hardy and Kristin Marsicano
Students taking this course are assumed to be competent Java programmers. If not, please find some useful tutorials below:
- Java for Android, by Vanderbilt University, MOOC course
- Essentials of the Java Programming Language: A Hands-On Guide, by Monica Pawlan
- Java programs in the "Introduction to programming in Java" module at the Princeton University" (This one is highly recommended as the sample programs cover a wide use and are easy to understand )
- Course Supervisor: Jialin Liu,
- Graduate Laboratory Assistant: Dino Ratcliffe,