Rea - Android Course (Proposal)
Line 63: | Line 63: | ||
* Working Android Application | * Working Android Application | ||
* Project Website and Wiki | * Project Website and Wiki | ||
− | * Project | + | * Project Documentation |
* User Guide | * User Guide | ||
Revision as of 22:09, 10 January 2016
Contents |
Summary
Run a semester-long project in an upper-level Android development class.
This project will entail the use of many open source technologies to build an Android application (app) that interfaces via APIs with an Ushahidi (https://www.ushahidi.com/) server installed on OpenShift in order to enable a local community organization (to be determined) to track and report occurrences throughout a geographic area. Currently, we are looking at projects involving campus sustainability programs, voter registration initiatives, among other projects. Most likely this will be one large team of 10-15 students each performing various roles and contribution distinct modules to the overall Android Project.
This project will not only expose students to working with a FOSS community but also enable a local organization to experience the power that HFOSS can bring to the community.
Target Venue
CIS4700 Mobile Commerce Development
This is an advanced mobile programming course that focuses on advanced mobile commerce, or m-commerce, programming to include location-based services, mobile payment services and transactions, as well as designing and delivering advanced content and advertising for smartphones, tablets, and other mobile devices. Because m-commerce is constantly evolving, this course will integrate new topics as necessary as reflected in the mobile application development area.
Android App Development with Ushahidi
In addition to Android development and programming labs throughout the semester, a student team develops their own Android application throughout the course of the semester.
Student team leaders must convince others in the class to join their team according to the project being pitched to the class. Student teams then work to design, develop, present, and implement the Android application over the course of the semester.
Past student teams produced various mobile games, K-5 learning tools, bus route tracking, and customer loyalty apps.
However, this semester we will work as one team to create an HFOSS project for the community implementing an Android App via API connections to our own Ushahidi server.
Target Student Audience
This is an advanced programming and development course. Senior information systems and computer science majors take this course.
It is an elective course for majors and a required course for Business Mobile Development minors. CIS4700 requires students pass the pre-requisite course CIS2610: Business Mobile Programming.
Learning Activities
An assortment of smaller activities will contribute to the project's overall goals.
These are in addition to labs in the course that focus on particular advanced Android programming techniques and approaches such as encryption, network management, lifecycle control, etc.
Lab assignments will relate to the overall project needs and can be shared on the Wiki as part of the overall deliverable.
All other activities listed below are planned and will have deliverables associated with them and shared via the Wiki.
Community Interaction
- Understand FOSS communities: We will take time to explore all the Ushahidi offerings and compare it to other FOSS communities. Each student will write a short essay within the class project Wiki discussing this.
- Understand FOSS development processes: We will attempt to mirror FOSS processes using GitHub, collaborative technologies, and agile programming.
- Participate in FOSS communities: Students will at a minimum take part in IRC or other weekly Ushahidi discussions at least twice during the semester and write about it in the class project Wiki or their blog.
- Master a FOSS development processes: Perhaps not completely master, but a reflective paper at the end of the semester on the project discussing what the student has learned.
Technology Implementation
In addition to the focus on developing advanced Android programming techniques, approaches, and designs such as fragment use, communication tools, and encryption, students will need to complete assignments and exercises that allow them to experience the following:
- Basic Git Usage with GitHub
- Advanced Version Control with GitHub
- Using Git with Android Studio
- Use Dia for App Architecture and Design (This will depend if students can install the software.)
- Install, document, and use a Wiki on OpenShift
- Install, document, and use an Ushahidi server on OpenShift
- Program, document, and implement an Android App using Ushahidi APIs
Project Deliverables
- Working Android Application
- Project Website and Wiki
- Project Documentation
- User Guide
Evaluation
Planned
- Students are required to fill out a course survey at the beginning and end of the semester to note if learning occurred.
- Use CATME (http://info.catme.org/) to help students understand how well they perform on the team.
- Rubrics and associated feedback on all project assignments as well as labs.
POSSE Collaboration
- Willing to work with POSSE to implement more across the board evaluation measures that will interface with larger FOSS learning questions and community.
Schedule
Spring2016
- Develop assignments and materials
- Run the project
- Post updates to blog
- Submit Proposal to AMCIS
Summer2016
- Finalize materials
- Post all materials to Wiki
- Create section in the Teacher's Guide at http://teachingopensource.org
- Travel to AMCIS 2016 and present findings
Budget
Spring16
$1500: Develop Materials (Assignments, Rubrics, Videos, etc.), Run the Course, Post Updates to Blog
Summer16
$1500: Finalize Materials and Post to Wiki and Teacher's Guide
Travel (Summer16)
$1000: Defray cost of travel to AMCIS 2016 (http://amcis2016.aisnet.org/) to present in the SIGED Track.
Contact Information
- Alan Rea (<rea> at <wmich> dot <edu>)