|Prerequisites||CS207 Advanced Programming|
|Contact||Lectures: 22 | Tutorials/Labs: 33
Assignments: 70 | Self study: 75
|Assessment||50% classwork, 50% written 2-hour examination|
|Resit||Resit is by a 2-hour examination.|
|Lecturer||Dr Mark Dunlop|
Students should gain a good understanding of the issues in developing for mobile environments, approaches to handling these issues and skills in developing for a widespread mobile platform.
On completion of the class, a student should:
- understand the special nature of mobile app development.
- understand and be able to develop graphical user interfaces for mobile apps.
- understand networking requirements/challenges for mobile app development and be able to understand and develop solutions.
- understand and be able to develop 2D and 3D graphics as appropriate for mobiles.
- have an awareness of research into advanced interaction techniques for mobiles.
Mobile Graphical User Interfaces (Application lifecycle, Event-based programming, defining flexible screen layouts, linking code with resources, Model-View-Controller design; permissions and app security); Data Storage on Mobile Devices (local databases, local files, settings); Networking (exemption safe threading, HTML access, data exchange standards, designing for highly unstable networks, synchronisation); Mobile 2D Graphics (screen graphical elements, graphical modelling with matrices, 2D standards, animation); Mobile 3D Graphics (Computer graphics 3D modelling and lighting, 3D standards); Linking to other phone services (sending texts and emails, showing maps); Sensors (typical range of sensors, location input, accelerometer input, approaches to handling sensor input, smoothing sensor data); Mobile Large Data Solutions (crowd sourcing and data sharing); Mobile Interaction Techniques (user experience vs usability, mobile interface guidelines, novel interaction approaches).
Transferable Skills and Cognitive Ability Learning Outcomes
- To strengthen a student’s programming ability in environments with large APIs.
- To strengthen a student’s programming ability in unstable situations.
- To build team-development skills.
- To build skills in working with a common mobile platform.
* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.