Instructor

Yan Chen, Professor
Tech L459, 491-4946. ychen@northwestern.edu

Location and Time

Lectures: Mon and Wed 1:00-2:20pm, Tech M345.

Course Description

We have entered the post-PC era -- the mobile devices have become the dominating computing platform.  In this course, we will study the emerging mobile apps and systems.  We will first focus on the system framework and app programming for the two most popular smartphone systems: Android and iOS.   Then we study other important aspects of mobile computing, such as mobile advertisement, mobile networking/system performance profiling and prediction, security and privacy issues, enterprise mobility management systems (EMM), etc.  This course is intended for both CS and CE undergraduates and graduate students.  During the course, we will study and discuss online tutorials, industry white papers and research papers for these topics.  Students will work on a quarter-long group-based projects on mobile apps and systems.  There will be no exams. Students are encouraged to take 399/499 courses with me, and use the same project for 399/499 and this course.  This course is counted for the project requirement, and the depth areas of system and security.

Course Prerequisites

  • Required: EECS 343 or any equivalent computer system courses.
  • Highly recommended: EECS system courses such as 340 and 354.

Grading

No exams for this class.

  • Class participation and exercises/homework 15%
  • In class presentation 30%
  • Project 55%
    1. Proposal and survey 5%
    2. Midterm presentation and report 10%
    3. Weekly report and meeting 10%
    4. Final presentation 15%
    5. Final report 15%

Class Presentation

There is no required textbook. All reading will be from papers. Whenever possible, handouts and papers will be placed online on the web page. A schedule of assigned readings is available online.

Given the grand new area of mobile computing, this class will heavily depends on students to prepare the lecture materials and deliver the lecture.  For each lecture, there will be a team of three to four students.   The team search on the Internet for the best and most suitable materials, and prepare a lecture.  The instructor will give some suggestions on the materials.   The students will give a list of best references found, and deliver the lecture. The lecture must include a slide presentation, with demo and video clip as optional.   For demo and video clip, make sure you understand it thoroughly.   Pause the video from time to time and ask questions to the audience.   If you choose a video clip from youtube, a tip is to select those with large number of views (e.g., >10,000) and suitable as introductory materials.

To enable live discussion with the students, the presenters must prepare some questions or problems, which will be given as an exercise at the end of class or as homework.  For the former, it should be answered within about 10 minutes given good understanding of the materials taught in the class, and we will reserve the last 5-10 minute of the class for such exercise.  The homework is usually due before the next class. The lectuers will share the solution after the exercise, but they don't need to grade them.

The lectures are of critical importance for this class.  Thus we want the students send the following materials to me at least 48 hours before the class:

1. references to be listed online
2. slides, demo/video
3. exercise/homework

On the other hand, each student only need to present once, so we expect you will do a great job, for the benefits of everyone in the class.

Projects

Projects (done in groups of size 3-4) are a critical component of this course. Your goal is to design, build and evaluate interesting systems that address issues, solve problems and exploit techniques from classroom discussions and readings.

Projects must be written up in a term paper and teams will present their results at the end of the course in a mini-conference and write up a report. The list of potential ideas for projects will be posted soon. Feel free to use one, propose something completely different, or refine one of these into your own idea.

Project Deliverables and Deadlines (all due at 11:59pm of the due date)

Proposal -- April 10: 3-4 pages describing the purpose of the project, work to be done and potential load distribution, expected outcome/results, etc. Make sure to describe the context and related work for the proposed project.

Weekly Meeting and Progress Report -- April 13 - May 27: Each team will schedule a weekly meeting (30 minutes) with the instructors. Send us the updated report and highlight the new updated part (except the May 5 week). For each week, we expect updates of 1-2 pages on the project status, initial results, and problems encountered, etc. The report is due 24 hours ahead of the meeting. Please send it to your mentor and the instructor.

Midterm presentation -- May 4 and May 6: Presentation of your project in progress to the class (20 minutes each group).

Project Presentation -- June 1 and June 3: The final project presentation should have the following content: 1) briefly state the goal of the project; 2) present the algorithms and results; 3) any remaining work to be finished by the final project report; 4) work division among the group.  The presentation is expected to be 30 minute each, including Q&A.

Final Report -- June 10: The final report is a workshop-level paper describing your work, evaluation, related research, potential avenues to explore, etc. You should incorporate the comments received during the presentation.  At the end of report, there should be an appendix of README which describes 1) where the code is; and 2) how to run the code (including the library and environment needed).

Policies

  • Late policy:
    Since there are many small handin (e.g., paper summary, work-in-progress report) for this course, we do not accept late submissions.
  • Work division:
    I will try to group undergrad and grad students together. While more work is certainly expected for the grad students, undergraduate students should also be responsible for significant portion of the project and each undergrad in the team should do similar amount of work. At the end of the quarter, we will ask each one to submit a brief description on work division of his/her team.