USM Course Catalog: Topics to be covered may include philosophy of computers, history of computers, computers and society, simulation, graphics, and other advanced topics. Prerequisite: COS 285 or permission of the instructor. Cr 3.

This course is about developing mobile applications. Students will develop for iOS with Swift, Android with Java, and Cross-platform with JavaScript/HTML/CSS. The course is almost entirely project oriented and will rely on students being well prepared in their reading, research, and development skills.

Instructor

Stephen Houser houser@maine.edu

Course Objectives

The objectives of the course are as follows.

  • Develop basic skill in app development on iOS, Android, and hybrid platforms.
  • Develop moderate skill and knowledge of a single platform.
  • Develop basic skill in server-side development for mobile platforms.
  • Understand the design and interface layout process for mobile applications.

Prerequisites and Expectations

  • COS 285 or Permission of the Instructor

The course involves a fair amount of independent learning, experimentation, and work. Internet resources on mobile app development are plentiful and class time is limited. You will be expected to read (or at least skim and absorb) enough of these materials to be prepared for class.

Be prepeared to work across platforms and with multiple (new to you) languages. There will be a fair amount of moving from one technology to another throughout the course and within a single project.

Textbook

None. We will be using articles, tutorials, and materials freely available on the Internet throughout the course. Links will be provided on the course website.

Projects

The course is entirely project-based. There will be one (1) introductory and five (5) programming projects throughout the course. The projects will require you to develop mobile applications on a variety of platforms and technologies.

Schedule of Projects

Project Project Possible Points
0 GitHub 1
1 iOS Tasklist (mini) 2
2 Android Task List (mini) 2
3 Hybrid Task List (mini) 2
4 Choice Task List (full) 2
5 Student Designed 4

Your code will be submitted (checked in) on GitHub to an assignment for each project. Details on what needs to be submitted will be included with each assignment. In all cases, you should submit only source code, no binary executable files.

Your code must compile and run on systems other than your own, specifically the instructor’s system. Be diligent not to include absolute paths or other common mistakes that prevent your code being compiled and executed on other systems.

Code should work and be your own creation. There are numerous sources of information on the Internet, including code. However, your submissions should be your own work not that of others cut-and-pasted into your projects or that of your classmates. Plagiarism is a serious offence and will be treated accordingly.

Project Grading Rubric

The grading rubric for each project and the presentation is extremely simple.

Project 0 and Presentation:

Score Notes
1 Completed the project or gave presentation.
0 Did not complete the assignment.

Projects 1-4:

Score Notes
2 Satisfies all requirements, is well coded, and well laid out.
1 Satisfies some/most requirements, has some code style problems, has some layout problems.
0 Does not compile, does not work, does not satisfy the requirements

Project 5:

Score Notes
4 Satisfies all requirements, is well coded, and well laid out.
3 Satisfies most requirements, may have small defects in code and/or layout.
2 Satisfies some requirements, has some code style problems, has some layout problems.
1 Satisfies only a few requirements, compiles and runs but with serious problems.
0 Does not compile, does not work, does not satisfy the requirements

Examinations

None.

Schedule

The following is the schedule for the course. Topic coverage and due dates may change based on progress, snow-days, holidays, and other events.

Date Topic Notes/Reading
Week 1 Introduction, Platforms, GitHub  
Week 2 iOS Project 0 (GitHub) Due
Week 3 iOS  
Week 4 Android Project 1 (iOS) Due
Week 5 Android  
Week 6 Hybrid Development Project 2 (Android) Due
Week 7 Hybrid Development  
Week 8 Data Persistence Project 3 (Hybrid) Due,
Project 5 (choice) Proposal Due
Week 9 Server Side  
Week 10 Sensors and Hardware Project 4 (full) Due
Week 11 User Interface  
Week 12 User Interface  
Week 13 Design  
Week 14 Advanced Platform, AR/VR  
Week 15 Presentations Project 5 (choice) Due

Grades

Grades for the course will be based on an simple accumulation of points from the projects.

Schedule of Point Accumulation for Final Grade:

Points Grade
13 - 14 A
11 - 12 B
8 - 10 C
6 - 7 D
0 - 5 F

Late Policy

Extensions on projects, presentations, and examinations will not be granted except in the case of an emergency. Technical difficulties do not constitute an emergency. Late submissions will be penalized. Lateness will be determined by submission time and the assigned due date.

Accommodations and Inclement Weather

Should you need services or accommodations due to a disability to fully participate in the class, please speak with the instructor or contact the Office of Academic Support for Students With Disabilities, Luther Bonney 242 on the Portland Campus.

Class cancellations are posted on USM’s website (http://usm.maine.edu) and on the Storm Line at 780-4800. You can also receive cancellations and emergency information from the USM Alert text messaging system (http://usm.maine.edu/usmalert).