Syllabus


Course Overview

This special topics course will allow students to explore issues in designing and writing mobile applications and to gain experience programming cross-platform mobile and web applications. Topics will include the software development process, memory management, user interface design, user interface building, input methods, data handling, connecting to databases, native app development (for iOS and Android), and possibly other specifics such as GPS and motion sensing, and security issues related to mobile device software.

This course will be conducted as a mixture of an advanced seminar course and a software development work environment. Students will work in teams on various projects (or on different stages of a single, larger project), will research and present various topics, and will document and reflect on their learning and their software development progress throughout the course.

Some of our core activities will include creating cross-platform mobile and web applications using HTML5, JavaScript, JQuery, Node.js, JSON, and MySQL. We will examine other platforms for creating mobile applications, discuss their advantages and disadvantages, and learn how to convert cross-platform into native apps for Android and iOS.

Objectives:

The objectives of this course are to help you:

  1. Further develop software development skills (programming & teamwork),
  2. Develop familiarity with some of the tools and techniques used in developing mobile applications,
  3. Explore design issues involved in mobile applications,
  4. Develop and apply professional life-long learning skills. You will:

Instructor:  

Readings:  

Prerequisite:   Data Structures. Students must have senior standing to take COMP490.


Topics:


Activities and Assessment:

Students will engage in a number of activities, including research and reading outside of class, presenting concepts in class, providing feedback on others' presentations, participating in class discussions, individual projects, group project(s), and maintaining a COMP 489/490 Growth Journal.

Individual tasks or assignments will be graded on the following scale:

Meets (High) Expectations 4 A
Falls Short of Expectationa 2 - 3 B - C (C - B)
Poor Effort 1 D
Stands Out 5  

Individual grades will be combined and weighted as follows:

Topic and concept assessments 20%
Hands-on Mobile work and Growth Journal 45%
Contributions to the class
    (e.g., presentations,audience reflective responses,
    class discussions, collaborative hands-on work)
35%
Details about the format for presentations, reflective entries, the growth journal, and the final reflective essay, as well as reading assignments, announcements, links to class presentations, and other material, will be made available on the COMP 489 Moodle page. Students are responsible for checking these resources frequently.

Attendance and Participation:

Since this class will be a mixture of an advanced seminar and a collaborative software development team, regular attendance and fully engaged participation is crucial to everyone's learning and will weigh heavily in your grade. Please be sure to talk to me in advance if you must miss any class meetings. Active participation in the class means being on time, being prepared, listening to others, contributing ideas of your own, and asking questions as they come up. Student presentations in this course will be as important as presentations by the instructor; you should obviously prepare for your own presentations carefully, but you should also attend to your classmates' presentations thoughtfully and actively.

Meeting deadlines will also be very important -- in a collaborative setting such as this class, it is essential that you be ready with presentations and complete software development assignments in a timely fashion. Programming projects, in particular, are time-consuming and difficult to predict, but time-management skills are as critical in industry as they are in college.

Collaboration and the Honor System:

This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility. In particular, academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor code. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.

Software development projects: Most of the software development in this class will be highly collaborative. You will be assigned to groups for these assignments, and working effectively as a team will be an important component. Your responsibilities under the Honor Code include contributing to the team in all ways, documenting everyone who worked on any piece of code, and acknowledging all help you and your team receive from any source, including books, articles, classmates, your instructor, etc. Discussing group assignments with members of other teams is allowed in this class. I may occasionally ask all the members of a group to evaluate the effort and effectiveness of the other members of their group.

Class presentations should represent your own analysis and synthesis of ideas drawn from one or more sources. Your presentation should indicate clearly the source(s) you used or about which you are reporting. You may work on presentations collaboratively or individually, depending on the topic. Be sure to discuss any proposed collaborations with me in advance.

Growth Journals, Reflective Responses, and the Final Reflective Essay must be entirely your own work.


Any student with a disability who needs an accommodation or other assistance in this course should make an appointment to speak with me as soon as possible.