If you think smartphones are cool this might be a seminar/course for you.
We will focus on advances in smartphone technology, research and programming.
This class is a mix of a traditional seminar and more formal course;
and will
include paper reading (presentations and discussion by students),
learning to
program Android phones and group projects - the goal is to develop some
cool concepts, code up apps and release them on the market if possible
- taking your innovative ideas from concept to the android market in 10
weeks.
We will read the latest papers on this emerging field and program
phones to test out some of the ideas that emerge in the seminar.
This is an advanced/senior class therefore a high
degree of self-learning
is required and a strong set
of programming skills needed -- just to be very clear: you will have to
do a considerable amount of self-learning -- you will have to
debug your own Androd code. Having said that we want this class to be
informal, relaxed and most important fun more than anything.
prerequisite
The prerequiste for this class is CS23 (proficency in programming c and Java) and CS78 or CS58 or equivalent are required.
Prerequisites are stickly enforced. In order to keep the seminar small/manageable there will be no audits.
admin
Instructor: Andrew T. Campbell; campbell@cs.dartmouth.edu; office hours Tuesday 4-5 pm.
Android Fung-Fu Assistant: Xiaochao Yang; Xiaochao.Yang@dartmouth.edu; office/lab hours Thursday 4-6 pm
When: Tuesday and Thursday 2:00-3:50, x-hour Wed 4.15
Where: Life Sciences Center 105
future smartphone programming course for undergrads
For a number of
years I have been asked if I'm teaching a phone programming class. I
intend to develop this seminar into an undergraduate course on
smartphone programming and offer it next year. I plan to develop the
material for the undergraduate course taking as a starting point the
code and labs I'll develop this term.
book
Buy it online now.
grading
20% Presentation and class participation
70% Labs -- 10% per lab.
10% Demo or Die (10% if it works, 0% if not)
Lab submission.
Students should send a tarball of their
to Xiaochao.Yang@dartmouth.edu using labN-name.tar.gz (N is the
lab number, name is your family name). Labs are due 23.59 hours on the due date.
Late policy: no late policy. Just sumbit what you have done -- working
or none working code will be graded. Please note that the labs build on
each other so you'll have to resolve any incompleteness to do the next
lab.
Concession: each student has one free 48 hour pass for a late lab submisson.
You don't want to repeat all the details
in the paper because we've all read it and know the content. Here are
some tips for your presentation:
What's the problem addressed in the paper and why is it important?
What's the proposed solution and why is it novel in comparison to the related work?
Are the assumptions made by the authors reasonable, is the methodology OK?
What are the design tradeoffs?
Present one or two of the more important results
What are your ideas for improving the ideas in the paper?
A good presentation gets the essence of
the paper and stimulates a discussion on the above topics. This is not
a complete set of tips - I'm sure there are more.
Important: have a set of questions ready before your
presentation and ask the class those questions at suitable points
during your presentation: your job is to drive the discussion of the
ideas in the paper - the good, bad, and the ugly. Practice your talk.
Make sure you talk to the audience not the wall that the slides are
projected on.
Thomas J. Bao
Xiaoyi Che
Yuting Cheng
Jonathan H. Guinther
Vijay H. Kothari
David Y. Lam
Yangpai Liu
Rima Narayana Murthy
Kevin J. Niparko
Alexander C. Ott
Jiawei Ou
D. Parker Phinney
Chen Qin
Emma N. Smithayer
Kan Wu
Xiaochao Yang
Yilong Zhao
Collaborative learning: Note,
this is a collaborative learning experince so you can help each other
out with all the coding in this class -- just don't explicitly cut and
paste code between each other.
schedudule
Typically
Tuesday's will be for presentation of papers and Thursday's lectures.
We might use some x-hours too. Material breaks down under:
presentations, lectures, labs, tutorials, book reading and some
addition papers. Later we will include information of projects.
Important, you have to impress the class with your discover of new cool
apps in the "app store abyss" (which of the 500,000 apps do you like
this week). Also, you better come armed with some jokes; that will help
your grade ;-)
The book is very readable. You can use it as a reference -- such as we
are learning the UI this week, I'm going to read those sections, etc. -
or you can plough through the book as you go. I strongly recommend you
read the first two chapters now.
Book: Read Chapter 1 - Getting Started with Android Programming Lab 1: (ungraded complete by Tuesday)
Week 2: Tuesday 10, January
Presentation (Rima):A Survey of Mobile Phone Sensing,
Nicholas D. Lane, Emiliano Miluzzo, Hong Lu, Daniel Peebles, Tanzeem
Choudhury, Andrew T. Campbell, IEEE Communications Magazine, September,
2010.
How to Read a Paper, S. Keshav, ACM SIGCOMM Computer Communication Review, 2007
Tutorial: Hello Views Tutorial.
Note, some of the views are more complex and require a deeper
understanding of the environment. It is OK just to do the first three
views. The last three include material we haven't covered. But feel
free to see if you can get the code to work from the tutorial. It's
cool. Don't worry if you can't get it to run.
Book: Read Chapter 2 -- all of it if you can. And then read
Chapter 3 - Designing your UI using Views (read as much as you can --
but don't over do it).
Presentation (Kevin): MAUI: Making Smartphones Last Longer with Code Offload,
Eduardo Cuervo (Duke University), Aruna Balasubramanian (University of
Massachusetts, Amherst), Dae-ki Cho (University of California, Los
Angeles), Alec Wolman, Stefan Saroiu, Ranveer Chandra, Paramvir Bahl
(Microsoft Research), ACM MobiSys 2010.
Presentation (Vijay): Toward Trustworthy Mobile Sensing. Peter Gilbert, Landon P. Cox, Jaeyeon Jung, and David Wetherall. HotMobile 2010. Annapolis, MD, February 2010.
Presentation (David): Cells: A Virtual Mobile Smartphone Architecture,
Jeremy Andrus, Christoffer Dall, Alexander Van't Hof, Oren Laadan, and
Jason Nieh. ACM Symposium on Operating Systems Principles
(SOSP '11), 2011
Presentation (Emma): Activity Sensing in the Wild: A Field Trial of UbiFit Garden,
Sunny Consolvo , David W. McDonald , Tammy Toscos , Mike Chen , Jon E.
Froehlich , Beverly Harrison , Predrag Klasnja , Anthony LaMarca ,
Louis LeGrand , Ryan Libby , Ian Smith and James A. Landay, Conference
on Human Factors in Computing Systems, 2008.
Presentation (Kan): Can Your Smartphone Infer Your
Mood? Robert LiKamWa (Rice University), Yunxin Liu (Microsoft Research
Asia), Nicholas Lane (Microsoft Research Asia), Lin Zhong (Rice
University), PhoneSense 2011
Lab 7: The lecture slides serve as the write up: Putting it all together: MyRuns App + the Cloud (AppEngine)
Note, there will be two tutorials this weekend for lab 6 and la7.
Week 10:
*Demo or Die Day* Wednesday March 7 -- 3-6PM on the Green
Each student must demo a fully functioning MyRuns App
on an Android phone that works with the Cloud. You can't use any
solution code in your demo or code submission (due midnight on March 7
to Xiaochao). Demos will be on the Green -- we need satellites! Note: If it works you get 10%, if not 0%.