Software Development for Social Good
15-239 (Spring 2014)
Website:
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 |
|
M. Bernardine
Dias |
NSH 2105 |
8-9365 |
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 |
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.