Syllabus
Course Information
Instructor: Prof. Tian Guo
TA/SA: Hamid Mansoor, Mario Zyla
Term: B Term, 2018
Class Time: Tuesdays and Fridays, 8:00am to 9:50am
Location: Fuller Labs 320
Office Hours:
- Prof. Guo: Fridays, 10-11AM in Fuller 138. Or by appointment.
- Hamid (TA): Mondays, 4-6PM, Thursdays,
3-5PM, 5:30-7:30pm, Fuller Zoo Lab - Mario (SA): Tuesdays, 4-6PM, Wednesdays,
5-7PM, 6-8PM, Fuller Zoo Lab
Course Description
This course will provide an in-depth study of design and implementation challenges in building modern mobile applications. Topics to be expected include Android ecosystems, basic Android development based on Java SDK, design considerations of mobile-specific optimizations. Proficiency in Java is strongly recommended. Knowledge of operating systems, computer networks, and command lines are essential.
By the end of this course, students will be able to:
- Use Android SDKs to develop Java-based mobile applications,
- Design mobile applications given the heterogeneous and limited on-device resources,
- Implement, evaluate and optimize an end-to-end mobile application.
Course Workload and Gradings
Programming load: The course will be programming-intensive. You should be very comfortable writing code in Java, and you should be prepared to learn the basics of C/C++. The course will make use of several tools that typically involve command line and you should be familiar with the basics.
Expected time commitment: The official statement in the WPI undergrad catalog states that 1/3 unit is equivalent to “at least 15-17 hours of work per week”. Thus you should expect to spend 11-13 hours outside class per week. If you are spending substantially less time than this, it is likely that you are not reviewing the modules after lecture or reading them carefully enough when completing assignments. If you are spending substantially more time than this, I encourage you to come to office hours more often and meet with me discuss ways to optimize the time you are spending.
Grading: (subject to change)
- Quizzes: 33%
- Individual Android projects: 32%
- Group project: 20%
- Topic survey: 10%
- Participation in class and online: 5%
Quizzes: We will have closed-book quizzes for most classes, usually at the beginning of each class. Quizzes are available in two forms: through InstructAssist (IA) or printed version. I strongly encourage you to take IA-based quizzes. This eases teaching staffs’ efforts to provide prompt feedback for your performance and therefore allows teaching staffs to spend more of their time outside grading in helping you succeed in this course. The two lowest quiz scores will automatically be dropped, allowing for absences, illnesses, or simply “bad days”. The quizzes will be short, and consist of questions that are both factual and design-oriented. Students may not access any reference materials or communicate with others during or after the quiz.
Individual Android Projects: There will be four individual projects in the course where students will complete Android-based programming with varying difficulties. These individual projects may have different point values and may have “checkpoint” deliverables in which students can earn partial points.
Group Project: There will be one term-long project that students pursue in teams of 2-4 people. The group project builds upon individual Android projects and calls for an reimplementation and optimization of an existing research project. The instructor will provide several potential directions that students may choose from. Students are strongly encouraged to propose their own directions subject to the instructor’s approval.
Topic survey paper: Students can work in teams of 2-4 people to pick a new development in mobile computing, collect relevant materials and present their findings in the form of blog post or a codelab style tutorial. This will give you practice in keeping up with technologies that are fast moving.
Participation: Participation is an important aspect of this class and I will be keeping track of it both in class and online. If you are not actively participating, you should not expect to get an A in this course. Participation includes but not limited to:
- asking or answering questions in class or through IA,
- attending office hours.
Textbook and Resources
The Required textbook for this course is: Android Programming: The Big Nerd Ranch Guide (Third edition), Bill Phillips, Chris Stewart, and Kristin Marsicano, The Big Nerd Ranch, 2017
Note: You will need the BNRG for assigned readings.
- The BNRG textbook is accompanied with example Android apps. The recommended way to read the assigned chapters is to reference to the project code using Android Studio at the same time.
- To get proficient in Android programming, it is very important that you read the official Android API references.
Course Policies
Late submission policy:
- No quizzes may be submitted late. No make-up quizzes will be available.
- Late project submission will lose 10% per late day. Any projects that are submitted after the last day of class will not be graded.
Illness policy: If you are ill and will miss classes(quizzes) or a project, you should notify me through IA in advance if possible. Unless you provide a doctor note, I cannot extend project deadlines for you.
Communication policy: Class discussion, class hand-outs, emails to the student’s WPI email account, the IA forum, and the course Web pages are avenues for official course communication. Students are responsible for any information posted through these venues. The teaching staffs (TA/SA and me) will check the IA forum during specific times set aside during the week for this purpose - so do not expect an instantaneous response. It is best to come to office hours with specific questions in mind, when you need help with your “bugs”.
Student Disabilities: If you need course adaptations or accommodations because of a disability, or if you have medical information to share with me, please notify me as soon as possible. If you have not already done so, students with disabilities who believe that they may need accommodations in this class are encouraged to contact the Office of Disability Services (ODS) as soon as possible to ensure that such accommodations are implemented in a timely fashion. This office is located in the West St. House (157 West St) and their phone number is 508.831.4908.
Academic Integrity policy: The WPI Academic Integrity Policy describes types of academic dishonesty and requirements in documentation. In the case of academic dishonesty, I am required to report the incident to the Dean of Student Affairs. Further, my penalty for academic dishonesty is to assign a NR grade for the course.
Collaboration policy: All of your submitted work should be your own, and you should be able to explain how it works. You may discuss the high level approaches for assignments with other students and have/help other students debug a specific code snippet. In case of any appropriate collaborations, include the names of any students at the very beginning of the submission writeup. You should not directly coding code regardless of the source. Please ask the course staffs if you are not sure whether a certain collaboration is appropriate.
Further Notes
Acknowledgments:
- This course uses InstructAssist developed by Prof. Craig Shue for interactive instruction.
- Some of this course’s policies are adopted from Prof. Craig Shue and Prof. Tim Wood.
- Part of the course materials for this course comes from NSF funded project MODI and project tutorials are prepared by Sam Ogden based on our research.
- The course website is modified based on the jekyll minima theme.