Syllabus

Overview

Games have gotten big, really big. Smartphones, Tablets, they're everywhere.  If you want to learn how to design and develop websites and applications for mobile then this class is for you.  Mobile development includes lots of options from native apps to cross-platform deployment systems to web apps.  There's been an explosion in online learning materials for all of the different options.  The instructor will guide you through the available resources, and help you design, prototype, build and deploy your own mobile solution.

If you want some stats on just how much time people are spending on mobile devices these days check out:

Image shared through CC BY-NC-SA 2.0 by Joshua Kaufman

Instructor

Dr. Samuel Joseph, Associate Professor of Computer Science, has over 10 years experience in Mobile App development, starting with the first ever Java enabled handsets released by DoCoMo in Japan in 2001. He has taught Mobile Programming and Design courses at the University of Hawaiʻi and Hawaiʻi Pacific University for over 5 years; developing apps on both Android and iOS.

Feel free to contact the instructor on email, skype, twitter, facebook, or linkedin

What you will learn

  • Basic Design for Mobiles
  • HTML apps
  • Deploying Apps
  • Distributing to app stores
  • Native apps (iOS, Android)
  • Cross platform development (PhoneGap, Appcelerator, Corona)
  • Setting up your environment
  • Lo-Fi Prototyping
  • User Testing

Workload

8-12 hours per week (2 hours viewing online lectures, 6-10 hours on assignments)

Students

This class is intended for students who are at least proficient in HTML, or capable of learning HTML quickly. Students with programming experience can go on to create native apps like the following examples created by students in previous semesters: EarTrainerPunchMyX, TapTap

Differences for HPU and non-HPU students
  • Enrolled HPU students have priority - the instructor will provide feedback and support to paying HPU students before providing it to non-paying students.
  • Non-paying students are not guaranteed to receive any individual feedback and support from the instructor, but it will be offered where possible
  • Students enrolled in HPU will receive credit upon successful completion of the class
Anyone can enroll in an HPU class. The cost is $1851 plus a one off $220 registration fee for non HPU students, but enrollment is not required to access the course materials for this class.  However enrollment will guarantee special attention from the instructor and other resources for HPU Students.

If you would like to support HPU's provision of public classes such as this one, please consider making a donation to HPU.  If you do make a donation, please leave a comment specifying that you are doing so for Dr. Joseph's online mobile class, and put "College of Natural and Computational Sciences" as the designation type.  HPU is a non-profit organisation dedicated to the advancement of learning and your donation will help us continue to provide access to learning materials like those available in this class.

Note that students retain copyright on any and all creative works they create during the class.  The instructor will encourage all students to disseminate their work and the process of creating it as widely as possible.  Weekly assignments will often include students blogging, and at the minimum these blogs need to be visible to the rest of the class, but ideally are accessible publicly.  However individual students grades will remain entirely private as required by US FERPA legislation.

Software

It depends, but all free, and will depend on your level of technical skill.  Here's a list of the software we may use:
  • TextEditors (Notepad++, Sublime, etc.)
  • Chrome (and other modern browsers)
  • Eclipse IDE
  • XCode
  • Brackets
  • Balsamiq

Hardware

You need a reasonable fast computer, purchased within the last 2 years or so, the more recently the better. You also need a reasonably fast internet connection.  If you are serious about deploying native apps to iOS (iPhone/iPad) you will need a macintosh with OSX.  And naturally you will have some mobile device that you are hoping to deploy to.  Here is the official HPU computer requirements for online courses.

Textbook

There are several optional textbooks
There is also lots of online documentation freely accessible that we'll be referring to during the course

Course Schedule

The instructor will adjust the Tentative schedule week by week based on how the students are progressing.  The starting point will be an overview of existing mobile technology and options for development.  In parallel students start brainstorming the kinds of mobile experiences they would like to create for themselves and others.  As these ideas develop the instructor will pull in material on mobile design, web apps, cross-platform solutions, and native development frameworks.

This might sound somewhat ambiguous, but the instructor has taught mobile programming and mobile design courses with varying degrees of structure for over 5 years now and has huge amounts of material.  There is no "one size fits all" path through this material.  There are just lots of different students with ideas about what mobile experiences they would like to create, and there is no way for anyone to cover ALL the available material.  The instructor will use his experience and judgement to provide each student with the best possible scaffold to see their desired mobile experience realized and distributed.

In particular there are a number of free online courses available from experts in mobile design and programming that are available on platforms such as Coursera, iTunesU, Udacity, Udemy and others.  The instructor will pinpoint material available on these other platforms to help students best move toward their goal.

If you need help please send all questions to the instructor via the class mailing list or via Skype to the class chat room. The instructor will answer every question as soon as possible, but certainly within 24 hours (48 hours at weekends).  Feedback on assignments will also be provided as soon as possible, ideally before the student needs to start work on the next assignments, as the weekly assignments build on each other.

CourseWare

Technical Support

Most of the courseware has it's own support services and HPU provides some technical support services, but please do not hesitate to contact the instructor with any technical difficulties associated with any of the online courseware tools.

Course Objectives

1) That by the end of the course each student will have created a mobile experience that can be distributed on smartphones and tablets, ideally through Google Play or the Apple App Store.
2) That everyone (including the instructor) will have fun and not feel overwhelmed

Grading and Assignments

Grading of the final project and selected assignment will be on a 100-point scale as shown below.  However weekly assignment grades will also be based on the proportion of assignment components completed, and the extent to which a student makes changes to their submission based on instructor feedback:

 Points  Grade  Points  Grade
 93-100  A  73-76  C
 90-92  A-  70-72  C-
 87-89  B+  67-69  D+
 83-86  B  60-66  D
 80-82  B-  Below 60  F
 77-79  C+    


 Weight Notes 
 Project  40%  A good proportion of your grade will come from your final project. The project will involve developing a mobile experience of your choice, including interface design and user-testing. 
 Assignments  40%  There will be weekly assignments  .When assigned, assignments must be done prior to the specified deadline. One grade level will be dropped for each day an assignment is late. Moreover, late assignments are not guaranteed to be graded or to receive feedback, unless prior arrangement is made with the instructor.
 Participation  20%  Posting appropriately to the mailing list and/or participating online in Skype and/or Google Hangouts. A grade of up to approximately 1.4% will be awarded each week depending on attendance and level of contribution.  Each week students will need to post a non-trivial question/comment on the weeks topic to the class mailing list or Skype chat room. Examples of trivial questions/comments include things like “I
hate apple”. Examples of non-trvial questions/comments would be things like “What's the key difference between the way in which iOS and Android expose functional hooks from one mobile application to another?”
 Total  100%  

Tracks

This course is designed with two types of students in mind; the technical and the not so technical.  More technical students keen to do programming can get deeply into either iOS or Android native development.  Those technical students who can program but want to focus on the design can use tools such as PhoneGap to work a bit faster, while non-technical students can stay at the level of paper prototypes, use design tools such as Balsamiq and dip their toes into mobile HTML web sites.  Ideally more technical students will collaborate with less technical students.

Americans with Disabilities Act

Under the Rehabilitation Act of 1973 (Section 504), the Americans with Disabilities Act Amendments Act 2008 (ADAAA), and Title III (Public Accommodations) Hawaiʻi Pacific University does not discriminate against individuals with disabilities.

Any student who feels he/she may need an accommodation based on the impact of a disability is invited to contact Deneen Kawamoto (Coordinator of Academic Advising and Student Support) at HPU. She can be reached at (808) 544-1198 or in the downtown Academic Advising Office, UB 123, 1164 Bishop Street. She can also be reached at dkawamoto@hpu.edu. This is a necessary step in order to ensure reasonable accommodations in my course. Students are not expected to disclose their specific disability to the professor. Once you meet with the Coordinator and it is determined that accommodations will be provided you will bring a basic letter to your instructor explaining accommodations expected and not the nature of the disability. You may use these guidelines to certify a disability.

Academic Integrity and Plagiarism

Please read HPU’s policy on academic integrity. Academic misconduct undermines the integrity of the university, the degrees it awards, and contaminates the learning environment. Consequently, the instructor and HPU take instances of academic misconduct seriously. It’s the student’s responsibility to read, understand and follow HPU’s policy regarding academic misconduct. Any student who violates this policy will be penalized in accordance with established sanctions and procedures as specified in this HPU policy document.

Civility Statement

Participation in class must be thoughtful, reflective and respectful to the learning and classroom environment.  Civility towards others is also essential.  Communication that dominates, is disrespectful to others or interferes with general classroom discussion or progress is unacceptable.  An expression for this in online classes is called "netiquette".  Please see the following link for more details:

Information Literacy

Information literacy is a set of abilities requiring individuals to "recognize when information is needed and have the ability to locate, evaluate, and use effectively the needed information."

An information literate individual is able to:

1) Determine the extent of information needed
2) Access the needed information effectively and efficiently
3) Evaluate information and its sources critically
4) Incorporate selected information into one’s knowledge base
5) Use information effectively to accomplish a specific purpose
6) Understand the economic, legal, and social issues surrounding the use of information, and access and use information ethically and legally

Students taking this course will become more information literate since one requirement will be to compose informed blog posts each week and make effective use of Q&A sites like StackOverflow as part of the process of formulating information queries and getting answers to them in a timely fashion.

Related ACM Learning Objectives (2008)

NC/MobileComputing [elective]  

4. Describe areas of current and emerging interest in wireless and mobile computing, and assess the current capabilities, limitations, and near-term potential of each.

HC/BuildingGUIInterfaces [core]  

1. Explain principles for design of user interfaces, such as learnability, flexibility, and robustness.  
2. Describe examples of bad navigation, bad screen layout, and incomprehensible interface design.  
3. Create a simple application that supports a graphical user interface, for either the Web or a windowing system.
4. Observe a user attempting to use the application and have the user critique the application.  
5. Explain how careful user evaluation goes beyond the simple observation of a single user.  

HC/UserCenteredSoftwareEvaluation [elective]  

1. Discuss evaluation criteria: task time/completion, time to learn, retention, errors, and user satisfaction.
2. Conduct a walkthrough, expert-based analysis, and a Keystroke Level Model (KLM) analysis.
3. Compare a given user interface to a set of guidelines or standards to identify inadequacies.
4. Conduct a usability test with more than one user, gathering results using at least two different methods.
5. Compare a laboratory test to a field test.
6. Explain a usability problem that is supported by results from a usability test. Recommend a solution to the usability problem.
7. Critique a user evaluation, to point out threats to validity.
8. Given an evaluation context (e.g. amount of time, availability of test users, place in the design process, evaluation goals), recommend and justify an evaluation method.

HC/UserCenteredSoftwareDevelopment [elective]

1. Compare user-centered development to traditional software engineering methods.
2. Gather requirements for a user interface, using both task analysis and interview with a user.
3. Identify from requirements analysis at least three functional requirements and at least three usability requirements.
4. Create a specification for a user interface based on requirements.
5. Create two different prototypes at different levels of specificity from the specification.
6. Implement the prototype using some GUI toolkit.
 
HC/GUIDesign [elective]  

7. Summarize common interaction styles.  
8. Explain good design principles of each of the following: common widgets; sequenced screen presentations; simple error-trap dialog; a user manual.  
9. Design, prototype, and evaluate a simple 2D GUI illustrating knowledge of the concepts taught in HC3 and HC4.
10. Identify the challenges that exist in moving from 2D to 3D interaction.
11. Identify the challenges that exist in moving from desktop or laptop screen to a mobile device.

Related HPU Catalog Course Descriptions

CSCI 4702 Mobile Programming

A course on the programming of applications for mobile computing including devices such as mobile
phones, pads and tablets. Students will learn best practices in programming for mobile devices including
iPhones, iPads and Android smart phones. At the end of the course students will be proficient in
developing mobile applications and using device emulators for coding and testing. This course will at times
include joint projects with students in the mobile design course, MULT 4702.

MULT 4702 Mobile Design

An introduction to interface and application design of mobile platforms such as SmartPhones, iPads and
Tablets. This course will review the general interface design and prototyping process, with special focus
on the restricted mobile environment. A significant portion of the course is organized around critical
engagement with the latest academic and design literature in the field. The course includes a crossover
mobile design project with Computer Science students taking the CSCI 4702 Mobile Programming Course.

CSCI 3651 Game Design & Programming

A comprehensive look the many types of computer game programming. This course reviews the
programming and theory behind classic games such as Centipede, genre creators such as SimCity and
Civilization, as well as modern techniques behind sophisticated games such as Half-Life 2, Prince of Persia
and Red Dead Redemption. Students get hands-on experience creating 2D games in JavaScript/HTML5
and 3D games in systems such as the Unity3D. Course also covers interactive narrative text adventures,
mobile games and there is a big focus on game Artificial Intelligence.

CSCI 4211 Software Engineering

The course teaches software engineering techniques based on the Software Engineering Body of
Knowledge (SWEBOK) using SaaS+Agile+cloud as the vehicle and Rails as the framework. This course
covers Code Design Patterns, code version repositories and open source project software engineering
methodologies, critical for the programmer in today’s complex system ecology.
Subpages (1): Tentative Schedule