April 25, 2024

Map of Computer Science



Published May 16, 2023, 5:20 a.m. by Violet Harris


Domain of science is a map of computer science. It is a tool for visualizing the relationships between different areas of computer science. The map is organized into four main areas: theory, programming, systems, and applications. Each area is subdivided into subareas, and each subarea is represented by a node on the map. The nodes are connected by edges, which represent the relationships between the subareas.

Theory is the foundation of computer science. It includes the subareas of mathematics, logic, and algorithms. The mathematics subarea includes the study of algorithms, data structures, and complexity theory. The logic subarea includes the study of formal methods, verification, and model checking. The algorithms subarea includes the study of algorithm design and analysis.

Programming is the process of designing and implementing algorithms. It includes the subareas of programming languages, compilers, and software engineering. The programming languages subarea includes the study of programming language design and implementation. The compilers subarea includes the study of compiler design and implementation. The software engineering subarea includes the study of software development methodology, tools, and techniques.

Systems is the study of the design and implementation of computer systems. It includes the subareas of operating systems, distributed systems, and database systems. The operating systems subarea includes the study of operating system design and implementation. The distributed systems subarea includes the study of distributed system design and implementation. The database systems subarea includes the study of database system design and implementation.

Applications is the study of the use of computer systems to solve problems. It includes the subareas of artificial intelligence, computer vision, and natural language processing. The artificial intelligence subarea includes the study of algorithms for solving problems, knowledge representation, and reasoning. The computer vision subarea includes the study of algorithms for image understanding. The natural language processing subarea includes the study of algorithms for understanding and generating speech and text.

You may also like to read about:



[Music]

we built computers to expand our brains

originally scientists built computers to

solve arithmetic but they turn out to be

incredibly useful for many other things

as well

running the entire internet life like

graphics artificial brains

or simulating the universe but amazingly

all of it boils down to just flipping

zeros and ones computers have become

smaller and more powerful

and an incredible rate there's more

computing power in your cell phone than

there was in the entire world in the

mid-1960s

and the entire apollo moon landing could

have been run on a couple of nintendos

computer science is a subject that

studies what computers can do

it's a diverse and overlapping field but

i'm gonna split it into three parts the

fundamental theory of computer science

computer engineering and applications

we'll start with the father of

theoretical computer science alan turing

who formalized the concept of a turing

machine

which is a simple description of a

general purpose computer

people came up with other designs for

computing machines but they're all

equivalent to a turing machine which

makes it the foundation of computer

science

a turing machine contains several parts

an infinitely long tape

that's split into cells containing

symbols there's also a head that can

read and write symbols to the tape

a state register that stores the state

of the head and a list of possible

instructions

in today's computers the tape is like

the working memory or ram

the head is the central processing unit

and the list of instructions is held in

the computer's memory

even though a turing machine is a simple

set of rules it's incredibly powerful

and this is essentially what all

computers do nowadays although

our computers obviously have a few more

parts like permanent storage and all the

other components

every problem that's computable by a

turing machine is computable using

lambda calculus which is the basis of

research in programming languages

computability theory attempts to

classify what is and isn't computable

there are some problems that due to

their very nature can never be solved by

a computer a famous example is the

halting problem where you try and

predict whether a program will stop

running or carry on forever there are

programs where this is impossible to

answer by a computer or a human

many problems are theoretically solvable

but in practice take

too much memory or more steps than the

lifetime of the universe to solve and

computational complexity

attempts to categorize these problems

according to how they scale

there are many different classes of

complexity and many classes of problem

that fall into each type

there are a lot of real world problems

that fall into these impossible to solve

categories but fortunately computer

scientists have a bunch of sneaky tricks

where you can

fudge things and get pretty good answers

but you'll never know if they're the

best

answer an algorithm is a set of

instructions independent of the hardware

or programming language

designed to solve a particular problem

it's kind of like a recipe of how to

build a program

and a lot of work is put into developing

algorithms to get the best out of

computers

different algorithms can get to the same

final result like sorting a random set

of numbers into order but

some algorithms are much more efficient

than others this is studied in

algorithmic complexity information

theorist studies the properties of

information and how it can be measured

stored and communicated

one application of this is how well you

can compress data making it take up less

memory while preserving all or most of

the information

but there are lots of other applications

related to information theory is coding

theory

and cryptography is obviously very

important for keeping information sent

over the internet secret

there are many different encryption

schemes which scramble data and usually

rely on some very complex mathematical

problem to keep the information

locked up these are the main branches of

theoretical computer science although

there are many more that i didn't have

time to go into like logic

graph theory computational geometry

automata theory

quantum computation parallel programming

formal methods and data structures but

let's move on to computer engineering

designing computers is a challenge

because they have to do so many

different things

designers need to try and make sure that

they're capable of solving many

different kinds of problems as optimally

as possible

every single task that runs on a

computer goes through the core of the

computer the cpu

when you're doing lots of different

things at the same time the cpu needs to

switch back

and forth between these jobs to make

sure everything gets done in a

reasonable time

this is controlled by a scheduler which

chooses what to do and when and tries to

get through the tasks in the most

efficient way which can be a very

difficult problem

multi-processing helps speed things up

because the cpu has several cores that

can execute multiple jobs in parallel

but this makes the job of the scheduler

even more complex

computer architecture is how a processor

is designed to perform

tasks and different architectures are

good at different things

cpus are general purpose gpus are

optimized for graphics and fpgas can be

programmed to be very fast at a very

narrow range of task

on top of the raw hardware there are

many layers of software written by

programmers using many different

programming languages

a programming language is how humans

tell a computer what to do and they vary

greatly depending on the job at hand

from low-level languages like assembly

through to high-level languages like

python or javascript

for coding websites and apps in general

the closer language is to the hardware

the more difficult it is for humans to

use

at all stages of this hierarchy the code

that programmers write needs to be

turned into raw cpu instructions

and this is done by one or several

programs called compilers

designing programming languages and

compilers is a big deal because they are

the tool that software engineers use to

make everything

so they need to be as easy to use as

possible but also versatile enough to

allow programmers to build their crazy

ideas

the operating system is the most

important piece of software on the

computer is it's what we interact with

and it controls how all of the other

programs are run on the hardware

and engineering a good operating system

is a huge challenge

this brings us to software engineering

writing bundles of instructions telling

the computer what to do

building good software is an art form

because you have to translate your

creative ideas

into these logical instructions in a

specific language

make it as efficient as possible to run

and as free of

errors as you can so there are many best

practices and design philosophies that

people follow

some other important areas are getting

many computers to communicate and work

together to solve problems

storing and retrieving large amounts of

data determining how well computer

systems are performing at specific tasks

and creating highly detailed and

realistic graphics

now we get to a really cool part of

computer science getting computers to

solve real world problems

these technologies underlie a lot of the

programs apps and websites we use

when you're going on vacation you want

to get the best trip for the money

you're solving an optimization problem

optimization problems appear everywhere

and finding the best path or most

efficient combination of parts can save

businesses millions of dollars

this is related to boolean

satisfiability where you attempt to work

out if a logic

formula can be satisfied or not this was

the first problem proved to be np

complete and so widely considered to be

impossible to solve

but amazing development of new sat

solvers means that huge sap problems are

solved routinely today especially in

artificial intelligence

computers extend our brains and multiply

our cognitive abilities

the forefront of computer science

research is developing computer systems

that can think for themselves

artificial intelligence there are many

avenues that ai research takes the most

prominent of which is machine learning

which aims to

develop algorithms and techniques to

enable computers to learn from large

amounts of data

and then use what they've learned to do

something useful like make decisions or

classify things

and there are many different types of

machine learning closely related are

fields like computer vision

trying to make computers able to see

objects in images like we do

which uses image processing techniques

natural language processing aims to get

computers to understand and communicate

using human language or to process large

amounts of data in the form of words for

analysis

this commonly uses another field called

knowledge representation where data is

organized according to their

relationships like

words with similar meanings are

clustered together machine learning

algorithms have improved because of the

large amount of data we give them

big data looks at how to manage and

analyze large amounts of data and get

value from it

and we'll get even more data from the

internet of things adding data

collection and communications to

everyday objects

hacking is not a traditional academic

discipline but definitely worth

mentioning

trying to find weaknesses and computer

systems and take advantage of them

without being noticed

computational science uses computers to

help answer scientific questions from

fundamental physics to neuroscience and

often makes use of super computing which

throws the way to the world's most

powerful computers of very large

problems

often in the area of simulation then

there is human computer interaction

which looks at how to design computer

systems to be easy and intuitive to use

virtual reality augmented reality and

telepresence

enhancing or replacing our experience of

reality

and finally robotics which gives

computers a physical embodiment from a

roomba

to trying to make intelligent human-like

machines

so that is my map of computer science a

field that's still developing as fast as

it ever has

despite the fact that the underlying

hardware is hitting some hard limits as

we struggle to miniaturize transistors

anymore

so lots of people are working on other

kinds of computers to try and overcome

this problem

computers have had an absolutely huge

impact on human society so it's going to

be interesting to see where this

technology goes in the next hundred

years

who knows perhaps one day we'll all be

computers

as per usual if you want to get hold of

this map as a poster

i've made it available so check in the

description below for some links

and also if you want to find out more

about computer science i recommend you

check out the sponsor for this video

brilliant.org

people often ask me how to go about

learning more about the kind of subjects

i

cover in these videos and as well as

watching videos a really great way is to

get down and solve some real

problems and brilliant does an excellent

job at this

it's a really cool website and also an

app which helps you learn by

getting you to solve interesting

problems in science mathematics and

computer science

and each of the courses starts off kind

of easy and fun and then gets more and

more challenging

as you master the concepts if you want

to learn specifically about computer

science they've got whole courses built

around topics

in this video like logic algorithms

machine learning

artificial intelligence so if you want

to check that out

just type in brilliant.org slash d

o s or even better click the link in the

description below

because that lets them know that you've

come from here

so thanks again for watching and i'll be

back soon with a new video

Resources:

Similar videos

2CUTURL

Created in 2013, 2CUTURL has been on the forefront of entertainment and breaking news. Our editorial staff delivers high quality articles, video, documentary and live along with multi-platform content.

© 2CUTURL. All Rights Reserved.