Program developed with a systematic approach to achieve a desired purpose.\n

Develop of program

Program always starts with idea.

  • Programs are all developed a specific with specific purpose.
  • Developes follow specific steps and stick to their plan
  • Sometimes the development is more exploratory than anything, and the steps are dictated by what happens

When we think about early AI projects or artificial intelligence, we abbreviate that to AI. Early on in this developers were just trying to figure out like hey, what is possible?, what can we make a computer do that would resemble intelligence.

Developes start investigating the problem/purpose and reflect

  • Investigation is an important step in the process.
  • Developers must determine the requirements of the program
  • Developers must understand the constraints

One of the constraints is time you don’t have enough time to write this grand thing, you have to be very limited and very targeted about what you would accomplish. So understanding the constraints are a very important part of the investigative process.

Method of investigate

  • surveys
  • user testing
  • interviews
  • direct observations

Developers design the program by

  • brainstorm
  • storyboarding the program
  • planning user experience
  • laying out the user interface
  • organizing into modules
  • develop a testing strategy

Developers decide on the program requirements that

  • describe how a program should behave
  • include a list of user interactions

The program specifications outline all of the requirements. Developers create a prototype of the program or components. An incremental process is frequently used so developers can refine small parts of the program

Testing, testing, and more testing

Developers test the program every step of the way

Testing occurs at the

  • micro level
  • macro level

Developers refine and revise through testing, feedback, and reflection

Program development is rarely a solo endeavor

  • Programs are usually developed with by teams of people
  • Individuals and teams work on different functional components
  • Each member of the project deserves to receive credit for their work
  • Their names must be written in the documentation of the program indicating their contributors to the project

The program should also be given credit where credit is due

Documentation is an important place to give credit

  • Many projects use comments within the programming language
  • Important part of the development of the program
  • When developers find a bug, they need to be able to determine who can fix the program
  • This may be most useful after a program is completed and users find additional bugs

Many times developers use code segments, procedures, algorithms, and more than that are written by others. Similar to quoting someone in a research paper or article.

Reason of creating program documentation

  • describe the overall program
  • list program specifications
  • describe
    • functions/procedures/methods within the code
    • specific code segments
    • list of events and corresponding outputs
    • the development of program
    • how other programs may interact with the program
  • list of contributors/authors of the program

When does documentation happens

Documentation happens throughout the development of the program

  1. At the beginning: list specifications
  2. During: to keep track of process
  3. After: to explain the overall process

improvement of documentation

  • efficiency of overall programming process
  • programmer’s ability to test and to refine the program
  • programmer’s response to bugs

How do programmers document while programming

Most programming languages offer a commenting feature, although some do not. Commenting allows programming to write text within the program. This text does not affect the program. Comments are for programmers to read. This is a form of documentation and can be very useful when programmers collaborate or work individually.

example of comments

Text

  • Python
  • Java
  • Javascript, C/C++, Swift
  • XML/HTML
  • Applescript/Pascal

Block based language

  • Scratch
  • MIT Applnventor