This course covers the basics of Mobile Applications, OS, Networks, and Embedded Sensor Systems. There are lectures, programming assignments, and a semester long project. Android and Arduino are used as the study/programming platforms. Upon successful completion, a student will be able to develop Android applications, make meaningful changes into Android OS, understand mobile networks (e.g., WiFi, LTE, and Bluetooth), and develop sensor based mobile systems that combines off-the-shelf sensors, Arduino boards, and Android smartphones.


  • Prof. Shahriar Nirjon (Office: SN 256, by email appointment only)
  • TA: Seulki Lee (Office: SN147, Time: Monday 10am-11am, Friday 1pm-2pm.)

Syllabus and Prerequisites:

  • Programming experience in Java is required (COMP 401 is recommended).
  • Required to have an Android smartphone or a tablet (for programming assignments).
  • Knowledge of OS and Networking is not required, but a general understanding of basic concepts such as processes, threads, and TCP/IP will be handy.

Course Structure:

  • Lectures – The instructor will cover the course topics.
  • Grad Lectures – Some of the lectures will be delivered by graduate students. (graded)
  • Programming Practice – Small programming tasks will be given and students will solve them in class with the help of the instructor and/or the TA (not graded).
  • Programming Assignments – Programming assignments (usually a small App) that a student will do at home, and bring it to the class. (graded).
  • A Project – Each student has to develop a mobile application. The instructor and the student will discuss the scope of the project and finalize it before the mid-term break. There will be a project fair towards the end of the semester. A formal project report and a 2-min video of the project are due on the project fair day. (graded)
  • Quiz – There will be 4 quizzes in the semester. (graded)


  • Class Participation (5%)
  • Programming Assignments (60%)
  • Quiz (undergrads only) (15%)
  • Presentation/Lecture (grads only) (15%)
  • Project (20%)

Policies Specific to Undergrads:

  • Enrollment is permission only. Undergrads can take it either as a 590 or a 790.
  • For the undergrads, the labs and the scope of the project will be different. For example, if a lab has two parts, the easier part will have more points (or, full credit) whereas the more challenging part will have less points (or, extra credits). The project will be “development/learning focused” as opposed to “research focused” which applies to graduate students. But a research focused project is always encouraged (extra credits).
  • Undergrads are not required to deliver guest lectures, but may be allowed to do it (extra credits).

Policies Specific to Graduate Students:

  • Graduate students do not have to take the quizzes. Instead, each grad student will deliver a guest lecture. The date and the topic will be determined with help of the instructor.
  • Graduate students are highly encouraged to pursue a research oriented project. A research oriented project is the one that may or may not succeed. In either case, a report must be submitted.