Fall 2006
JMU CS685 - Secure Mobile Applications
Help Policies Solutions Study-Aids Tools
Syllabus


Description: This course considers both theoretical and practical aspects of designing secure "mobile software" (i.e., software that executes on mobile devices). In particular it considers how object-oriented techniques can be used to design and implement secure mobile software. Unlike a traditional course on mobile computing, it is not concerned with either the design of mobile hardware or the design of networking/communications protocols. Instead, it is concerned with issues that arise when designing and implementing application-layer software for mobile computing devices.
Textbook: There is no textbook for this course. Instead, you will read, and we will discuss, a variety of different papers throughout the semester. Some of the papers will be good, and some will not. You will be expected to read each paper critically and come to your own conclusions about each paper's quality.
Outline: This course is organized as follows, though specific topics and dates may change. (Readings are listed in the right-most column.)
Part I: Introduction
8/29 Course Overview
8/31 How Good Were the Predictions? 1.1 and 1.2
9/5 What is a Mobile Computing Device? 2.1 , 2.2 , 2.3 , 2.4 and 2.5
9/7 Development Environments and Platforms I 3.1 , 3.2 , 3.3 and 3.4
9/12 Development Environments and Platforms II 4.1 and 4.2
Part II: Isolated Applications
9/14-9/19 User Interfaces 5.1 , 5.2 and 5.3
9/21 Designing a User Interface Architecture
9/26-9/28 Multi-Threaded Applications 6.1
10/3 Designing a Threading Architecture
10/5-10/10 Obfuscation, Efficiency and Performance 7.1 , 7.2 , 7.3 and 7.4
10/12 Mid-Term Exam
Part III: Applications that Access the Device
10/17-10/19 Security Architectures 8.1 , 8.2 and 8.3
10/24 Record Management Systems and Personal Information Managers 9.1 , 9.2 , 9.3 , 10.1 and 10.2
10/26 Persistant Object Stores 11.1 , 11.2 , 11.3 and 11.4
10/31 Security Issues 12.1 and 12.2
Part IV: Interacting Applications (on Different Devices)
11/2 Connection Framework and Short Message Service 12.1 , 12.2 and 13.1
11/7-11/9 Device Discovery 14.1 , 14.2 , 14.3 , 14.4 and 14.5
11/14-11/16 Messaging/Communications 15.1 , 15.2 , 15.3 , 15.4 and 15.5
11/21 No Class - Thanksgiving Break
Part V: Project Presentations
11/28-12/7

Attendance at lectures is not mandatory but is strongly encouraged. You are expected to come to class prepared to ask and answer questions. Hence, you should complete the readings on a topic before it is discussed in lecture.

Grading: Final grades will be based on your performance on: 1 mid-term exam (35% each) , 1 final exam [during the exam period] (35% total) , several programming assignments (10% total) and 1 final project (20% total).
Programming Assignments: 3 programming assignments will be assigned during the semester. Note that their due dates are subject to change.
Programming Assignment 1 ; Due: 9/28 (A User Interface Architecture)
Programming Assignment 2 ; Due: 10/10 (A Threading Architecture)
Programming Assignment 3 ; Due: 11/2 (Device Access)

Make sure you read and understand all of the policies related to programming assignments.

Final Project: Each student must complete a project. All project proposals are due on 11/7. All project materials are due on 11/28 (even if your presentation is scheduled for a different date) . Make sure you read and understand all of the policies related to projects.
Office Hours: You may meet with Prof. Bernstein during his scheduled office hours or you may schedule an appointment with him.

Copyright 2019