Computer Science

Study of ==computation, automation, and information==. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (including the design and implementation of computer hardware and computer software). Computer science is generally considered an academic discipline and distinct from computer programming which is considered to be a technical field. Algorithms and Data Structures are central to computer science.
— Wikipedia

The fundamental concern of computer science is determining what can and cannot be automated.

I think knowing computer science help to write effective and scalable code (goal of good programmer, which I want to be). I described how I learn computer science here.

Computer science connect theory (computation, automation, information) with real world practice (software and hardware). In Russian, it’s known as Информа́тика.

Computer science closely related to computer programming.

In computer science central role plays ==algorithms and data structures==.

Core concepts in computer science 1

The theory of computation helping to create theoretical models (abstract models) of how computers work (computation) and understanding the types of problems (general classes of problems) these computers can solve. So it’s about creating abstract computing models and understand which general classes of problems these models can solve.

Cryptography and computer security fields is needed to study (and practice) how prevent security vulnerabilities and how to communicate securely (secure data transmission).

Computer graphics and computational geometry address the generation of images.

Programming language theory considers different ways to describe computational processes. Different programming languages can implement computational processes in different ways and can be used to solve different classes of problems.

Database theory concerns the management of repositories of data. For example, you have a bunch of messy data (desktop shortcuts), and you can organize them in some structures (group, sort, etc.) to manage them more effectively.

Human–computer interaction investigates the interfaces through which humans and computers interact. There many UI specialists, which usually haven’t developing software skills, but they know how to create effective UI.

Software engineering focuses on the design and principles behind developing software. And usually software engineers solving problems in real world with requirements from customers.

There are many areas (complex systems), which investigate the principles and design in their own area. Main areas are: operating systems, computer network and embedded systems.

What describes Computer Architecture?
Computer architecture describes the construction of computer components and computer-operated equipment (Input, Output, CPU, RAM).

Goal of Artificial intelligence?
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. In other words replicate humans and animals processes/behavior.

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 Turing Award is generally recognized as the highest distinction in computer science.

References

Footnotes

  1. Computer science - Wikipedia