Syllabus
Time: Tuesday and Thursday @ 7:10-9:00 AM
Location: Kenna Hall 214
Instructor: Peter Bergström (pbergstrom at scu.edu)
Class Number: 16158
Class Web Page: http://coen268.peterbergstrom.com
Description
Mobile application development can be divided in two polarizing camps. First, the native only approach where you have to develop applications specifically for the platform, such as iOS and Android. Second, a web-based approach that allows developers write applications using standards compliant HTML5 concepts that can run on all platforms in web browsers or in native app web view wrappers. There are pros and cons for both approaches as they both offer a different set of trade offs to the developer and the user.
This course aims to explore the second route, using an HTML5 approach to write mobile applications that run in mobile web browsers on smart phones and tablets as well as inside of native app wrappers on iOS and Android. Using HTML5 standards compliant technologies available in modern browsers, the complexity of the applications that can be created now is high. This course aims to explore the capabilities of the Ember.js JavaScript application framework to create native-style, single page applications.
Objectives
-
Gain an understanding of how to create mobile web applications using HTML5, CSS3, and JavaScript. Use technologies available in modern browsers such as the canvas tag, SVG, web workers, local storage, hardware integration, and more.
-
Develop native-style mobile web applications using the Ember.js JavaScript framework that can run on multiple types of devices such as iPhones, iPads, Android phones and tablets, and even the desktop browser.
-
Use industry-wide design patterns for native application development and apply them to make JavaScript-based web applications more powerful and easy to manage.
-
Learn how to not only deploy these apps to run through a web-browser, but also in native app wrappers for iOS and Android.
Office Hours
The instructor does not have an office at SCU. Office hours can be arranged by email or with the instructor in class.
TA Sessions
The TA for the course, Pratyusha Joginipally (pjoginipally at scu.edu) will be holding two 2-hour lab sessions per week in the Design Center on Mondays and Wednesdays at 3-5PM. If there is a change to the schedule or location, it will be announced in class and through Camino.
Materials
The course leaves it open-ended which editor you wish to use for development. An editor such as TextMate is sufficient. The Chrome web browser will be required for development and debugging.
XCode and Android Developer Tools might be needed for your project. Also, assignment and project code can be run on the simulators for testing.
Recommended (but Optional) Textbooks
JavaScript: The Good Parts
By Douglas Crockford Publisher: O’Reilly Media, 2008 ISBN:0596517742
Learning JavaScript Design Patterns
By Addy Osmani Publisher: O’Reilly Media, July 2012 ISBN:1449331815
Tentative Schedule
- WEEK 1: Course introduction. HTML5.
- WEEK 2: Cascading Style Sheets. Desktop vs Mobile. Project Pitching.
- WEEK 3: JavaScript. Canvas tag using JavaScript.
- WEEK 4: REST, JSON, APIs. JS design patterns.
- WEEK 5: JavaScript MVC with Ember.js intro. Ember object model and templates.
- WEEK 6: Ember naming conventions and routing.
- WEEK 7: Ember controllers and components.
- WEEK 8: Ember Data and testing.
- WEEK 9: Optimizing apps for production. iOS development overview and how to include mobile web apps in native app wrappers as a hybrid app.
- WEEK 10: Project demos
Attendance
Attendance will be noted at the start of class most days. While attendance and overall class participation will not be directly calculated into your grade, they will be considered when deciding the final class grading curve.
Assignments
Frequent assignments will be given during approximately the 3/4 of the class. These are intended to quickly build your familiarity with developing mobile web applications, and give you the skills you need to complete your class project. Homework is intended to be completed independently – collaboration is not allowed.
Due Dates
Unless otherwise stated, all assignments will be due at 6:00AM before class on the due date. Late assignments will be deducted 1% per minute late, up to a maximum penalty of 50% (in the absence of evidence of extenuating circumstances). No assignments will be accepted after the due date for the final assignment.
Grading
The following elements will be considered when grading assignments:
- Correctness: Does the project meet the specified requirements?
- Design/organization: Is the project well organized and maintainable?
- Coding style: Does the project use a consistent and readable coding style?
- Comments: Are there adequate comments present to make the code understandable?
A student’s final grade will be composed of the following elements (weights are approximate):
- Programming assignments: 20%
- Quizzes: 20%
- Project proposal: 5%
- Project checkpoints x2: 5% each
- Final Project Submission: 20%
- Class project Presentation: 5%
- Final Exam: 20%
The grading scale will be on a curve based on the overall quality of work performed.
Academic Integrity
Students are expected to develop all homework independently. Collaborative work or any use of non-original code requires the consent of the instructor and proper attribution in the source code. Do not share code with other students except on collaborative projects. Students who violate this policy will at least receive 0% on the assignment if not reported to the administration for disciplinary action.