Skip to content

What C4G has done for me

December 7, 2012

One gripe that I always had with my choice of study at Georgia Tech was the fact that I could not envision how I could directly use my programming and media skills towards making the world a better place. My environmental engineering roommate has been working on a cheap, sustainable gas stove model that could be used by rural tribes in Africa over the past year. A biomedical engineering friend was part of the Rehand team that won the Inventure prize earlier this year for developing an at home hand rehabilitation device. I have several friends in medical school right now well on their way to the most traditional path of helping other people. And even in the liberal arts, there are obvious paths one could take to push forth initiatives in civil rights and sustainability.

As a computational media major, I can create “pretty” things and code. On a greater scope, I can justify that I’m making the world a better place by making better games, films, and witty posters that make people happy.

But taking this class has broadened my perspective and pushed the boundaries in how I can give back with the skills I’ve developed here at Georgia Tech. It seems so obvious now that everything computer scientists do for the corporate world can be applied to the needs of humanitarian organizations and non-profits. They need databases and systems, too. They need better, stronger modes of communication, too. And they also need human-computer interaction to bridge the gap between technology and people.

It has been incredibly inspiring to see the work that my classmates and my Act Early team have accomplished over the past semester. This class has been one of the most gratifying and rewarding classes I’ve ever taken, if not the most during my time here at Tech. Besides the general feel good feeling of working on something that helps others, I’ve also received a personal gain as it was my first direct, real world application of UI/UX and human computer interaction. Through this class and the part time internship I did this semester, I have a more clear direction of what I want to do with my degree in the future and how HCI might tie into that.

I took this class to fulfill my senior design requirement, but I’m leaving this class with much more than I ever expected. Like any other class, I began my semester with the intention of making the ‘A’. But over the past weeks, it’s turned into something I truly want to spend my time on because it helps parents help their children, because it supports the hard work my team members have put in, and because I really enjoy the nature of the work I’ve been doing. I think the length of this blog post is a true testification to this.

 

-Priya Kurani
“Learn the Signs, Act Early” Mobile Application

Advertisements

INAR Project

December 7, 2012

This semester we worked on a system called the Indian National Autism Registry for an organization called Action for Autism.  Action for Autism is an organization based in India whose goal is to “put autism on the Indian map.”  Our project was an online survey tool that allowed the parents of a person with autism to fill out surveys collecting information about the person’s demographics and medical information.  The data collected can be used to assist in autism research, as well as to make India’s government more aware of the prevalence of autism in their country in order to drive related policies.  

We used an existing open source project Limesurvey as a starting point for our project.  The survey that AFA had designed for INAR was far from simple.  It had many question types: free answer, numeric only, multiple choices, grid of answers, date selection, etc.  Some questions needed to change their text based on the responses to previous questions.  Questions needed to be shown or hidden based on other responses.  And to top it all off it all needed to be editable by a non-programmer in the future.

Limesurvey was great because it had support for all of the above.  Limesurvey was not exactly what AFA needed though: There was no concept of a participant account or login.  However it did allow survey access to be restricted by generating a one-use key that could be given to the participant.  So we started down the path of trying to merge an account management system with Limesurvey such that a participant could register, and sign into an account and be provided with a link to take the survey.  We ended up dropping the idea of the participant needing to sign in to take the survey.  Instead a link to take the survey was just emailed to the user. 

For the administrative side of the product we created admin pages allowing an administrator to assign participants to surveys, and select which surveys a participant should be automatically assigned to.  Originally these admin features were accessed through an admin interface on the main site and the survey editing was done through the Limesurvey admin interface.  We eventually merged all the admin features together by adding additional pages to the Limesurvey admin interface, but not before first trying to recreate lots of the interaction with Limesurvey through our own admin interface.

There were also a lot of changes on how we interfaced with Limesurvey.  The admin interface for assigning participants at first interfaced with Limesurvey by just inserting data into its database.  Later we found that Limesurvey had API functionality, and we could interact with it through API calls.  This seemed like the right thing to do, because even if database structure changed in a future version of Limesurvey the API calls would probably remain the same.  However it also ended up causing slower page load times.  When we eventually moved all the admin pages into the Limesurvey interface we change everything to interface directly with the Limesurvey objects.

As you can see there was a lot of back and forth on this project.  I think some of this could have been avoided.  The day we learned what project we would be working on there was a huge push to have a working prototype in 2 weeks.  This meant there was no time to plan or design anything.  We just had to make something and make it now.  It didn’t have to be that way though, there was over a month at the start of the semester before we were finally told what project we would be working on.  Had we know earlier that time could have been used for planning and design.  I urge the professor to try and have project teams sorted out with two weeks of the start of the semester in the future.  In most (much less demanding) project based courses projects teams are determined within that time frame.

The experience has pushed me away from agile development, at least for new projects.  I do think it has its place for products that have matured and require several relativity minor updates.  Maybe also for a project where requirements are poorly specified, although I think non-functional prototypes serve that case better.

In the end we made something that will help the AFA toward their goal of collection data to spread autism awareness, and I am happy about that.

 

The Connectivity Problem

December 7, 2012

One of the problems I have been privy to over the course of my time in C4G has been one of connectivity. My project team (working on C4G BLIS, a laboratory management system for medical testing laboratories, currently limited to African countries) has often had to take into consideration the fact that there often is not reliable internet in the parts of the world that we’re trying to help. Many of the systems that developers take for granted, online backups, update systems, and rapid communication, are simply not an option for these establishments.

Online backups are replaced with an administrator with a thumb drive. An update download is replaced by the same. And rapid communication is just not a reliable concept. These systems that make development in more technologically advanced nations so reliable become limitations that seem to bind our hands and frustrate us when developing new features. Having been involved with a web-based start-up a year prior, these problems have been very jarring for me, and have placed in plain view a problem that I previously only acknowledged in the back of my mind.

The problem of connectivity extends well beyond a mere inconvenience to philanthropic developers, however. As demonstrated by the Arab Spring, the internet can be a powerful tool for change, and the suppression of internet connectivity can be a powerful tool for oppression. This problem, as well as the previously mentioned internet availability problem, raise the question of what options are available to solve these issues.

One of the more popular solutions, at this time, is the notion of a mesh-net. This concept was covered in the C4G lectures and, in a nutshell, the idea is that instead of each computer accessing the internet via an ISP, or some other centralized infrastructure or authority, each computer connects only to those computers closest to it. With each computer behaving the same way, and acting as a router for every other computer, a ‘mesh’ of computers will be able to allow each other computer to connect to the internet as a whole. Several questions of efficiency and reliability are raised by this system, but the general idea is that such a system would be 1) Faster to implement 2) Cheaper to implement and 3) Very difficult to shut down.

Such a system is, of course, not without flaws, and is untenable in areas that already enjoy established infrastructure and a certain expectation of speed. A mesh-net system can only practically be built on wireless communication, and such communication is slow and unreliable. A computer moving 10 feet in one direction may isolate another computer completely, or break a connection that was serving to join large groups of otherwise connected computers.

However, in developing nations, where establishing infrastructure is not an option, and speed is a secondary concern, a mesh-net system could bring internet to parts of the world that have never enjoyed it, and could drastically improve the quality of life in those areas.

My Semester’s Work With C4G

December 7, 2012

My name is Michael Zeitz and I’ve had a very eventful and fun semester working with C4G. My group and I have been working for Jacob’s Ladder, based in Alpharetta, GA. Jacob’s Ladder is a private school that is geared towards helping kids who have learning disabilities, such as Autism. My C4G group has been working on a Drupal-based project to convert their current paper recording methods into a digital system. I have earned a lot of work experience during this semester from working with a client in an AGILE approach and from working with Drupal, a platform I had no previous experience with. In addition to lots of good work experience, I have also earned a sense of satisfaction from getting to work for a non-profit that truly needs and values my group’s help. It’s a good feeling to know you’re helping others and to know that the work you’re doing will actually make an impact on someone. My C4G class is one of the most important classes I’ve taken at Tech and I would gladly take it again, given the chance.

My C4G Experience

December 7, 2012
by

My C4G Experience 

Earlier this semester I signed up for Computing for Good thinking it’s a course different from all other courses. I’ve always wanted to contribute to the society in some way and C4G provided me with this opportunity. Hearing about all the different projects presented by various organizations along with discussions we had in class made me realize that there was so much one could do to help. I decided to choose the recycling project with the Office of Solid Waste Management and Recycling at Georgia Tech since I feel for the cause of environmental conservation.

Our problem statement was as simple as “Increase recycling on Tech campus”. We thought of many ways we could do that and concluded that the best way to do that was to increase awareness about Recycling. We immediately realized that this would be an effective way to increase overall recycling on campus since we ourselves became more conscious about what we recycled and what we didn’t once we started working on the project and became aware of where and what we could recycle.

We developed a contest that engages users in recycling awareness on campus. The contest encourages users to explore certain areas of campus in order to discover the numerous indoor and outdoor recycling areas provided to the student population. The purpose of the contest is to give students a greater awareness of recycling opportunities and serve to educate them of recycling best practices in the process. Coupled with a great team and an extremely cooperative partner organization working on the project was a pleasure. With guidance from the professors and inputs from our peers we were able to make decisions on what would make the app most useful. One great thing about C4G is the constant feedback and support we got from our fellow students, unlike most other courses where everyone is most bothered about grades.

On the first day of class Prof. Vempala told us that it would be a lot of work but the rewards would be far more. Today, I can agree with this statement. C4G did indeed turn out to be a different course. Most of all, it taught me how to make a difference.

-Madhura Bhave

Computing for Good Fall 2012

December 7, 2012
by

During C4G in Fall 2012, I worked with a group to develop the Indian National Autism Registry for Action for Autism in India. I had been having a hard time finding my niche in computer science and my work with INAR really helped me find my strengths. I took C4G as an equivalent to undergraduate senior design but only just before registration ended. Previously, I had attended the lectures for the regular Computer Science undergrad senior design. I found that the difference between the two was that with regular senior design, students were given exact specs and details for their project whereas with C4G we had to work with the clients and our professors to find the best solution.

That’s where I realized my strength was. I really enjoyed communicating between the team, our professor, and the client. I enjoyed the peopled centered work of managing meetings, evaluations, and project concepts. I enjoyed the ‘paperwork’ of creating proposals and progress reports. I found that computer science was a lot more than its perception of being just about coding. I realized that there’s a lot more that goes into the design and creation of a system than coding and it.

Through C4G, I received a research grant to continue the work our group did next semester. It will be my first time doing research and I could not be more glad that it is for such a good cause. I hope to work in a C4G related field, hopefully education technology for the underprivileged, after graduation. Before this class, I only had goals with no knowledge or experience to know that this is the field for me. Now with this experience, as well as through my research next semester, I hope to break away from the rat race and get into education technology.

A Taste of Computing for Good

December 7, 2012

The Computing for Good class is offered to undergraduates as an alternate option to their Senior Design Capstone class. In this class, we apply all our skills and more to use computing to do good for the world. It is a unique opportunity for computer science students to become heroes and help solve various problems faced all over the world ranging from chronic homelessness to the autistic disorder. While the projects speak for themselves through the difference they are making in the world, I would like to share a slice of the experience of the class on why it is like no other and how it transformed the lives of many who took this class.

As a Computer Science major at Georgia Tech, we learn many important skills and principles like programming, design architecture, evaluation and presentation from various classes. Computing for Good tests us with all these at the same time. While we are mentored by our professors, we directly interact with our partners thus we are being tested in a real world environment. For me, I remember my team’s very first meeting with our partner, the United Way of Metropolitan Atlanta. We went in to discuss what their need was and by the end of an hour and a half, we came out of a professional meeting with a project we had planned out with our partner. This was a great validation for all of us on the team because we saw a purpose for ourselves in the real world beyond classes and assignments.

A couple of months since that meeting, we have come up with a working system that stores and reports data on the homeless in Atlanta and determines how much at risk a person is on the streets based on the health conditions. We are now finishing up our prototype that went through many iterations based on feedback from partner evaluations. We see our system and feel very proud of it. It is something we can share and explain to people from all walks of life knowing that everyone can relate to our work.

Thus, I can say that the Computing for Good class is the kitchen that cooks all the fine ingredients we have picked from Georgia Tech to a delicious and sumptuous meal thereby being able to share our work with others. We are pushed to reach goals we thought we would never reach and our outlook on everything Computer Science-related is changed for good. If you don’t believe me, take the class and you’ll see for yourself.