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 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 |
When we write code together in class, it will be posted here!
Coursework
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. Therefore, each student starts the course with four late days to spend throughout the semester as they wish. Simply inform me any time prior to the due date for an assignment that you wish to use a late day and the reason you need an extension; you may then turn in the assignment up to 24 hours late. Multiple late days may be used on the same assignment. There are no partial late days; turning in an assignment 2 hours late or 20 hours late will both use 1 late day. After you have used up your four late days, you must schedule a meeting with me to earn more late days, otherwise late assignments will receive at most half credit. All work must be completed the day before final grades are due.
Note: Late days are intended to cover both normal circumstances (you simply want more time to work on the assignment) and exceptional circumstances (you get sick, travel for a game or family obligation, etc.).
Important: You must be in communication with me anytime an assignment is late.
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. There is no deadline for resubmitted assignments.
However, the above only applies if you made a reasonable attempt at the assignment the first time. You cannot turn in a half-finished assignment before the deadline and then “revise” it by completing the rest. If your assignment is only half-finished, you must request use late days as described above.
Important: All work and revisions must be completed the day of the final exam period for this course at 5pm.
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.
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.
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.
You will have five 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.
You must work individually on the first two 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 our 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.
Next, we will cover two projects demonstrating different aspects of mobile technology. 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.
These projects will also include making pull requests, peer code reviews, and reflections on the software development process as facilitated by GitHub.
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.
In this 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. 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.
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.
A Level Work
- Complete 2 Getting Started Projects
- Complete 2 Mobile Technology Projects
- Complete Final Project
- Complete 8 Reading discussions
- Complete 3 Pull Requests
- Complete 3 Checkins
B Level Work
- Complete 2 Getting Started Projects
- Complete 1 Mobile Technology Projects + 1 Partially Complete
- Complete Final Project
- Complete 7 Reading discussions + 1 Partially Complete
- Complete 2 Pull Requests + 1 Partially Complete
- Complete 2 Checkins
C Level Work
- Complete 2 Getting Started Projects
- Complete 1 Mobile Technology Projects + 1 Partially Complete
- Partially Complete Final Project
- Complete 6 Reading discussions + 1 Partially Complete
- Complete 1 Pull Requests + 2 Partially Complete
- Complete 1 Checkin
D Level Work
- Complete 2 Getting Started Projects
- Partially Complete 2 Mobile Technology Projects
- Partially Complete Final Project
- Complete 5 Reading discussions + 2 Partially Complete
- Partially Complete 3 Pull Requests
- Complete 1 Checkin
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
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
Hendrix students exercise sound reasoning to analyze issues, make decisions, and overcome problems.
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
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
Hendrix students build and maintain collaborative relationships to work effectively toward common goals. They appreciate diverse viewpoints & understand the importance of shared responsibilities.
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.
Commitments
It is my ultimate goal for this course, and my teaching, to
develop your academic skills, advance your learning
of computer science concepts, and support the liberal arts in general. To do so
will require commitments from myself and from you toward meeting this goal.
Active Participation
I will be prepared and on time for class each day, ready to use class time
to help you understand the course material. I will respectfully listen to,
understand, and answer questions asked in class.
You are expected to attend class and actively participate in discussions every day,
answering questions, asking questions, presenting material, etc. Your
participation will be respectful of your classmates, both of their
opinions and of their current point in their educational journey, as we
each approach the material with different backgrounds and contexts.
Constructive Feedback
I will keep office hours and be available for outside appointments, and respond
to emails within one business day (not including weekends).
I will provide feedback on group presentations within one day. For exams, projects,
and homeworks, I will provide graded feedback within two weeks.
You are encouraged to provide constructive comments for improving this
course for furthering your learning throughout the semester.
There will be an opportunity for
anonymous course feedback
at the end of the term, in which I hope you all participate. Through your
feedback I can improve this course and others for future students.
Academic Integrity
I will abide by the above syllabus and grade your work fairly.
As stated in the Hendrix Academic
Integrity Policy, all students have agreed to adhere to the following principles:
- All students have an equal right to their opinions and to receive constructive criticism.
- Students should positively engage the course material and encourage their classmates to do the same.
- No students should gain an unfair advantage or violate their peers' commitment to honest work and genuine effort. It follows that any work that a student submits for class will be that student's own work. The amount of cooperation undertaken with other students, the consistency and accuracy of work, and the test-taking procedure should adhere to those guidelines that the instructor provides.
- Members of the Hendrix community value and uphold academic integrity because we recognize that scholarly pursuits are aimed at increasing the shared body of knowledge and that the full disclosure of sources is the most effective way to ensure accountability to both ourselves and our colleagues.
More details of our departmental stance on integrity can be found in the
Hendrix
Computer Science Academic Integrity Policy
Learning Accomodation
I will make this classroom an open and inclusive environment,
accommodating many different learning styles and perspectives.
Any student
seeking accommodation in relation to a recognized disability should inform me
at the beginning of the course.
It is the policy of Hendrix College to accommodate students with disabilities, pursuant
to federal and state law. Students should contact Julie Brown in the
Office of Academic
Success (505.2954; brownj@hendrix.edu) to begin the accommodation process.
Physical and Mental Health
I am willing to work with you individually when life goes off the rails.
Coursework and college in general can become stressful and overwhelming, and
your wellness can be impacted when you least expect it. You should
participate in self-care and preventative measures, and be willing to
find support when you need it.
- The Office of Counseling Services
welcomes all students to see a counselor
in a private and safe environment regardless of their reasons for making an
appointment. Counseling services are available to all Hendrix students
at no cost.
- Conway Regional Hendrix Medical Clinic
provides free healthcare to Hendrix students. Services are provided by an
Advanced Practice Registered Nurse (APRN) in collaboration with a local physician.
The Offices of Counseling Services and Student Health Services are located in the white house
behind the Mills Center for Social Sciences at
1541 Washington Avenue.