Learning Objective:
After completing the project, the student will have an understanding and mastering of various aspects of computer programming, including:
- The programming and software development life cycle, in particular, Idea - Edit - Assemble - Execute / Test - Debug cycle
- Programming using IDEs, such as Microsoft Visual Studio or Microsoft Visual C++.
- How real life problems, solutions and tasks get converted and developed into useful computerized and automation tools and applications
Project Choices:
Choose to design and develop one of the following:
1. A project topic of your own. You need to discuss it with instructor to ensure it is appropriate (not too small, nor too large, and it can be completed in the time remaining in the semester). As a first step, submit, immediately, a) a project description (what the project will be about) , and b) a project plan (how you intend to accomplish the implementation).
2. A Disaster Assessment Program that could be useful for the NYC Mayor's Office and others such as FEMA, which they can use to cope with disaster recovery efforts after Superstorm Sandy.
Project Deliverables:
Write a Project Report that includes the following:
- Project Title
- Author
- Affiliation
- Abstract
- Introduction
- Design
- Implementation Effort
- Discussion of Results
- Test Cases
- Summary and Conclusion
- Acknowledgments
- References
- Appendix
Project Description: Disaster Assessment Tool
1. Create a program to help New York City (NYC) generate and report the extent and cost of the damage caused by Superstorm Sandy and its aftermath.
The initial version should be interactive in gathering the information about the various types of damage. Damage can include facts about housing: (residential housing, commercial buildings; industrial plant); transportation stock: (personal, institutional, commercial, business, transportation companies); utilities: (power / electricity, petroleum / oil / gas; telecomm, cable, wireless / mobile / cellular; infrastructure: (roads, railways, airports, harbors); human (deaths, injuries, hospitalizations, displacements, relocations to shelters)
Decide on the level and depth of detail to collect, for example, categories of extent of damage to buildings, fire, flooding; reasons for deaths, etc. Decide on the organization of the data, for example, by boroughs (counties), neighborhoods, streets, etc.
Arrange to store in files the information and facts collected interactively, so that it becomes persistent and available.
Provide tools to a) compute statistical information about the data: totals, averages, min, max; b) generate reports to visualize the data; c) translate the facts into actionable or decision support.
2. Extend your application so that it can be used to support Damage Assessment for any or all the states affected by the Superstorm Sandy, at the regional (multi-state), state and municipal levels (county, district, city / town / village, neighborhood?, street?, address?).
Assume during interaction with the program, the user indicates input data files in which the damage information and facts have been collected.
3. (Extra Credit): Extend your application so that some of reporting and statistical data can be presented as visual displays and graphics.