glossary_of_artificial_intelligence_terms
You will be redirected in 0 seconds to Artificial Intelligence (AI)

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

See also

References

Computer Science

Return to Programming glossary, Computer science glossary

Snippet from Wikipedia: Computer science

Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines (such as algorithms, theory of computation, and information theory) to applied disciplines (including the design and implementation of hardware and software).

Algorithms and data structures are central to computer science. The theory of computation concerns abstract models of computation and general classes of problems that can be solved using them. The fields of cryptography and computer security involve studying the means for secure communication and preventing security vulnerabilities. Computer graphics and computational geometry address the generation of images. Programming language theory considers different ways to describe computational processes, and database theory concerns the management of repositories of data. Human–computer interaction investigates the interfaces through which humans and computers interact, and software engineering focuses on the design and principles behind developing software. Areas such as operating systems, networks and embedded systems investigate the principles and design behind complex systems. Computer architecture describes the construction of computer components and computer-operated equipment. Artificial intelligence and machine learning aim to synthesize goal-orientated processes such as problem-solving, decision-making, environmental adaptation, planning and learning found in humans and animals. Within artificial intelligence, computer vision aims to understand and process image and video data, while natural language processing aims to understand and process textual and linguistic data.

The fundamental concern of computer science is determining what can and cannot be automated. The Turing Award is generally recognized as the highest distinction in computer science.

External sites

  • Computer science terms
  • Computer science glossary

'Computer Science: - CompSci, CS, Computer Architecture, Hardware - Hardware Architecture - Hardware Engineering; Software - Software Architecture - Software Engineering: Algorithms, Data Structures

(navbar_computer_science - see also navbar_hardware, navbar_programming)

Snippet from Wikipedia: Robotics

Robotics is the interdisciplinary study and practice of the design, construction, operation, and use of robots.

Within mechanical engineering, robotics is the design and construction of the physical structures of robots, while in computer science, robotics focuses on robotic automation algorithms. Other disciplines contributing to robotics include electrical, control, software, information, electronic, telecommunication, computer, mechatronic, and materials engineering.

The goal of most robotics is to design machines that can help and assist humans. Many robots are built to do jobs that are hazardous to people, such as finding survivors in unstable ruins, and exploring space, mines and shipwrecks. Others replace people in jobs that are boring, repetitive, or unpleasant, such as cleaning, monitoring, transporting, and assembling. Today, robotics is a rapidly growing field, as technological advances continue; researching, designing, and building new robots serve various practical purposes.

Software Engineering

WHAT IS SOFTWARE ENGINEERING?

“A formal definition of software engineering might sound something like, “An organized, analytical approach to the design, development, use, and maintenance of software.”

More intuitively, software engineering is everything you need to do to produce [successful software. It includes the steps that take a raw, possibly nebulous idea and turn it into a powerful and intuitive application that can be enhanced to meet changing customer needs for years to come. You might be tempted to restrict software engineering to mean only the beginning of the process, when you perform the application’s design. After all, an aerospace engineer designs planes but doesn’t build them or tack on a second passenger cabin if the fi rst one becomes full. (Although I guess a space shuttle riding piggyback on a 747 sort of achieved that goal.) One of the big differences between software engineering and aerospace engineering (or most other kinds of engineering) is that software isn’t physical. It exists only in the virtual world of the computer. That means it’s easy to make changes to any part of a program even after it is completely written. In contrast, if you wait until a bridge is fi nished and then tell your structural engineer that you’ve decided to add two extra lanes, there’s a good chance he’ll cackle wildly and offer you all sorts of creative but impractical suggestions for exactly what you can do with your two extra lanes. The fl exibility granted to software by its virtual nature is both a blessing and a curse. It’s a blessing because it lets you refi ne the program during development to better meet user needs, add new features to take advantage of opportunities discovered during implementation, and make modifi cations to meet evolving business needs. It even allows some applications to let users write scripts to perform new tasks never envisioned by developers. That type of fl exibility isn’t possible in other types of engineering. Unfortunately, the fl exibility that allows you to make changes throughout a software project’s life cycle also lets you mess things up at any point during development. Adding a new feature can break existing code or turn a simple, elegant design into a confusing mess. Constantly adding, removing, and modifying features during development can make it impossible for different parts of the system to work together. In some cases, it can even make it impossible to tell when the project is fi nished. Because software is so malleable, design decisions can be made at any point up to the end of the project. Actually, successful applications often continue to evolve long after the initial release. Microsoft Word, for example, has been evolving for roughly 30 years. (Sometimes for the better, sometimes for the worse. Remember Clippy? I’ll let you decide whether that change was for the better or for the worse, but I haven’t seen him in a while.) The fact that changes can come at any time means you need to consider the whole development process as a single, long, complex task. You can’t simply “engineer” a great design, turn the programmers loose on it, and walk off into the sunset wrapped in the warm glow of a job well done. The biggest design decisions may come early, and software development certainly has stages, but those stages are linked, so you need to consider them all together.

Fair Use Source: B00UANX0E0

External sites

Wikipedia

Snippet from Wikipedia: Software engineering

Software engineering is an engineering approach to software development. A practitioner, a software engineer, applies the engineering design process to develop software.

The terms programmer and coder overlap software engineer, but they imply only the construction aspect of typical software engineer workload.

A software engineer applies a software development process, which involves the definition, implementation, testing, management and maintenance of software systems and with development of the software development process itself.


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


glossary_of_artificial_intelligence_terms.txt · Last modified: 2024/04/28 03:18 (external edit)