CSCI 352
Mobile Software Development

Time

MWF 12:10pm - 1:00pm

Location

MCREY 314

Instructor

Dr. Mark Goadrich
goadrich@hendrix.edu
(501) 450-1367
Office Hours


Overview

Introduction to the computer science concepts necessary for the development of software systems targeted at mobile devices. Further exploration of object-oriented development and testing concepts introduced in CSCI 151. Emphasis is placed on user-centric interface design and writing precise requirements. Projects also incorporate network programming and mobile device sensor data. Assignments emphasize the integration of multiple concepts when developing realistic software applications. Several projects are completed in teams.

Learning Goals

Learning goals help you set expectations for your progress and growth in this course. This course has six learning goals.

  Learning Goal Career Competency
LG1 Understand the benefits and limitations of programming in mobile environments Technology
LG2 Use test-driven development and beta testing feedback to analyze mobile applications and graphical user interfaces Critical Thinking
LG3 Employ multiple levels of algorithmic and data abstraction to manage system complexity Technology
LG4 As part of a team, develop robust mobile applications that successfully enable their users to achieve their goals Teamwork & Career / Self-Development
LG5 Employ written and oral communication through code sharing, peer review, and community partner presentations Communication
LG6 Understand the social and ethical context of mobile application development Professionalism & Communication


The skills you will nurture through this course are important to future employers. While you may find opportunities during the semester to grow in all eight Career Competencies, the learning goals of this course most closely relate to the following competencies:

Career & Self-Development
Career & Self-Development

Hendrix students proactively identify and articulate their skills, strengths, knowledge, and experiences relevant to their career goals. They identify areas necessary for personal and professional growth, navigate career opportunities, and network to build relationships.

Critical Thinking
Critical Thinking

Hendrix students exercise sound reasoning to analyze issues, make decisions, and overcome problems.

Communication
Communication

Hendrix students articulate thoughts and ideas clearly and communicate their findings effectively and persuasively through written, oral, experiential, visual, or other appropriate methods.

Professionalism
Professionalism

Hendrix students demonstrate personal accountability and effective work habits. They demonstrate integrity and ethical behavior, act responsibly with the interest of the larger community in mind, and are able to learn from their mistakes.

Teamwork
Teamwork

Hendrix students build and maintain collaborative relationships to work effectively toward common goals. They appreciate diverse viewpoints & understand the importance of shared responsibilities.

Technology
Technology

Hendrix students understand and leverage technologies ethically to enhance efficiencies, complete tasks, and accomplish goals.

For assistance in communicating these skills to future internship sites, employers, and/or graduate and professional schools the Office of Career Services is happy to assist.

Textbooks

Software

In-Class Code

When we write code together in class, it will be posted here!

Schedule

This is where you will find all of your assignment due dates.

Coursework

This course will include Discussions of software engineering principles, Projects to build your development skills, community membership through Pull Requests, and instructor office-hours Checkins.

Discussions

We will have regular group discussions in class. You will work together with a team to answer a set of questions based on the daily readings.

# Text
1 Unit Testing - Ch 1-3
2 Unit Testing - Ch 4, 6.1-2
3 Software Design - Ch 1-3
4 Software Design - Ch 4-6
5 Software Design - Ch 7-8
6 Software Design - Ch 14-16
7 Software Design - Ch 17-18
8 Software Design - Ch 19, 21-11
9 Unit Testing - Ch 8.1,2,5 and Ch 11

A discussion will be Partially Complete when your group has submitted their form and answered questions in class based on their work. If you are absent from a discussion, you can submit this form individually after consulting with Dr. Goadrich.

A discussion will be Complete after submitting a thoughtful Personal Reflection Form after the class discussion.

Projects

You will have seven projects in this course. These projects will cover concepts we have discussed in class. You will be graded not only on correctness, but also technique, documentation and evaluation of your solution. Further details on the grading standards and handin instructions for each project will be given when they are assigned.

Getting Started

Four projects involve developing foundational skills in mobile programing.

# Name
1 Click Me
2 Unit Testing
3 To Don’t List
5 Firebase Setup

You must work individually on these four projects. You may discuss concepts and ideas with your classmates, but the code you turn in must be your own. These projects lay the foundation for later work, and each student will need to spend time individually building these skills before they can be a contributing member of a larger development team.

Using Mobile Technology

We will also cover projects demonstrating different aspects of mobile technology.

# Name
4 Sensory Overload
6 Cloudy Outlook

These projects involve large amounts of teamwork. Collaborating with peers from a variety of backgrounds and experiences helps you actively learn and practice teamwork and networking skills in order to achieve strong outcomes; you gain valuable experience both in leading and following. Most work sites are inherently collaborative settings. The more experience you have in working with others to reach a goal, the better. Active listening, respectful communication, and understanding when to take the lead and when to act upon other’s leadership are valuable skills.

Building for Community Partners

For the final project, you will work with a team to develop a larger-scale app for a client who is wishing to incorporate an app related to their area of expertise.

# Name
7 Final Project

You will iterate the app multiple times to improve the app quality and increase the fidelity to the client’s expectations. The ultimate goal is for the apps you develop to be deployed to the app stores.

Pull Requests

You will learn how to participate in open-source software developent by updating and modifying the code of your peers in the small ecosystem of this course. See the following for more information about pull requests.

Participating in peer code reviews and making pull requests develops your ability to give and receive feedback in an appropriate manner; provides a deeper understanding of various issues by contemplating the work of others; and helps you learn about accountability and quality of work. You will have more confidence and nuance to give and receive feedback for the improvement of a project, your performance or that of others, etc. at your future workplace.

Checkins

Three times throughout the semester, you are expected to make an office hours appointment and check in with me about the course. This will be conversation and feedback about your current progress and understanding. Ideally, these should be scheduled during the weeks shown on the course calendar.

Policies

The following policies will guide our learning structure this semester.

Due Dates

[Adapted from Spencer Bagley and David Clark, via Robert Talbert]

CSCI 352 uses a real-world policy on due dates—but this may not mean what you think! In the real real world, due dates exist but they are often not ironclad. Assignments have due dates to help you make progress in the course and solidify your knowledge before moving on to something new. Your life and schedule may not perfectly coincide with the due dates I have chosen. If you need more time to get the job done well, you email whoever set the deadline to ask if you can have more time. Studies have shown that deadline extension requests—in moderation and when truly needed—often lead to better employee evaluations (not to mention better work). [See Go Ahead and Ask for More Time on that Deadline by Ashley Williams.]

If you need an extension on a due date, email me and explain what you need, and it will probably be fine. It helps if you propose a concrete new deadline (e.g. “I can get it done by 5pm on Wednesday”). If you ask for lots of extensions, we’ll work together to find a way to help you keep up. Note, however, that late submissions may not receive feedback as quickly as on-time submissions.

If you have significant extenuating circumstances that cause you to miss multiple deadlines, please come to office hours to discuss broader accommodations. I’m happy to be flexible, but it helps to know what you need so I can figure out the best way to help.

If you would like to improve an assignment after it has been graded and improve your grade, you may revise and resubmit the assignment until you do. This must be within two weeks of receiving feedback. If you need more than two weeks, you must schedule a meeting with me to discuss your reasons for the delay.

AI Usage

TBD

Attendance

Attending class and being an active participant in the class community is one of the most important contributors to your learning at Hendrix. Attendance is especially important in this class since you will often engage in group learning activities. Active participation is expected in order to achieve higher grade levels in the course.

If you know that you will be absent, please email me so that we can find accomodations. If there is an emergency, please get in touch with me as soon as is possible once the emergency is resolved. I trust you to be honest with me about your reasons for the absence (I do not need details), and honest with yourself about if you truly need to be absent.

Grading Specifications

A Level Work

B Level Work

C Level Work

D Level Work

External Policies

There are many ways that the material in this course can be supported by other areas on campus. We also list external resources that you might need as you navigate this semester. Life can get complicated: please take care of yourself, and reach out when you need help.

Library

Bailey Library’s mission is to collaborate and empower all members of our community so that they become their best selves, cherish the scope of human knowledge, and positively contribute to the world. Whether face-to-face or remote, librarians are happy to help locate quality resources supporting research and classroom work and to assist with the critical evaluation of academic information. Librarians and Library Associates provide individual research assistance by appointment and video chat or by email. The library building is open Mon-Thurs 8 am-12 midnight, Sat 12 noon-5 pm, Sun 4 pm-12 midnight, and access to the library’s online resources is available 24/7. You can visit the library’s website for more information, to book an appointment, and to access the library’s Discovery search, Class Guides, and databases.

Writing Center

The Writing Center is a community of peers ready to assist you with your writing projects, in all genres and fields, and at any stage of development. We work with you in one-on-one meetings that you can book in advance or request during our office hours. Virtual appointments are available for medical reasons or by special arrangement. To book appointments, and for more information, visit hendrix.edu/writingcenter or contact pruneda@hendrix.edu. We look forward to working with you!

Diversity Statement

Hendrix College values a diverse learning environment as outlined in the College’s Statement on Diversity. All members of this community are expected to contribute to a respectful, welcoming, and inclusive environment for everyone. If you believe you have been the subject of discrimination, please contact the Interim Assistant Vice-President & Dean of Students, JB Banks, at BanksA@hendrix.edu or reach out via e-mail at titleix@hendrix.edu. If you have ideas to improve the classroom experience’s inclusivity, please feel free to contact this professor. For more information on Hendrix’s non-discrimination policies, please visit Hendrix.edu/nondiscrimination.

Health & Wellness

If you are struggling with your health in a way that makes it difficult for you to fulfill your responsibilities in the course, please let me know! I would love to work with you to come up with reasonable and realistic accommodations to help you succeed in the course. There are also several resources available to all Hendrix students, even remotely:

Learning Accommodations

It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Any student who needs accommodation in relation to a recognized disability should inform the instructor at the beginning of the course. Students should also contact the Office of Academic Success (505.2954; academicsuccess@hendrix.edu) to begin the accommodation process.

Title IX and Discrimination

Title IX Reports of Discrimination Based on Sex, including Sexual Harassment, Sexual Assault, Stalking, Dating Violence, or Gender-Based Harassment Statements to Consider for your Syllabus: All faculty and staff at Hendrix College are designated as a “Responsible Employee” and are mandated reporters required to report Sexual Misconduct. Hendrix College requires all faculty and staff to report sexual harassment, sexual assault, dating and domestic violence, and stalking against a student or employee to the Assistant Dean of Students, Paul Crawford, at crawfordp@hendrix.edu.

To report any Title IX incident or concern, complete the Incident Reporting Form.

You may also contact Public Safety at 501-450-7711, who can assist you in completing a report.