Software Development for Social Good

15-239 (Spring 2014)

 

Website:

http://www.cs.cmu.edu/~239/

 

Units:

You will earn 9 units for successfully completing this course.

 

Lectures:

Class meets Mondays and Wednesdays

10:30am – 11:50am

GHC 5222

 

Instructors:

Name

Office

Phone

E-mail

David Kosbie

GHC 5001

8-8034

koz@cmu.edu

M. Bernardine Dias

NSH 2105

8-9365

mbdias@ri.cmu.edu

 

Course Assistants:     

Name

Andrew Id

Salem Hilal

shilal

Jeff Mich

jmich

 

 

Course Description:

CMU has extensive global service learning opportunities promoting the advancement of social causes through technology. In this real-world project-based course, we will work closely with some of these projects to produce free and open-source software products of real and immediate value. We expect many but not all projects to include mobile web apps, though target platforms will be selected to best suit the projects we are servicing. Topics include elements of project management, design, and software development practices, tools, and techniques as required. Students will work in teams across all phases of product development, including requirements gathering, user experience design, software design, implementation, test, deployment, support, and maintenance. We aim to provide opportunities for students to interact with end-users who will directly benefit from these projects. Additional topics may include support for large-scale open-source software projects which are compatible with the goals of this course. In keeping with the goals of the course, all content created by students and faculty in this course will be released under free and open-source licenses.

 

Course Objectives:

The primary objective of this course is:

á      To design, implement, test, and deploy software to have a positive impact on the lives of people in developing communities and people with disabilities.

This entails a number of additional course objectives as follows:

á      Teach practical skills necessary to interact with field researchers on the topic of innovating for underserved communities.  Depending on conditions, students may also be able to interact directly with members of our targeted underserved communities.

á      Introduce students to a fairly complete product cycle, including needs assessment, literature review and competitive analysis, storyboarding, iterative design and development, testing and evaluation, dissemination, and technology transfer.

á      Enhance studentsÕ basic software development, teamwork, writing, and presentation skills, particularly as part of an interdisciplinary team.

 

Course Structure:

This course will be structured as follows:

á      Students will work in small teams of about 4 students each, as determined by the course faculty.   There will be no exceptions to this policy.

á      Project 1:  In the first half of the semester, all student teams will be working on different aspects of the same problem.  Specifically, we will all be collaborating to create a new and improved web portal for cross-cultural educational games, along with a collection of open-source sample games and also some open-source sample educational content.  These games will be of sufficient quality that our target communities will be able to use them effectively.  In addition, they will be written with an eye towards encouraging future software developers to create their own games and add them to the web portal.

á      Project 2:  In the second half of the semester, each student team can undertake their own project (*), subject to faculty approval.  We will have fairly limiting rules on what will be approved, with a strong eye towards assuring a high likelihood of doing actual social good, and not simply building interesting projects and prototypes.  We will also provide a number of project ideas that students may opt to pursue.  (*) Note:  teams that do not complete Project 1 to sufficiently high standards will instead be required to use the second half of the course to raise the project to those standards.

Office Hours:

In general, send the instructors or course assistants email offering a few times you are available if you wish to meet with them, and we will arrange to meet with you. The course assistants will additionally plan to meet regularly (at least once weekly) with each team, and may also schedule regular office hours after consulting with the class.

 

IP Policy:

In keeping with the mission of this course, all intellectual property (IP) created by faculty or students as part of this course will be licensed with an appropriate open-source license.

Grading Policy:

Your grade will depend entirely on your performance on assignments and class participation. In all cases, the instructorsÕ decision on the grade is final – you may ask for clarification or supply additional information in support of a request to change a grade, but any modification is entirely at the instructorsÕ discretion.

 

The grading scheme for the 15-239 course is as follows:

Class Participation

25%

    In-class presentations, demos, and
    other participation (including occasional
    non-project homeworks)

15%

    Peer feedback

10%

Assignments (Total)

75%

    Project 1

45%

    Project 2

30%

 

Collaboration:

In general, we encourage collaboration in this course.  In fact, a key learning objective in this course is effective team work. In all assignments, all contributions from people outside the team should be clearly acknowledged.

 

Late Work:

Due to the short duration of this course, we cannot accept late work.  So any work turned in late will automatically get a grade of zero unless prior permission has been obtained from the instructors of the course.  Note that late work of an individual affects the performance of the whole team so it is important to make sure you complete your work on time.

 

Acknowledgements and References:

Always make sure you acknowledge others who help you in any written or oral assignment.  In general, you should be generous in acknowledging contributions of others. Also make sure you include adequate references to publications, communications, and websites that you use to support different claims in your written and oral assignments. Most arguments are made stronger by supporting citations.  Plagiarism is a form of cheating and will be treated according to Carnegie Mellon University policies on cheating as specified in your Student Handbook.  All contributions to any assignment from external sources should be clearly cited in the written document or presentation. 

 

Attendance and Class Participation:

You are required to attend classes unless otherwise informed by your instructors. We will be taking attendance, and your attendance and participation will impact your final grade.  Except in emergencies, you will only be excused from class if you inform the instructors at least 90 minutes before class time and get instructor permission to miss that class due to a valid reason.