cmsc 628: introduction to mobile computing · • design ui elements using xml (android) and xaml...

15
1 CMSC 628: Introduction to Mobile Computing Nilanjan Banerjee Introduction to Mobile Computing University of Maryland Baltimore County [email protected] http://www.csee.umbc.edu/~nilanb/teaching/628/

Upload: others

Post on 08-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

1

CMSC 628: Introduction to Mobile Computing

Nilanjan Banerjee

Introduction to Mobile Computing

University of Maryland

Baltimore County [email protected]

http://www.csee.umbc.edu/~nilanb/teaching/628/

Page 2: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

2

Why do I need to learn mobile phone programming?

“The number of mobile phones sold in 2008 reaches 1.28 billion, a growth of 11% in 2008”

--- Marketing charts

“Smartphone penetration is now 19% with 45 million total smartphones now active in the US”

--- ComScore

What will drive our research in mobile computing over the next decade? One force is the emergence of mobile devices as rich sensors. The other force is the convergence of mobile computing and cloud computing.

--- Mahadev Satyanarayanan

Page 3: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

3

What does mobile phone programming encapsulate?

User-interface design

Operating system design

programming languages networking

cloud computing

Page 4: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

4

Why is it difficult to develop good mobile apps.

•  Computational power •  Usually < 1 GHz processors •  Soln: use the cloud?

•  Limited memory •  128 MB of RAM in most cases (half of it is the OS)

•  Battery constraint •  Limited battery is always a constraint •  Cannot build apps which kill your battery

•  Too many options •  Accelerometer, GPS, compass, WiFi, Bluetooth, 3G….

Page 5: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

5

What are the potential applications… endless…

Page 6: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

6

Ok! Tell me what the course contents are

•  Primer to the Android platform and Windows Phone 8 •  basics of C# (will not cover Java basics) and platforms

•  User interfaces •  design UI elements using xml (Android) and xaml (WP8) •  event driven programming (listeners and delegates)

•  Programming sensors •  accelerometers, compass, GPS

•  Networking •  radios, sockets, and http data transfer

•  Localization •  map services

•  Storage •  local storage and sqllite

•  Cloud services •  Hawaii cloud services and Google services •  Introduction to game design

Page 7: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

7

Is this course for me?

•  Should have knowledge of object-oriented programming.. •  I will go through C# basics but not OOP concepts

•  Should have working knowledge of networking and operating system concepts •  I will not talk about what a Wi-Fi radio is? Or what a file

system is?

•  This is not a book-oriented course. Your creativity will be tested in the assignments, class discussions, and final projects. If you here for the grades alone … this is not a class for you

Page 8: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

8

How will I be graded?

•  Assignments in groups of two (4-5 total) (35 points) •  Different semantics for evaluation

•  Take home (no collaboration) midterm (20 points) •  Testing design skills and mobile programming skills

•  Final project groups of 2 (35 points) •  Hopefully we will have a poster/demo session

•  In class discussions (10 points) •  Trivia related to programming, problem solving, coding

mini applications

Page 9: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

9

Assignments

•  Two or Three assignments on design problems •  Involve coding for the Android or the Windows Phone 7

•  Groups of two solving the assignments •  You can do it alone also if you are interested…

•  Grading •  Source code (7 points) •  Video --- every group will make a video of their

assignment and upload it on youtube. (3 points) •  I will share the video and everyone in the class votes on

it (best video gets an extra 5 points on the assignment)

Page 10: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

10

Midterm

•  Take home midterm •  24 hours to solve the problems

•  Design and coding problems •  No collaboration allowed

•  Grading •  20 points towards final grade

Page 11: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

11

Group Project

•  Needs to be an interesting idea •  Game, social app, home automation, whatever you

want..

•  Come and talk to me if you need ideas. •  Come and talk to me if you already have an idea •  The idea should be practical… cant build an application

that controls the MARS rover…

•  Working demo by the end of the semester •  Poster/demo session at the end of class •  Showcase your apps to people in the university •  Lets see a couple of demos from last semester’s class

Lets  take  a  few  examples  

Page 12: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

12

Lecturing style

Demo-oriented Lecturing bring your laptops and mobile phones

Discussions on coding trivia, puzzles post what you learn on piazza

Once we have learnt the concepts we will read a couple of cool application oriented papers (time permitting)

Page 13: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

Resources you will need

13

•  Eclipse SDK with Android plugin and SDK •  Instructions on the webpage

•  Visual Studio Express for Windows Mobile 8 •  Instructions on the webpage •  Hawaii cloud computing SDK

•  Mobile Phones •  Windows Phone 8 ( I will provide) •  Android phones or tablets •  Server and database resources (I may provide)

Page 14: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

14

Administrivia…

•  Course webpage and reading list •  www.csee.umbc.edu/~nilanb/teaching/628/ •  My email id: [email protected] •  Discussion Group

•  Piazza (will send invites tomorrow) •  Class hours: 10:00 --- 11:15 (Tue, Thurs) •  Office hours: 3:00 – 4:00 (Tue) , 2:00 – 3:00 (Thu)

•  TA : Amol Deshpande •  Office hours: TBD.

•  Videos of last semester’s projects online on the course page(at least a subset of them)

•  Come and talk to me if you •  To discuss project ideas •  Group formation and other semantics

Page 15: CMSC 628: Introduction to Mobile Computing · • design UI elements using xml (Android) and xaml (WP8) • event driven programming (listeners and delegates) • Programming sensors

15

Next class and todolist

•  Start on a primer of the Android platform

•  Form the groups and send me an email with the names of the people in the group •  You will get phones as soon as you have formed groups.

•  Set up eclipse with the android SDK and plugin

•  Set up Windows Phone 8 IDE