# Introduction to Computers/Development

Course Navigation
| << Previous - Internet | Next - Databases >> |
Introduction to Computers → Development
This page is part of the Introduction to Computers project. :

## how to
### Steps of programming
#### define

To define or Clarify a problem, it consists of six steps: Clarifying program objectives and users, outputs, inputs, processing tasks, studying the feasibility of the program, and documenting the analysis. Problem definition is the forerunner to program design in the programming process.

#### algorithm

An algorithm (pronounced AL-go-rith-um)is a formula or set of steps for solving a particular problem. All computer programs consist of algorithms. The word derives from the name of the mathematician, Mohammed ibn-Musa al-Khwarizmi, who was part of the royal court in Baghdad and who lived from about 780 to 850. Al-Khwarizmi's work is the likely source for the word algebra as well.
A recipe for baking cookies or a flow chart are examples of an algorithm.

#### Code

In computer science, source code (commonly just source or code) is any sequence of statements and/or declarations written in some human-readable computer programming language. The source code which constitutes a program is usually held in one or more text files, sometimes stored in databases as stored procedures. A large collection of source code files may be organized into a directory tree, in which case it may also be known as a source tree. Coding is the third of five steps in programming. It consists of translating the logic requirements from flowcharts and pseudocode into a programming language such as letters, numbers, symbols. In short, code could be considered as the DNA of any written program as shown in the cult classic "The Matrix".
Source code is primarily used as input to the process that produces an executable program. It is also sometimes used as a method of communicating algorithms between people. Without the source code for a particular piece of software, portability is generally very expensive. w:Source_code

#### test

Program testing involves running tests and then running real world data to make sure the programs works. The act of testing is to deliberately make the program fail in order to witness any problems within the software.
Alpha testing is testing your own program. Beta testing is when other people test it.

#### document

Software documentation or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles. Documentation is an important part of software engineering.the 4 basic types of documentation include:
1.Architecture/Design - Overview of software. Includes relations to an environment and construction principles to be used in design of software components.
2.Technical - Documentation of code, algorithms, interfaces, and APIs.
3.End User - Manuals for the end-user, system administrators and support staff.
4.Marketing - Product briefs and promotional collateral.
Although documentation is the last step in the programming process, it should have been an on-going process. The final documentation results in written documentation of what a program is and how to use it. Documentation is prepared for many different people who will be using the program in the future like programmers, users, readers and operators.

### control structures
#### sequence

A sequence is a system where one program statement follows another in logical sequential order.

#### selection

This represents a choice as it offers two paths to follow in decision making by a program. This is also known as IF-THEN-ELSE.

#### iteration

Iteration in computing is the repetition of a process within a computer program. It can be used both as a general term, synonymous with repetition, and to describe a specific form of repetition with a mutable state. There are two types of iteration structures: DO UNTIL and DO WHILE. The DO UNTIL iteration means that the loop statements will be executed at least once (txt 513)

## Generations of
### 1st generation

A first-generation programming language is a machine-level programming language. [txt 337] This was done physically by rewiring connections between the logic gates (vacuum tubes back then)

#### 1945

Is the first of five generations of computers. It is the machine language.

#### machine

A first-generation programming language is a machine-level programming language.
The main benefit of using a first-generation programming language is that, the code a user writes, can run very fast and efficiently, since it is directly executed by the CPU.
EX. 11110010 01110011

#### hexadecimal

In mathematics and computer science, hexadecimal, base-16, or simply hex, is a numeral system with a radix, or base, of 16, usually written using the symbols 0–9 and A–F, or a–f. Its primary purpose is to represent the binary code in a format easier for humans to read, and acts as a form of shorthand, in which one hexadecimal digit stands in place of four binary bits.
It is an efficient way of organizing instructions because they use far fewer characters than their binary equivalent.

### 2nd generation
#### mid-50’s

Is the second generation of programming language using assembly language.

#### assembly language

Second generation programming language. An order of language in low level programming language that allows a programmer to write a program using abbreviations instead of the 0s and 1s of machine language. This way is faster. Ex. PACK 218 (8,13), 028 (4,7)
Assembly languages eliminated much of the error-prone and time-consuming first-generation programming needed with the earliest computers, freeing the programmer from tedium such as remembering numeric codes and calculating addresses. They were once widely used for all sorts of programming. However, by the 1980s (1990s on small computers), their use had largely been supplanted by high-level languages, in the search for improved programming productivity. Today, assembly language is used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Typical uses are device drivers, low-level embedded systems, and real-time systems. (http://en.wikipedia.org/wiki/Assembly_language)
It allows a programmer to write a program using abbreviations or more easily remembered words. The codes were identified early as the only things that computers could do. The "complex" things that computers do now (like editing this wiki) are simply combinations of many assembly code

### 3rd generation

3GL's (generation languages) have compiled code. The commands are far more complex than assembly language which can be directly translated into binary. Compilers are programs themselves that translate code into binary.

#### early 60’s

The early 60's had a high-level languages like the C language, which was the foundation of the C++ programming language, designed in the 1970's by Dennis Ritchie.

#### procedural (COBOL)

]] A third generation procedural language which users write in a familar notation which we use today. EX They worked Crazy-Crazy hours.
Compared to the fourth generation language called problem-oriented, third generation language is more general, fourth generation language is more specific and more user friendly, with less commands than third generation.
"Procedural" refers to the way the programmer organizes their code before it is compiled. In procedural programs data for the entire program is organized in a different "place" than the instructions.
COBOL (Common Business Oriented Language) was one of the earliest high-level programming languages.COBOL programs are in use globally in governmental and military agencies, in commercial enterprises, and on operating systems. A local example is a production accounting program called Triangle, requires COBOL to run, still in common use by many of the major Oil and Gas producers in Western Canada.

#### object-oriented (C++)

In object oriented languages, relevant instructions and data are kept together in an "object". So for instance the part of a wiki program that handles editing has the instructions (for the computer) on how to organize the page as well as the current content of the page together.
Having objects allows groups to work together (each person could make one object), and the ability to copy objects and modify them for a similar purpose.
C++ is arguably the most versatile program/computer language in common use. C++

### 4th generation
#### problem oriented

4GL used to Solve Specific Problems]] This fourth generation language allows users to solve SPECIFIC problems and requires fewer commands than procedural language, thus it is more user-friendly. 4GL and 5GL projects are more oriented toward problem solving and systems engineering. All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software.

#### SQL

SQL, also known as Structured Query Language, is a computer language designed for the retrieval and management of data in relational database management systems. The language will allow the developer to have full access to the data and freely modify and manipulate the data accordingly. SQL is both an ANSI and an ISO standard, however, many vendors develop their own proprietary extensions to the standard language to better suit their purposes and protect their program. w:SQL

### 5th generation
#### natural language

There are 2 types of natural languages. One compromises programming languages while the second compromises ordinary human languages (like Spanish, French etc.) into a human language, so that people can have a better connection with computers.
Natural languages are part of the field of artificial intelligence. These languages are approaching the level of human communications.

## tools
### languages
#### HTML

HTML is "hypertext markup language". It is mostly found in webpages, and is a method to define information in text based documents. HTML can also describe the appearance of a document, and can include embedded code language which can affect the behavior of web pages and browsers. The first HTML available to the public was called HTML tags. It describes 22 different elements and 13 of them still exist in HTML. The markup of HTML comprises of many different components which include elements, character-based data types and character and utility references. It can be written with tool as simple as notepad, which helped to make the HTML widely accessible.
w:HTML
The first publicly available description of HTML was a document called HTML Tags, first mentioned on the Internet by Berners-Lee in late 1991. w:HTML (www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html)

#### VRML

VRML stands for Virtual Reality Modeling Language. VR keeps tract of a 3D environment that you can explore of a computer. w:Vrml AGARIA

#### XML

XML is an acronym for Extensible Markup Language which is used for general-purpose specification for creating custom markup languages. It allows users to define elements that facilitate the sharing of structured data across different information systems. XML is also used to encode documents and to serialize data.w:XML Here is an example of XML code:
XML stands for Extensible Markup Language which was designed to meet the challenges of large scale electronic publishing.
It is considered extensible because it is more general and allows users to define their own tags. Every tag must have an opening (ie. <number>) and a closing (ie. </number>) w:XML

#### Logo

Logo is a computer programming language used for functional programming. Logo is an easier to read adaption and a dialect of the Lisp language. The Logo programming language was designed for educational use and even more for teaching.

#### BETA

BETA is a strongly typed language like Simula, Eiffel and C++, with most of the type checking being carried out at compile-time.w:BETA_programming_language
BETA provides unique features such as: -classes and procedures are unified to a pattern -classes are defined as properties/attributes of objects -classes can be virtually defined w:BETA

#### SIMULA

Simula is considered one of the earliest object-oriented programming languages.Simula was designed for doing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages today.w:Simula_programming_language

#### ACSL

ACSL stands for Advanced Continuous Simulation Language. Program used for mathematical or simulation. Invented by Mitchell and Gauthier Associates, 1981.

### scripts
#### JavaScript

JavaScript is a scripting language that is often used for client-side web-development. w:JavaScript Unlike Java and C++, which are compiled, JavaScript is interpreted (compiled on the fly), and therefore loads with short script usage. It is mostly used to make web-documents (structure) more dynamic. Online quizzes on the web are an instance of dynamic use.
JavaScript was influenced by many languages and was designed to have a similar look to Java, and be easier for programmers and non-programmers to work with. http://en.wikipedia.org/wiki/JavaScript
JavaScript was originally developed by Brendan Eich. w:JavaScript

#### ActiveX

Set of controls within a web browser that downloads applets one time only and reuses them with each web page it encounters. Applets are mini software applications needed to run information from different websites. With ActiveX you can obtain the appropriate files from your hard disk that are suitable for the web. The components do not amount to the entire application, they provide building blocks that are shared by different software.
ActiveX features reusable components-small modules of software code that perform specific tasks. For example, spell checker.
Developed by Microsoft as another alternative to Java, in order to create interactivity on web pages.
w:Active_X

#### Perl

Originally a Unix scripting tool that was first released in 1987, it later became common in dynamic Web sites. However, it's not a very common language in use today.
Perl is a dynamic programming created by Larry Wall and first released in 1987 w:Perl
PERL: Pracical Extraction and Report Language A programming language made for text manipulation and now used for web development, netowrk programming, system administraion, GUI development, and other tasks. This is easy to use and supports both procedural and object-orientated programming. [txt 536]

#### Ajax

This is programming language for the web.
Ajax is a web development technique used for creating interactive web applications. Ajax uses a combination of XML and Javascript. It allows only the part of the webpage that needs to be reloaded to be reloaded, thus saving time. Google docs is an example. w:Ajax_(programming) Ajax is designed to improve the web pages interactivity, speed, and usability. w:Ajax_(programming)
Course Navigation
| << Previous - Internet | Next - Databases >> |