What
is computer science? Explain.
Computer
science is the study of computing devices and methods. Computer scientists work
primarily with software and software systems, including their theory, design,
development, and application, in contrast to electrical and computer engineers.
The primary fields of study in computer science are
artificial intelligence, computer systems and networks, security, database
systems, human computer interaction, vision and graphics, numerical analysis,
programming languages, software engineering, bioinformatics, and computing
theory.
Computer engineering, computer science, information
systems, information technology, and software engineering are all considered to
be members of a family of five distinct but related disciplines. The computing
discipline has evolved to refer to this family as a whole. These five
disciplines are related because they all study computing, but they are also
distinct because each has its own curricular emphasis and research methodology.
Since 1991, the Association for Computing Machinery (ACM), the IEEE Computer
Society (IEEE-CS), and the Association for Information Systems (AIS) have
worked together to create and update the taxonomy of these five interrelated
disciplines as well as the standards that educational institutions all over the
world use for their undergraduate, graduate, and research programs.
Computer
science advancement
The electronic digital computer that is the subject
of computer science was created about 20 years prior to the discipline's
emergence as a separate academic field in the early 1960s. The subjects of
mathematics, electrical engineering, physics, and management information
systems are the main antecedents of computer science.
The development of major computer science concepts
including sorting, searching, databases, information retrieval, and graphical
user interfaces began with management information systems, also known as data
processing systems. Computers in large organizations housed data that was
essential to managing a firm, including payroll, accounting, inventory
management, production control, shipping, and receiving.
The necessary extension of these advancements to the
design of complete machines came from theoretical work on computability, which
started in the 1930s; a turning point was the 1936 specification of the Turing
machine by the British mathematician Alan Turing and his demonstration of the
model's computational capability. The idea of the stored-program computer,
generally credited to American-Hungarian mathematician John von Neumann, was
another innovation. These are where the branch of computer science that is
currently known as architecture and organization has its roots.
To integrate constructed code fragments and load
them into the computer's memory so they could be run, additional system
software components known as linking loaders were created. It was crucial to
understand how to connect different bits of code together since it made it
possible to reuse "libraries" of programs for carrying out repetitive
operations. This was a foundational stage in the growth of the computer science
discipline known as software engineering.
Platform-based development, parallel and distributed
computing, and security and information assurance are three new areas of
computer science that have emerged as a result of three developments in
computing in the early twenty-first century: mobile computing, client-server
computing, and computer hacking. Platform-based development is the examination
of the unique requirements of mobile platforms, including their operating
systems and apps. In order to better utilize time and space, parallel and
distributed computing is concerned with the creation of architectures and
programming languages that facilitate the construction of algorithms whose
components can execute concurrently and asynchronously (rather than
sequentially). The design of computer systems and software that safeguards the
confidentiality, integrity, and security of data as well as the privacy of
users is the subject of security and information assurance.
The distinctive societal impact that comes along
with computer science research and technology breakthroughs has been a special
focus of computer science throughout its history. For instance, when the
Internet first became widely used in the 1980s, software designers had to deal
with crucial challenges relating to data security, user privacy, and system
dependability. A whole new legal field of licensing and licensing rules that
applied to software and associated artifacts was also created as a result of
the debate over whether computer software is considered intellectual property
and the related question, "Who owns it?" These challenges, along with
others, are the foundation of computer science's social and professional
issues, and they are present in practically all of the other fields mentioned
above.
Thus, to sum up, the field of computer science has developed
into the subsequent 10 unique fields:
· Complicated
systems and algorithms
· Arrangement
and structure
· Computer
science
· Both
visual computing and graphics
· Computer-human
interaction
· Information
administration
· Innovative
systems
· Communication
and networking
· Running
programs
· Distributed
and parallel computing
The origins of engineering and mathematics are
deeply ingrained in computer science. Postsecondary academic institutions
frequently offer computer science bachelors, masters, and doctorate degree
programs. Depending on their area of emphasis, these programs need students to
finish the relevant mathematics and engineering courses. For instance, discrete
mathematics is a requirement for all undergraduate computer science majors
(logic, combinatory, and elementary graph theory). Numerous schools
additionally demand that students take early-career courses in calculus,
statistics, numerical analysis, physics, and engineering fundamentals.
Complicated systems and algorithms
An algorithm is a predetermined process for
resolving a clearly stated computing issue. All facets of computer science,
including artificial intelligence, databases, graphics, networking, operating
systems, security, and so forth, depend on the creation and analysis of
algorithms. More than only programming is involved in algorithm development. It
necessitates knowledge of the potential solutions to a computational problem,
as well as the hardware, networking, programming language, and performance
limitations associated with each one. Understanding what it means for an
algorithm to be "correct"—that is, to completely and effectively
handle the issue at hand—is also necessary.
Even further away are those algorithmic issues that
can be expressed but cannot be resolved; in other words, one may demonstrate
that no program can be created to address the issue. The halting problem, which
claims that no program can be built to anticipate whether or not any other
program will halt after a limited number of steps, is a well-known illustration
of an algorithmic problem that cannot be solved. Software development is
directly affected in practice by the stopping problem's insoluble nature. For
instance, it would be pointless to attempt to create a software tool that can
determine whether a program that is being built contains an infinite loop
(although having such a tool would be immensely beneficial).
Arrangement
and structure
The design of
computers, data storage devices, and networking hardware is referred to as
computer architecture. These devices store and run programs, convey data, and
control interactions between computers, via networks, and with users. To create
extremely perform ant computing systems, computer architects use parallelism
and a variety of memory organizing techniques. Given that their primary areas
of expertise are hardware design, computer scientists and engineers must work
closely together to develop computer architecture.
A control unit, an
arithmetic logic unit (ALU), a memory unit, and input/output (I/O) controllers
make up a computer at its most basic level. Simple addition, subtraction,
multiplication, division, and logic operations like OR and AND are all
performed by the ALU. The program's data and instructions are stored in the
memory. The control unit reads data and instructions from memory and then
executes the instructions utilizing the data by employing ALU operations. (The
central processing unit [CPU], which combines the control unit and ALU, is
used.) The control unit moves data from memory to the relevant I/O controller
when an input or output instruction is encountered. The speed of the computer
as a whole is mostly determined by the CPU's operating speed.
Last but not least,
programs typically consist of series of instructions that are iterated through
until a preset condition is satisfied. A loop is the name given to such a
series. The sum of the first n integers, for instance, would require computing
using a loop, where n is a value kept in a different memory address. Turing
complete computer architectures can carry out the execution of every algorithm
that can be designed since they can execute sequences of instructions, conditional
instructions, and loops. A fundamental and crucial feature of any computer
organization is Turing completeness.
Computer science
To help different
fields achieve their objectives, computational science uses computer
simulation, scientific visualization, mathematical modeling, algorithms, data
structures, networking, database design, symbolic computation, and
high-performance computing. These fields include chemistry, finance, sociology,
forensics, fluid dynamics, biology, and archaeology. Especially as a result of
the exponential increase in the amount of data transmitted by scientific
instruments, computational science has advanced quickly. The "big
data" problem is the term used to describe this situation.
Both visual computing and graphics
The discipline of graphics and visual computing is
concerned with how visuals are displayed and controlled on a computer screen.
Rendering, modeling, animation, and visualization are four interconnected
computing processes that fall under the purview of this area. To complete these
challenging tasks, graphics approaches make use of special-purpose technology,
file formats, and graphical user interfaces (GUIs), computational geometry,
numerical integration, and linear algebra principles.
The creation of effective algorithms to manipulate
the plethora of lines, triangles, and polygons that comprise a computer image
is a difficulty for computer graphics. Each item must be represented as a
collection of planar units in order to produce realistic on-screen pictures. To
hide their underlying polygonal architecture from the human eye, edges must be
rounded and textured. Still photos are often insufficient for certain
applications, and real-time images must be displayed quickly. Real-time
animation requires cutting-edge hardware as well as incredibly efficient
algorithms. (See computer graphics for more information on the technical
aspects of graphics displays.)
Computer-human interaction
Designing efficient user-computer interactions and
creating user interfaces that facilitate these interactions are the focus of
human-computer interaction (HCI). HCI takes place at an interface that combines
hardware and software. User interface design should start early in the design
process since it affects the program life cycle. HCI research is influenced by
a number of academic fields, including psychology, sociology, anthropology, and
engineering, because user interfaces must support a range of user skills and
styles. User interfaces in the 1960s were composed of computer consoles that
let an operator directly write orders that might be carried out right away or
at a later time.
Information administration
The collection, digitalization, representation,
organization, transformation, and display of information are the main concerns
of information management (IM). Computers have auxiliary disk storage devices
that permanently store data because the main memory of a computer can only be
used for temporary storage. Compared to main memory, these devices have a
substantially bigger capacity, but their read/write (access) speeds are slower.
Before it can be processed, data that is stored on a disk needs to be read into
main memory. Therefore, creating effective algorithms to store and retrieve
specific data for processing is a key objective of IM systems.
The transaction, which is characterized as an
indivisible process that changes the database from one state into another, is a
crucial topic in the study of concurrency control and the maintenance of data
integrity. Consider transferring $5 electronically from bank account A to
account B as an example. The database loses integrity after the operation that
subtracts $5 from account A since the sum of all accounts is $5 short. In a
similar vein, the act of adding $5 to account B by itself results in a $5
excess. However, maintaining data integrity requires combining these two
actions into a single transaction. Here, it's important to
make sure that only finished transactions are applied to the data and that many
transactions are processed concurrently using locking so that serializing them
will result in the same outcome. A long transaction, such as when numerous
engineers are working on a product design over the course of several days and
the design may not exhibit data integrity until the project is finished, makes
it challenging to implement a transaction-oriented control mechanism for
database access.
Innovative systems
Research on artificial intelligence (AI) dates all
the way back to the early days of computer science. It is appealing to think of
creating a computer that can carry out tasks that are thought to require human
intelligence. The tasks that have been examined from this angle include playing
video games, language translation, NLP, defect diagnostics, robotics, and
expert advice. (See artificial intelligence for a more thorough examination of
the achievements and failings of AI over time.)
Many different knowledge-representation schemes,
problem-solving processes, and learning techniques are used in the answers.
They deal with sensing, problem-solving, action, and the architectures required
to support them. Examples of sensing technologies include speech recognition,
natural language comprehension, and computer vision (e.g., agents and
multi-agents).
Communication and networking
Infrared light signals, radio waves, telephone
lines, television cables, and satellite links are all used in computer networks
to connect computers to one another. The difficulty for computer scientists has
been to create protocols (standardized guidelines for the structure and exchange
of messages), which enable processes running on host computers to interpret the
signals they receive and to have meaningful "conversations" in order
to carry out tasks on behalf of users. Network protocols also
include error control, which involves transmission error detection and
automatic message resending to fix such problems, and flow control, which
prevents a data sender from inundating a receiver with messages that it lacks
the time to analyze or storage space to retain. (See information theory for
some of the technical specifics of error detection and repair.)
Running programs
An operating system is a specialized group of
software that sits between the physical architecture and the applications on a
computer. It carries out a number of key tasks, including managing the file
system, scheduling processes, allocating memory, interacting with the network,
and allocating resources to the users of the computer. Starting with the first
computers in the 1960s, operating systems have become more complicated over
time.
The introduction of time sharing, in which users
type commands and receive responses right at a terminal, expanded the operating
system's workload. Terminal handlers were required, along with methods like
interrupts (to draw the operating system's attention to important activities)
and buffers (for temporary data storage during input/output to facilitate the
transfer). Modern huge computers interact with hundreds of users at once,
giving each one the impression that they are the only ones using them.
Distributed
and parallel computing
The requirement to do
computational activities "in parallel," or simultaneously, is under
particular pressure as a result of the concurrent development in the
availability of large data and the number of concurrent users on the Internet.
Algorithms, computer architecture, networks, operating systems, and software
engineering are a few of the numerous computer science topics that include
parallel and distributed computing. Early in the twenty-first century, multiprocessor
architecture and other techniques for accelerating complicated applications
experienced tremendous growth.
1 Comments
This site is quite really very very helpful site
ReplyDelete