If you are looking for the most recent (current) course webpage for Fall 2023, it has moved to Canvas (https://uncch.instructure.com/courses/34658). This website is no longer current.
Overview
This course covers the basics of Mobile Computing Systems. The course content includes: Android App Development, Alexa Voice Interaction Design, and Web Programming. There are lectures, in-class programming tasks (aka code-with-nirjon), programming assignments (aka home works), a course project, a mid-term exam and a final exam. Upon successful competition, a student should be able to develop proof-of-concept Android apps as well as Alexa conversational apps.
Instructor:
- Prof. Shahriar Nirjon (Office: FB 212. Office Hours: Email to schedule)
- TA: Tarik Reza Toha (Room: TBD, TA Hours: TBD)
Schedule
Topics and Resources (Finalized AFTER Each Class)
Date | Class | Topic | Resource |
---|---|---|---|
08-18-2021 | Lecture 1 | Getting Started | lecture1 asmt0 |
08-23-2021 | Class Work 1 | Android Studio, First app, Debug | cw1 |
08-25-2021 | Class Work 2 | Building Apps: Layouts, Buttons, Images, Events | cw2 |
08-30-2021 | (continue) | Event handling. | |
09-01-2021 | Lecture 2 | Framework, components, intents | lecture2 |
09-08-2021 | (continued) | Explicit and implicit intents | |
09-13-2021 | Assignment 1 | 8 Queens Problem (Game) | asmt1 |
09-15-2021 | Lecture 3 | Animation & Graphics | lecture3 images |
09-20-2021 | (continued) | Drawables and Canvas | |
09-22-2021 | Class Work 3 | Plotting Random Numbers | cw3 |
09-27-2021 | Lecture 4 | Sensors | lecture4 |
09-29-2021 | Lecture 5 | Location | lecture5 |
10-04-2021 | Assignment 2 | asmt2 | |
10-06-2021 | Lecture 6 | Process, Threads, Task | lecture6 |
10-11-2021 | Lecture 7 | Sensor Data Classification | lecture7 |
10-13-2021 | (continued) | ||
10-18-2021 | Midterm Exam | ||
10-20-2021 | Lecture 8 | SQLite Database | lecture8 |
10-25-2021 | Class Work 4 | cw4 | |
10-27-2021 | Assignment 3 | asmt3 | |
11-01-2021 | Lecture 9 | Image Classification | lecture9 |
11-03-2021 | Class Work P0 | cwp0 | |
11-08-2021 | Lecture 10 | Service and Media | lecture10 |
11-10-2021 | Class Work P1 | project | |
11-15-2021 | Lecture 11 | ADB | lecture11 |
11-17-2021 | Class Work P2 | project | |
11-22-2021 | Class Work P3 | project | |
11-29-2021 | Class Work P4 | project | |
12-01-2021 | Final Project Submission | project | |
12-07-2021 | Final Exam | 4pm to 7pm |
Syllabus and Prerequisites:
- Syllabus for COMP 433: Fall 2023
- Experience in Java (e.g., event handling, GUI, threads, socket programming) is required. It is strongly recommended that a student completes assignment #0 [pdf]
- Recommended to have an Android smartphone or a tablet (for programming assignments). Devices should have a camera, accelerometer and GPS sensors. No cellular data plan is needed. Your phone should run Android OS 4.4 or later. The way to test if your Android phone is programmable is to: go to Settings/About Phone/ and touch the Build Number several times. If it says something like “you are a developer” then you are good to go.
- In-depth 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.
- Code-with-Nirjon – Tasks will be given (e.g. programming task, design, etc.) and students will solve them in class with the help of the instructor and/or the TA.
- Assignments – Programming assignments (usually a small part of the course project) that a student will do at home, and bring to the class.
- Project – Each student will work on a semester-wide project.
- Midterm/Final Exam– There will be a midterm and a final exam.
Grading:
- Class Participation (5%)
- Code-with-Nirjon (10%)
- Assignments (35%)
- Midterm (15%)
- Project (20%)
- Final Exam (15%)
Grading Policy:
- Attendance will be taken on random days.
- Code-with-Nirjon (in-class programming task) needs to be signed off by the TA or the instructor within a week (the TA hour of the next week is okay) to obtain full marks. No points will be awarded after the deadline.
- Assignments (programming assignments/home works) are individual assignments. Bring your laptop, source code, and the running app on your phone/tablet/emulator for grading. Assignments must be demonstrated in person, in class. 50% points will be taken off for being up to one week late and 75% will be taken off for being up to two weeks late. No points will be awarded after two weeks. All codes (entire project folder) must be zipped and uploaded to the Canvas by the deadline. Grading will be based on in-person demonstrations only. Uploaded codes will be used to check honor code violations.
- Projects are individual. Points and deadlines are assigned to different features of the final project. 50% points will be taken off for being up to one week late. No points will be awarded after one week of the deadline. All codes, reports, presentations must be uploaded to the Canvas by the deadline.
Links to Resources
Android Resources
- Android Developer Website: developer.android.com
- Android SDK Download: developer.android.com/sdk
- Android Source Code: source.android.com
Arduino Resources
- Arduino Official Website: arduino.cc
- Arduino Tutorial: arduino.cc/en/Tutorial/HomePage
- Adafruit’s Arduino Tutorial: learn.adafruit.com/category/learn-arduino
- Sparkfun’s Arduino Tutorial: learn.sparkfun.com/tutorials/what-is-an-arduino