Skip to main content

COMP 489/490: Mobile Application Development & Senior Seminar

Course Overview

This special topics course (COMP 489 section) and senior seminar (COMP 490 section) will explore the world of mobile application design and development. Throughout the course, students will engage with key concepts in mobile app design and the software development process, native and cross-platform development tools, user interface design, data management and security, and other topics as time permits, while critically analyzing the ethical responsibilities of developers.

A major component of the course involves hands-on experience where students will work in teams to develop their own mobile application, applying the concepts covered in lectures and discussions, integrating the technical, ethical, and legal aspects of mobile app development.


Logistics

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

Instructor:

Goals and Objectives

This course will have both conceptual and hands-on components. Students will research and present various topics, install and work with real-world projects, and document and reflect on their learning and their software development progress throughout the course.

Seniors taking the course as a senior seminar (COMP 490) will play a greater leadership role in the design and execution of the course. (See the COMP 490 Senior Seminar description for details.)

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:
    • Learn a new realm of programming on your own or in a group using professional resources,
    • Research unfamiliar topics and give presentations on them to the class,
    • Provide analytical, summary, and reflective statements documenting software development progress and knowledge you have acquired of new topics.

Readings

Books and resources will be identified throughout the quarter and collected in a growing class bibliography on the Teams site for this class.


Senior Seminar

Each year the Computer Science department offers one or more senior seminars focusing on team-based project development within a specific context (e.g., mobile, game, web, or open-source software development). This year we will have two seminars, one on game design and development, and this one, on mobile application development. In addition to collaborating on a specific project, students present material on a wide range of topics, including software engineering methodologies, web development, professional ethics, and current trends in languages and software development tools.

As a senior seminar, the course has a strong problem-solving focus, encourages student participation and leadership, develops communication skills, and stresses integration of the student's full undergraduate experience.

Student Agency

Students play a very strong leadership role in this class, including presentation of course material, gathering information about the course project(s), influencing the direction and progress of the project(s), and working collaboratively to achieve an outcome.

Presentations

Students present a significant percentage of the material covered in class, on topics such as traditional and agile software development methods, design patterns, database concepts, web-based development languages and tools, version control, testing tools and techniques, open-source practices, current trends, and professional ethics.

Projects

Each year the instructor chooses a topic and one or more possible project ideas. Within the constraints imposed by those initial decisions, student decisions within the class may affect the choice of project, development language, or design methodology, and students always lead the requirements gathering phase and project design for the project implementation.

Communication Skills

Students employ and further develop their communication skills through formal class presentations, working with a community representative to develop project requirements, teamwork throughout the quarter as part of project implementation, presenting weekly oral status reports, developing internal and external documentation for their project, and writing reflective papers on the process of project development, the responsibilities of computer scientists, and the ways in which this course integrated their undergraduate experiences inside and outside the major.

Integration

The project and presentations that make up this course require students to draw on the skills and techniques they have acquired throughout their undergraduate career, not only from courses in the major, but often also from their study of other fields, internships, SIPs, and other outside activities. In addition, the course gives students a structured environment in which to practice and reflect on the critical life-long learning skills on which computer scientists depend, including learning new languages, methodologies, and frameworks. Thus, this encourages integration of the student’s past, present, and future, applying previous experiences to a current project that models future professional or research environments.


Topics

  • Mobile development tools:
    • User interface design
    • User input, menus, widgets
    • Storing and retrieving data - locally and with a server
    • Databases
    • Ethical & legal issues
    • Native vs. cross-platform apps
  • General software development topics:
    • Major development approaches ("agile" and "rigid")
    • Testing and refactoring
    • Database Concepts
    • Usability, user stories, use cases
    • Version control
    • Teamwork (roles, tasks, team dynamics, team management)
    • Good citizenship, standards, expectations, ethical & professional standards
  • Additional topics as driven by student interest

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, engaging in projects, and reflecting on one's own progress and growth.

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

  • Exceeds Expectations 5 pts.
  • Meets Expectations 4 pts. (A)
  • Near Expectations 3 pts. (B)
  • Below Expectations 2 pts. (C)
  • Poor Effort 1 pt. (D)
  • Not Done 0 pts. (F)

Individual grades will be combined and weighted as follows:

  • Topic and concept assessments 10%
  • Individual growth as evidenced through bi-weekly reflections, project contributions & leadership 40%
  • Contributions to the class via presentations, audience reflective responses, class discussions, and more 45%
  • Attendance 5%

Details about the format for presentations, reflection entries, discussions, and the final project as well as reading assignments, announcements, links to class presentations, and other material, will be made available on the COMP 489/490 Course Schedule or via Teams.


Community Guidelines

The following are a set of guidelines to create an inclusive and supportive learning environment in our class. It was adapted from the Center for Research on Learning and Teaching (CRLT) at the University of Michigan, by Dr. Josephine Mitchell.

Take care of each other

Get to know your classmates and call each other by your preferred names and pronouns.

Be an engaged scholar

Complete the pre-class readings and assignments, be on time to class, and engage with your classmates, professor, and the material in class.

Respectfully contribute to the learning environment

Treat each other with kindness, listen and develop awareness for ideas and opinions that are different from your own, be accountable to each other in discussions and group work, and foster an environment where everyone feels welcome.

Adopt an open mindset

Learning is a process! Strive for intellectual humility. Recognize that we will make mistakes as we learn. Think critically about how your perspectives have been shaped and be open to exploring new ideas and points of view.

Share responsibility for welcoming everyone to participate

If we tend to have a lot to say, make sure we leave space to hear and learn from others. If we tend to be quieter in group discussions, let us challenge ourselves to contribute so others can learn from us.

Challenge the idea, not the person

It is expected that different opinions and perspectives will be shared during discussions. We will be respectful of each other when debating an idea that may differ from our own. Personal attacks, divisive language, etc. will not be tolerated in our class.

Be accountable

We are in control of our learning and will get out of it what we put in. When working in groups, we will respect other group members and push ourselves to contribute to the group in ways that stretch our learning. We will maintain the highest standards of Academic Honesty and give credit to ideas that are not our own.


Attendance and Participation

Since this class will be highly participatory and collaborative, 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.

To create an inclusive and supportive learning environment, this class has adapted the CRLT Community Guidelines.

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 permitted bounds and acknowledging any help from others or contributions from other sources.

Software development projects: Most of the development (software, research, and so on) in this class will be highly collaborative. 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, websites, 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 their own work and that of others in the group; anyone who feels that they are being put at a disadvantage because of lack of engagement of someone else in their group should talk to me about it.

Class presentations: 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.

Individual work: Formal topic assessments, presentation reflective responses, and personal growth reflections must be individual efforts.