TSYS School of Computer Science @ Columbus State University Course Syllabus: CPSC 6138- Mobile Systems and Applications Summer 2014 Instructor Information: Radhouane Chouchane Office: Center for Commerce and Technology, Room 430 Phone: (706) 507-8175 Email: chouchane@columbusstate.edu Homepage: http://csc.columbusstate.edu/chouchane Office Hours: TWR 12:30 pm - 4:00 pm (via email and by appointment) Course Title: CPSC 6138- Mobile Systems and Applications (This is an online course, taught through CougarVIEW. Go to https://colstate.view.usg.edu/ to access course material, complete assignments, take exams, and view announcements.) Official Course Description: This course explores the post-desktop model of computing that makes use of mobile systems. Topics include wireless communication protocols, mobile data and power management, context awareness, privacy and security, mobile gaming, and the mobile application development process. Prerequisites: No formal prerequisites, but this class will assume that the students have taken at least one graduate-level class in event-driven programming. Experience in Java or in some other object-oriented programming language is a plus. We will be doing a lot of Android programming in class. The class assumes that you have access to a computer that is running Eclipse with the Android Plugin (see http://developer.android.com/tools/sdk/eclipse-adt.html) Required Textbook: Android How to Program (2nd Edition) (Paperback) By Paul Deitel, Harvey Deitel, and Abbey Deitel Publisher: Prentice Hall; 2 edition (January 20, 2014) ISBN-10: 0133764036 ISBN-13: 978-0133764031 Amazon link http://www.amazon.com/Android-HowProgram-2nd-Edition/dp/0133764036/. Required Software: The most recent Eclipse IDE with the Android ADT (Available for free download at: http://developer.android.com/tools/sdk/eclipse-adt.html) If you do not already have this software, you will need to install it. You but are not required to, get your own Android phone or table and run your programs directly on your Android phone or tablet. Supplementary Materials: Materials available on the course's CougarVIEW web site Software found on campus and on the Internet Online resources on writing secure software. These include http://www.eecs.berkeley.edu/~daw/research/ss/, and http://www.mcafee.com/us/services/strategic-security-education/classroomtraining/writing-secure-code-java-j2ee.aspx. Course Objectives: Students will program mobile applications (utilities and games) for Android devices. Students will be able to optimize an Android application for user-friendliness and for power consumption. Students will be able to implement and enforce access controls on data within their Android applications. Students will be able to write networked Android applications that support such features as in-app email and web-browsing. Major Topics: 1) The Basics of Mobile Computing 2) Data Management on the Android 3) Power Management Issues on the Android 4) Security and Access Control Issues on Android Devices 5) Mobile Games for the Android Instructional Methods and Techniques: 1) This course will be taught online via CougarVIEW. See http://online.columbusstate.edu/ for general information on taking an online course at CSU. 2) Students are expected to use their own licenses of the Eclipse IDE with the Android ADT (available at http://developer.android.com/tools/sdk/eclipseadt.html) to complete their homework assignments and final project. If students have no such licenses, students are welcome to come to campus to do their Eclipse/Android programming assignments. 3) All students must have access to a networked computer to complete their assignments and regularly visit the course website for new assignments, reading materials, and announcements. 4) Visual and audio devices (diagrams, videos, etc.) will be used as needed to support the text. Assignments for Course: Readings from the textbook Several programming assignments for the Android, that will include a small writing assignment on building secure software. A programming project due towards the end of the semester. Assessment Criteria: Students' performance will be evaluated using several programming assignments (including a small writing assignment on building secure software) that will test the students' grasp of the concepts covered in the weekly reading assignments, a project proposal, and a working implementation of a substantial programming project. The project, as well as all of the programming assignments, must be implemented using the Android Development Toolkit as a plugin to Eclipse (http://developer.android.com/tools/sdk/eclipse-adt.html). Project proposals must submitted to the instructor for approval no later than July 07, 2014. Assessment criteria will be weighted as follows: Assignments Final Project Proposal Final Project 50% 10% 40% Letter grades will be assigned as follows: A (90%-100%); B (80%-89%); C (70%-79%); D (60%-69%); F (0%-59%) Tentative Schedule (Subject to change as we progress through the course) Date Topic Work Due W01:06/16/14 Introduction W02:06/23/14 GUI Design, Layouts, Accessibility and Internationalization Program 1 (tentative) W03:06/30/14 Event Handling and Defining App Functionality with Java Program 2 (tentative) W04:07/07/14 Implicit Intents and Alert Dialogs W05:07/14/14 Preferences and Layouts for Multiple Device Orientations Program 3 (tentative) W06:07/21/14 Games, Animations, and Sounds W07:07/28/14 Accelerometers and Multi-touch Events Project (tentative) General Policies: Students are responsible for keeping pace with the progress of the course. Should any concerns about the course’s contents be addressed, students should immediately consult with the instructor by email or during office hours. In addition to regularly reading from the text book, students must visit the course’s website at least once a day for recent updates and announcements. Students must regularly check both their CSU and their CougarVIEW email accounts for messages from the instructor. Announcements made on CougarVIEW, and that are at least 24 hours old, will be assumed to have been read by their recipient(s). “I didn't know” is not excuse for not submitting an assignment in time or for not having read an email/announcement from the instructor. Unless untimely submission of an assignment is due to a documented emergency reported to the instructor before the day on which the assignment is due, a penalty of 5% per day will be incurred for late assignments. Assignments submitted more than 3 days after their due date will be considered missed and will receive a grade of 0. ACM Code of Ethics: http://www.acm.org/membership/COE_Flyer.pdf Academic Dishonesty Policies Academic dishonesty includes, but is not limited to, activities such as cheating and plagiarism. It is a basis for disciplinary action. Collaboration is not permitted on assignments in this course, unless a group project is assigned, in which case only group members are permitted to collaborate as described within the project's description. Students may share ideas. but submitting identical answers to any one non-group assignment question will be considered cheating. Students may discuss course material and help one another with debugging, however, the instructor expects any work that a student hands in for a grade to be the student's own, and clearly indicate the student's contribution to any assigned group projects. Written and programming assignments may not contain sections that have been imported verbatim from an outside source, be it online (such as a web page) or offline (such as a book or an article). The penalty for the first occurrence of this type of academic dishonesty is a zero grade on the assignment; the penalty for the second occurrence is a failing grade for the course. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but students may not read each other's work or write solutions together, unless they are reviewing or maintaining a group member's solution. Students should consider keeping scratch paper and old versions of assignments until after the assignment has been graded and returned to them. Should students have any questions about this, they must see/contact the instructor immediately. For non-group assignments and projects, access to notes, books and other publications is allowed. Stealing, giving or receiving any code, diagrams, drawings, texts or designs from another person (CSU or non-CSU) is not allowed. Having the access credentials (e.g., username and password) to another person’s work on the system or giving access to the access credential's of one's work to another person is not allowed. It is the student's responsibility to keep her/his work confidential. For group assignments and projects, access to notes, books and other publications is allowed. Stealing, giving or receiving any code, diagrams, drawings, texts or designs from a person (CSU or non-CSU) that is not the student's group is not allowed. Giving or receiving code, diagrams, drawings, texts or designs from from a group member is allowed as described within the assignment or project. Having the access credentials (e.g., username and password) to another person’s work on the system or giving access to the access credential's of one's work to another person is not allowed. It is the student's responsibility to keep her/his work confidential. No cheating in any form will be tolerated. The penalty for the first occurrence of academic dishonesty is a zero grade on the assignment or project; the penalty for the second occurrence is a failing grade for the course. (http://ace.columbusstate.edu/advising/a.php#AcademicDishonestyAcademicMisconduct ) CSU ADA Statement If you have a documented disability, as described by the Rehabilitation Act of 1973 (P.L. 933-112 Section 504) and the Americans with Disabilities Act (ADA) and subsequent amendments and would like to request academic and/or physical accommodations, please contact the Office of Disability Services in the Schuster Student Success Center (room 221), 706-507-8755, as soon as possible. Course requirements will not be waived, but reasonable accommodations may be provided as appropriate.