Map of Computer Science

Map of Computer Science

We built computers to expand our brains. Originally
scientists build computers to solve arithmetic, but they turned out to be incredibly useful
for many other things as well: running the entire internet, lifelike 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
at an incredible rate. There is more computing power in your cell phone then there was in
the entire world in the mid 60s. And the entire Apollo moon landing could have been run on
a couple of Nintendos. Computer science is the subject that studies
what computers can do. It is diverse and overlapping field but I’m going to 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 formalised 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 are 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 is split into cells containing symbols. There is 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 todays 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 is 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
to 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 lifetime of the Universe to solve, and
computational complexity attempts to categorise 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 are the best answer. An algorithm is a set of instructions independent
of the hardware or programming language designed to solve a particular problem. It is 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 O(n) complexity. Information theory 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 I don’t have time to go into Logic,
Graph Theory, Computational Geometry, Automata Theory, Quantum Computation, Parallel Programming,
Formal Methods and Datastructures, but lets move on to computer engineering. Designing computers is difficult because they
have to do so many different things. Designers need to try and make sure they are capable
of solving many different kinds of problem as optimally as possible. Every single task that is run on the computer
goes through the core of the computer: the CPU. When you are 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 when and tries to get through the tasks in the most efficient way, which
can be very difficult problem. Multiprocessing 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 optimised 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
a 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
and so they need to be as easy to use as possible but also be versatile enough to allow the
programmers to build their crazy ideas. The operating system is the most important
piece of software on the computer as it is 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 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 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 are going on vacation and you want
to get the best trip for the money you are solving an optimisation problem. Optimisation
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 and so widely considered to be impossible to solve,
but amazing development of new SAT solvers means that huge SAT problems are solved routinely
today especially in artificial intelligence. Computers extend our brains 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 organised 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
analyse large amounts of data to get value from it. And will 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 in 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 weight of the worlds most powerful computers at 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 Teleprescence 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 is still developing as fast as it ever has despite that fact that the underlying
hardware is hitting some hard limits as we struggle to miniaturise transistors any more,
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 and so it is going to be
interesting to see where this technology goes in the next one 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 have 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 dot org. People often ask me how to go about learning
more about the kinds 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 and
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 computers science they have got whole courses built around topics in this video
like logic, algorithms, machine learning, artificial intelligence, so if you want to
check that out brilliant dot org slash dos, or even better click the link in the description
below because that lets them know that you have come from here. So thanks again for watching,
and I’ll be back soon with a new video.

Daniel Ostrander

Related Posts

100 thoughts on “Map of Computer Science

  1. Domain of Science says:

    Hey thanks for all the comments! Yes I agree that I should have added in computer security alongside hacking. It is a huge and important field so I regret leaving it off. And I should also have mentioned interpreters along with compilers as this is an important concept, especially having coded a fair amount of python I have no excuses. I added a couple of notes in the video description.

    Thanks for pointing these omissions out, and thanks for all the words of encouragement as well. I was trying something new with the graphic design on this one, trying to match the look to the subject matter and I think it worked out well.

  2. Kewal Takhellambam says:

    This is beautiful! Computer science has become the motivation of my living.

  3. Southern Violinist says:

    Alonzo Church.

  4. The Teen Engineer says:

    love it

  5. Logical Bro says:

    Thanks Dude

  6. Glasus Wasserus says:

    The claim that SAT is not computable is false. NP and P problems all are computable, its just a matter of efficiency. You said it wrong in the math video, too.

  7. Voynich Code says:

    9:43 We'll all be COMPUTER'Z

  8. Dennis Huang says:

    Very high-level overview of cs, it's a honor to be got invovled in this area.

  9. yanagikishi ishikawa says:

    very good video

  10. d bisram says:

    Do a map of medicine/medical sciences

  11. sai kushal says:

    Waiting for 2nd part!

  12. Fauzan Feisal says:

    Really helps! Thanks!

  13. Mishi says:

    Map of medicine?

  14. Mohit K says:

    I want to learn them all but I've one life :'(

  15. The Dark Knight says:

    I love these graphics.

    I can learn anything in a blink of an eye if it is presented to me by a graph.

    I don't need thousands of words or phrases or spending hours upon hours listening to a lecture.

    Just give me the graphical representation and my mind does the rest.

    I don't need to understand it consciously.

    My subconscious mind does most of the computations.

  16. Ramachandran Natarajan says:

    Computer useful office organization schools colleges courses research project work news whats app facebook information

  17. Ramachandran Natarajan says:


  18. Ramachandran Natarajan says:

    Computer is all about programming

  19. Nam Doan Ha says:

    Who know one day , we are all computer ! . Last word of the author ! . I am sure that we will be not computer ! .

  20. marwah maher says:

    I thought that I know about computer science very well . After watching this video, I changed my mind 😥.
    I'll try to read about this wonderful subject more and more 🌼.

  21. Ala Massoud says:

    man u'r a legend bruhh plz make a map of technology (i mean Electrics & Mechanics)

  22. Polykarpos Polykarpidis says:

    Amazing video! Congratulation! Ps What is the background music?

  23. Joseph Jovencio Valerio III says:

    Thank for this video! It's interesting because it's related to my degree, Bachelor of Science in Electronics and Communications Engineering.

  24. Dharmendra Thakur says:

    It's great

  25. Frederick McCann says:

    I didn't know any part of this video I feel like Thom K

  26. Ricky Geng says:

    Can you do map of data science?

  27. LOVE LEVI says:

    Can a person who's not good in mathematics be a programmer?

  28. A a v e r n o x says:

    Ok, what…

  29. ritik musical group says:

    Computer scince kya hai puri jankari

  30. akab211 says:

    I am guessing you are british?

  31. Damn Knight says:

    Thank you. Now am goona learn all of them

  32. ZM Ding says:

    no Computer Graphic?

  33. effexon says:

    problem and benefit of CS is that it can absorb anything made by man under its umbrella. eg. computational biology, handling DNA with algorithms (biology +CS). Thus it is forever expanding universe.

  34. Gary Lau says:

    I have worked as a frontend developer for 10 years and there are still too much skills I don't know, like backend, infrastructure, etc. Computer Science is so huge and there are many new technologies popping up every day. Btw, I am now learning AI and want to become a machine learning engineer.

  35. rajveer munde says:

    thanks for at least mentioning what you didnt go into

  36. kamola chirhuza says:


  37. Akash Kumar says:

    Akash Kumar Gautam 1

  38. rosedragon108 says:

    this is the 3rd of your videos i've watched and am really enjoying them. am retired phd biochemist/biophysicist… you could have a fun program with all of the applications of light… infrared spectroscopy/ftir, magnetic circular dichroism/circular dichroism, raman/resonance raman, electron paramagnetic resonance, nuclear magnetic resonance, exafs, and ordinary electronic absorption spectroscopy… uv/vis… i used all these methods to probe metalloproteins aka oxygen carriers/delivery systems…
    haven't seen your 'map of chemistry' yet – would suggest 'map of biochemistry' … with proteins and etc… anyway, fun and fascinating and thanks!

  39. raju kumar says:

    Make a video on computer networking I need it who is with me ?

  40. Kelvin Klopper says:

    8 years ago I was senior year, when a friend of mine suggested that I pick up a programming language called Java as my first programming language — "I think you'll do well with it."

    By then he'd been learning C++, incidentally his first language, for about a year and a half. But to this day I fail to understand why he believed I had the intellectual horsepower required to become a programmer. I have the curiosity and passion for learning but I will never be an expert problem solver.

    I also hate how everyone in high-school told me that I was highly intelligent when this is blatantly false.


  41. Kelvin Klopper says:

    8 years ago I was senior year, when a friend of mine suggested that I pick up Java as my first programming language — "I think you'll do well with it."

    By then he'd been learning C++, incidentally his first language, for about a year and a half. But to this day I fail to understand why he believed I had the intellectual horsepower required to become a programmer. I have the curiosity and passion for learning but I will never be an expert problem solver.

    I also hate how everyone in high-school told me that I was highly intelligent when this is blatantly false.


  42. Tamar Peer says:

    Were you using celeste's sound track for this vid?

  43. BMGforever1900 says:

    You forgot To mention Konrad Zuse

  44. Ramin Madani says:

    I think "computer networks" could also be mentioned in this map. This is a big enough field to have a map itself, but "hacking" and "big data" are mentioned, and both have relations with computer networks.

  45. Christian Martin says:

    combinatorics, FPGAs very terrifying and extremely difficult problems to solve, but your calm voice definitely made it easier to listen to. Thanks a lot

  46. Atul Kumar Agrawal says:

    That background music though😅😅

  47. Fyrah says:

    Imagine NASA landed the Apollo missions with old and limited technology, and yet the ISRO did not even manage to land on the surface and lost contact with its lander with modern technology

  48. Rayan Fernandes says:

    you re awsome…. i love how u explain and represent the technologies

  49. Hemmeligt Navn says:

    Putting languages and compilers and OS in computer engineering is a HUGE stretch – I am a computer scientist and a compiler/language/os researcher.

  50. محمد علي says:

    تستطيع عمل فيدو مترجم للعربي ⁦❤️⁩

  51. JnM says:

    It's difficult to imagine where else we can use computers. Maybe in the future we will not be computers, but our organisms partly sure will be

  52. Bilnaz Ceylan says:

    gerçekten bu kanalı çok iyi buluyorum türkçe altyazılı videoların devamını dilerim

  53. 이재현 says:

    Map of electronics please !🤔

  54. shruti swaroop says:

    This was a braingasm.

  55. sam sam says:

    please do not use music I couldn't concentrate

  56. Bob says:

    I got a theory where computers created by old humans and programmed to forget this reality . We will just repeat this soon

  57. John Batchler says:

    Computer engineering u get the best of both worlds this skill is more deversified than computer science

  58. Iklan Hits says:

    Sub now

  59. Raven D says:

    Excellent video, I enjoyed everything and the music sent me right to sleep 😂

  60. D1ne5H Software Engineer says:

    Most wanted and most awaited… Good i subscribed this chanel ❤

  61. PhilosophyOfPolitics says:

    If all it takes is a couple of Nintendos to get back on the moon, why haven't we gone back?

  62. nAnMaMoNoM aMoNaMaN says:

    No SDN and neural network, no IOT

  63. LasTCursE69 says:

    Map of Cosmology,Space or The Universe

  64. Yooop says:

    This is the best map you made aesthetically

  65. Joshua Wang says:

    I'm scared to be a computer

  66. GoldenBoss says:

    The background beat put me in my feelings 😭😭😢

  67. GoldenBoss says:

    This beat in the background give me goosebumps 😰😰

  68. Ashish Singh says:

    I am sysadmin and i am scared of computers

  69. Grzegorz Brzęczyszczykiewicz says:

    I just wanna say I really like and apressiate it

  70. MrMonster says:

    So like, you are like, really good at presentations?

  71. cosmos and physical laws says:

  72. Tech Bhuvi says:

    Thank You So Much Sir For Providing Me Good Education
    I Am Very Thankfull To You

  73. Xe NO says:

    Satoshi Nakamoto = blockchain tech. Cryptography Legend

  74. Niall’s Contagious laugh says:

    Can you do software engineering plz ?

  75. Merthalophor says:

    Quantum Computers are equivalent to Turing Machines in terms of computability. Your comment at 1:06 (except from a quantum computer) is not correct. They solve the same set of problems, the difference is that their efficiency profile is radically different from today's computer, which puts some problems within reach that weren't there before _in practice_, but the Quantum Turing Machine is equivalent to general TM's.

  76. Merthalophor says:

    1:55 while that's an interesting problem, imo you should relativize the utility of this result: The halting problem asks if a program runs for ever or or if it takes finite time. In practice, we don't only have finite time; we have strongly bounded time. The halting problem says nothing about that. There is no real use of this result in practice.

  77. Klosterhasi says:

    optimisation – league of legends

    definetly not talking about the client lmao

  78. I StM I says:

    7:03 LoL

  79. Omar Saif says:

    The Turing machine reminds me of protein synthesis.

  80. Yuriy Pitometsu says:

    You mentioned the formal method twice. It's good though. And mention SAT, but miss SMT. Also, you had forgotten the whole Symbolic AI field, also program languages theory and type theory.

  81. Abraham Carrasquel Ruiz says:

    Amigo gracias desde VENEZUELA excelente estructura del video y excelente que este disponible en español (subtitulos) sigue asi

  82. Matthis Kruse says:

    Technically, the Lambda calculus came before the turing machine…. Church is the real father of computability. 🙂

  83. vjkrshn ro2 says:

    Great production.

  84. Jonathan Ciesla says:

    Science is C++ in disguise of a movie and motivational music

  85. Skorp says:

    That moment when you feel like a badass because you knew a little something about every topic he mentioned 😀

    Great video and great map! Thank you

  86. A.O17 says:

    I wish I can master all of them

  87. Michael Moor says:

    Dominic, could you tell please name of the app where you do such !excellent maps (presentations)?

  88. The earth says:

    I want to translate in Japanese.

  89. Lokinoha says:

    The video is really good and all but the music is quite sleep inducing

  90. juli juli says:

    hello nice guy.
    i've attacked by hacker who i've known they're chinese in France paris.they builder one website calls
    and control my computer now. how should i do now? even my smartphone is attacked by them.i can't even send my message. please help me.thank you very much.
    could you please contact me by my email: [email protected]

  91. Oriol Trujillo says:

    Map of Artificial Intelligence!

  92. FreeGoro says:

    This is beautiful. Reminds me why I love computer science.

  93. Labham Jain says:

    Fact : Apollo 11 Had 4kb Of RAM

  94. Dakota Jones says:

    "Or Tomato Theory."


  95. Xemor says:

    I always find myself coming back to this video

  96. JustShill9k says:

    anyone know the songs played in the background?

  97. INCEPTION 25 says:

    i like the animation

  98. Passionate Gamers says:

    Even in 2019 your voice and music choice made me lost in that. What an explanation.

  99. Sina Mirnejad says:

    I mean. Are we not all computers right now? We do compute. Which also makes the claim you made that "a smart phone has more computing power than the sum of all computing power world wide back in 1960s" a bit questionable.

Leave a Reply

Your email address will not be published. Required fields are marked *