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;
include paper reading (presentations and discussion by students),
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
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.
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.
Instructor: Andrew T. Campbell; firstname.lastname@example.org; 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.
Buy it online now.
20% Presentation and class participation
70% Labs -- 10% per lab.
10% Demo or Die (10% if it works, 0% if not)
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
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
Thomas J. Bao
Jonathan H. Guinther
Vijay H. Kothari
David Y. Lam
Rima Narayana Murthy
Kevin J. Niparko
Alexander C. Ott
D. Parker Phinney
Emma N. Smithayer
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.
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.
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 (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.
*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%.