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.
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.