Computing is a discipline that studies the process of using computing machines, along with all the factors involved in it. This discipline involves a complex relation between many factors: software, hardware, data, the people involved, the environment, and many others. The most competent discipline is the one given in an ACM report called Computing As a Discipline: [Computing is] The discipline of computing is the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all the computing is 'What can be (efficiently) automated?'
Computing as a science includes several fields of interest, including, but not limited to:
- Computer science
- Computation theory
- Scientific computing
A large quantity of bibliography is available in these domains, as computing has became a very prolific discipline with the explosion of the PCs in the 1980s.
Hardware and software
Several fields of interest exist in the hardware branch of computing. These include disciplines like computer hardware design, or those that relate to the study of computer networks, systems or hardware itself.
Software is also a key subject of computing. Software engineering and programming are some of the most requested jobs at the moment.
With the expansion of the Internet, security has become a fundamental problem of computing. Several disciplines were adapted to computing, like cryptology. Other situations have become major concerns. For example, defensive programming techniques began to evolve, in order to make sure that programmers write software with few security exploits. Even writing malicious software like spyware programs or viruses has become an industry.
Data is obviously one of the fundamental components of computing. With the advance of storage possibilities, computers started to store data in less and less abstract forms, ending up with the form used today, where most of the stored data can be easily converted to a human-readable form.
The human factor
In computing, the human factor has a decisive role. Computing knowledge is implemented by humans in the first place, and, most often also for humans. This has lead to the creation of two fundamental disciplines of computing: accessibility, a discipline dedicated to studying and improving the way disabled people can use computers, and human-computer interaction (HIC), studying how interaction between computer systems and humans takes place.