Content

Programs are developed and used in a variety of ways by a wide range of people depending on the goals of the programmer. Programs developed for creative expression, such as animating a story you wrote, or to satisfy personal curiosity, such as a program you write to process data to make a fantasy sports league pick, may have visual, audible, or tactile inputs and outputs. Programs developed for creative expression or to satisfy personal curiosity may be developed with different standards or methods than programs developed for widespread distribution, such as an app game that you intend to sell online.

Programming allows you to realize additional desired outcomes independently of the original purpose of the program. For instance, using Macro programming you can have Excel produce computations that are unique to your use of the spreadsheet.

A computer program or the results of running a program may be rapidly shared with a large number of users and can have widespread impact on individuals, organizations, and society. For instance, you can publish the results of running game development software (the game software) on the Internet and have your game immediately available to the world.

Advances in computing have generated and increased creativity in other fields. For instance, animation has spurred creative leaps in the movie industry, and video has motivated creative approaches to teaching including flipped classrooms.

An iterative process of program development helps in developing a correct program to solve problems. Developing correct program components and then combining them helps in creating correct programs. Incrementally adding tested program segments to correct; working programs helps create large correct programs.

Program documentation helps programmers develop and maintain correct programs to efficiently solve problems. Documentation about program components (such as blocks of code and functions) help in developing and maintaining programs. Documentation helps in developing and maintaining programs when working individually or in collaborative programming environments. Below is a picture of comments that describes each line of code.

Program development includes identifying programmer and user concerns that affect the solution to problems. Consultation and communication with program users to gather their requirements and preferences is an important aspect of program development to solve problems.

A programmer’s knowledge and skill affects how a program is developed and how it is used to solve a problem. For instance, if the programmer is skilled in the SQL database access language, she might be better to solve data analysis problems that a programmer who is not. A programmer designs, implements, tests, debugs, and maintains programs when solving problems.

Collaboration in the iterative development of a program requires different skills than developing a program alone. Collaboration among several programmers can decrease the size and complexity of tasks required of individual programmers. Collaboration facilitates multiple perspectives in developing ideas for solving problems by programming. Collaboration can make it easier to find and correct errors when developing programs - one programmer may see errors that another doesn't. Collaboration facilitates developing program components independently - that is a team can split development so that smaller groups each develop their own components of a larger program and then integrate their components to achieve the final program. Effective communication between participants is required for successful collaboration when developing programs.