CSCI 4211/5211: Mobile Computing and Programming

Department of Computer Science and Engineering

College of Engineering and Applied Sciences

University of Colorado Denver

Course Syllabus



Instructor:         Dr. Tam Vu                                       Term:                             Fall, 2016

Office:              Lawrence Street, Room 816              Class Meeting Days:       Friday

Phone:             303-315-0050                                    Class Meeting Hours:     9:30pm - 12:30pm

E-Mail:                          Class Location:              CU Building 1000

Office Hours:    Friday, 12:30pm-3:30pm                 TA's email:

Instructor Website:




Course Overview:

I.       Welcome to Mobile Computing and Programming. This course contains two main simultaneous tracks, namely mobile computing and mobile programming. A series of lectures on various aspects of mobile computing provides an understanding of challenges and solutions in design and implementing mobile systems. The main topics include mobile sensing, human mobility and its technical implications, localization and positioning techniques, energy management, and mobile security and privacy. To illustrate these concepts and relate them to practice, a series of lectures, tutorials, and labs on mobile application programming is provided. The course will cover the fundamental programming principles, software architecture, and user experience considerations underlying handheld software applications and their development environments. Students will gain hands-on experience through implementing applications in the Android Platform through in-class tutorials, assignments, and final project. 

II.       University Course Catalog Description: This course will focus on mobile computing concepts such as mobile sensing, human mobility, localization and positioning, security and privacy, etc., and mobile system programming including mobile platforms, application fundamentals, user interfaces, multimedia, input/output, and sensing management, to mention a few.

III.       Course Goals and Learning Objectives: It is the goal of this course that at the completion of the semester students would have gained the following knowledge:

The learning objectives of this course are:


IV.       Course Prerequisites: It is expected that at the beginning of this course students have knowledge of CSCI 3453 Operating Systems course and CSCI 4761 Introduction to Computer Networks course or equivalence. The student should understand general mechanisms by which computer platforms are structured and operated; and how such individual computers communicate with each other.

V.       ABET Assessment Criteria: This course is designed to address ABET Assessment Criteria c and d. Criteria c is an ability to design and conduct software and/or hardware experiments, as well as an ability to analyze and interpret data. Criteria d is an ability to design software to meet desired needs.  These Criteria will be addressed in a Mobile Systems context.  ABET Assessment Criteria c and d both map to Program Educational Objectives 1 and 4.  Program Educational Objective 1 is to "Produce graduates who are successful professionals in computer science and engineering".  Program Educational Objective 4 is to "Involve students in software design and projects".

VI.       Course Credits: This course has three (3) credits associated with it.

VII.       Required Texts and Materials: There is no textbook for this course. I will post related materials including lecture presentations, research articles on Canvas. In addition, I highly recommend students to utilize the wide range of freely available Android-related material and resource online. Here are the two common sources:

a.     Keep up with changes and improvements in the Android ecosystem by reading the Android Developer's Blog.

b.     Watch tutorials and other presentations from the Google I/O conference.

VIII.       Schedule




Introduction and Logistics

2 + 3

Mobile UIUX and Notifications

4 + 5

Authentication, Sign Up, and Server Management

6 + 7

Camera and Image Processing +

Sound and Acoustic Signal Processing



9 +10

IMU +  Signal Processing

11 + 12

Location + Location Service + Location Privacy


Energy Management


Mobile Communication + Visible Light Communication


App Analytics and Rewarding Systems


Final Project Submission and Demo + Final Exam




I.       Course Grade: Course grades are a weighted average of the grades earned on all graded material.  The weights for the different categories are:

+       Assignments:   50%

+       Attendance and class participation .   10%

+       Final project (application demo and report) ..    10%

+       Midterm     15%

+       Final:     15%

Letter Grades are as follows:

+       94% - 100% ......  A

+       90% - 93.9%...... A-

+       87% - 89.9%...... B+

+       84% - 86.9% .....  B

+       80% - 83.9%...... B-

+       77% - 79.9%...... C+

+       74% - 76.9% .....  C

+       70% - 73.9%...... C-

+       67% - 69.9%...... D+

+       64% - 66.9% .....  D

+       60% - 63.9%...... D-

+       00% - 59.9% .....  F


II.       Programming Assignments: The Programming Assignments will be in Java. The grading of the Programming Assignments is a combination of completeness (all specifications are covered), correctness of results, and style.  All programming assignments are due at the beginning of class on the due date.  Submissions will be made via Canvas.  I do not allow late work to be submitted unless there is prior written approval by me based on special circumstances. If your work is not on Canvas, it will not be graded.

III.       Exams: There will be two exams, one midterm and one final. Exams are open note, open book, no computer.  

IV.       Grade Dissemination: I will be utilizing the Canvas system to record your grades.  You can check on Canvas for all of your current grades.


Course Procedures:

I.       Attendance: Attendance is required for this course.  As with all science courses, you will have easier time learning the material if you attend the lectures and participate in class.

II.       Late Work Policy: All programming assignments and homework are due at the beginning of class on the due date.  Submissions will be made via Canvas.  I do not allow late work to be submitted unless there is prior approval by me based on special circumstances.  Makeup exams and quizzes are not normally given; in special circumstances, arrangements should be made prior to the exam date if at all possible.

III.       Grades of "Incomplete": The current university policy concerning incomplete grades will be followed in this course. Incomplete grades are given only in situations where unexpected emergencies prevent a student from completing the course and the remaining work can be completed the next semester. I am the final authority on whether you qualify for an incomplete. Incomplete work must be finished by the end of the subsequent semester or the "I" will automatically be recorded as an "F" on your transcript.

IV.       Canvas: I will be utilizing Canvas in this course to assign all of the course work and for you to submit your solutions.  I will also be utilizing it to communicate with you and to provide you with your current grade.  It is recommended that you check it frequently.

V.       Classroom Devices: Out of respect for everyone in the classroom, if you would like to record the lectures you must first receive my approval.  I generally will approve the request, but I first would like to speak with you concerning the scope of the recording.


Student Expectations:

I.       Civility: My commitment is to create a climate for learning characterized by respect for each other and the contributions each person makes to class. I ask that you make a similar commitment.

II.       Professionalism: Since mobile devices can be a distraction during class, I ask that all devices be put into "silent" mode and not utilized during class; this includes checking Facebook, sending a Tweet, or checking email.  If I feel that your mobile device is becoming a distraction for either other students, you, or myself I will ask you to leave the classroom.

III.       Religious Observations: I understand that an individual's religion plays a large part in their lives and I do not want this course to interfere with that aspect of their lives.  If you find that your religion's holiday(s) falls on a class day and you can not attend due to this, please notify me within two weeks of that date by email (or Canvas mail) and we will work together to come to a mutually acceptable solution.

Collaboration and Cheating:

I encourage you to review material and discuss ideas together for projects and other assignments, and to work on problems you encounter. It is a characteristic of computing that discussions often help to clarify problems and resolve difficulties feel free to take advantage of this to improve your understanding of the material, and to complete projects, but make sure you then create your own work. It's important that you go through the program design, coding, and debugging processes yourself, or you will not be developing your own programming skills and understanding. "Working together" does not mean that one student does the majority of the work and other students put their names on it!  If you have any questions about what this means, please see me.  Every student must create their work on their own! 

Any instances of cheating will result in a zero for the assignment, a grade of zero in the course, or sanctions determined by the college (including suspension and expulsion), which is strictly enforced by the university and the College of Engineering and Applied Science.

University Policies:

I.       Access: The University of Colorado Denver is committed to providing reasonable accommodation and access to programs and services to persons with disabilities. Students with disabilities who want academic accommodations must register with Disability Resources and Services (DRS) in North Classroom 2514, Phone: 303-556-3450, TTY: 303-556- 4766, Fax: 303-556-4771. I will be happy to provide approved accommodations, once you provide me with a copy of DRS's letter. _[DRS requires students to provide current and adequate documentation of their disabilities. Once a student has registered with DRS, DRS will review the documentation and assess the student's request for academic accommodations in light of the documentation. DRS will then provide the student with a letter indicating which academic accommodations have been approved.]

II.       Academic Honesty and Student Code of Conduct: Students are expected to know, understand, and comply with the ethical standards of the university, including rules against plagiarism, cheating, fabrication and falsification, multiple submissions, misuse of academic materials, and complicity in academic dishonesty. For more information on Academic Honesty and the Student Code of Conduct please see:

III.       Other University Policies:

+       Academic Freedom:

+       Family Educational Rights and Privacy Act (FERPA):

+       Attendance:

+       Discrimination and Harassment Policy and Procedures: dentAffairs/UniversityLife/sexualmisconduct/DenverPolices/Pages/DenverWelcome.a spx

+       Grade Appeal Policy: