So far, all of the programming problems we have encountered have given us the requirements around what to program. In real life, however, things are not wrapped up so neatly. Often developers are tasked with gathering the requirements for a program on their own. They may be tasked with defining the problem and then defining the solution along with developing the program. You can read more about requirements gathering here.
Consider a real world social change issue. For example:
•Books written in English to be translated into other languages
•Reconnecting children with parents separated during natural (earthquakes) or human-initiated disasters (war)
•Logistics for bringing medication into remote areas or areas under conflict (ebola)
•Provision of clean water to impoverished regions
Write a short paper on the problem you are trying to solve and how your application will address this issue. If you need to create your own class with your own methods, elaborate of what those methods would be. If they are value-returning, what are the parameters? Lastly, what is the overall impact of your application?