theoretical computer science applied or practical computer science the two major areas under computer science span across multiple fields and domains wherein each field forms part or sub-field of computer science the main essence of computer science includes formal languagesautomata and theory of computationalgorithmsdata structurescomputer design and architectureprogramming languagesand software engineering principles theoretical computer science theoretical computer science is the study of theory and logic that tries to explain the principles and processes behind computation this involves understanding the theory of computation which talks about how computation can be used efficiently to solve problems theory of computation includes the study of formal languagesautomataand understanding complexities involved in computations and algorithms information and coding theory is another major field under theoretical cs that has given us domains like signal processingcryptographyand data compression principles of programming languages and their analysis is another important aspect that talks about featuresdesignanalysisand implementations of various programming languages and how compilers and interpreters work in understanding these languages last but never the leastdata structures and algorithms are the two fundamental pillars of theoretical cs used extensively in computational programs and functions practical computer science practical computer science also known as applied computer science is more about toolsmethodologiesand processes that deal with applying concepts and principles from computer science in the real world to solve practical day-to-day problems this includes emerging sub-fields like artificial intelligencemachine learningcomputer visiondeep learningnatural language processingdata miningand robotics and they try to solve complex real-world problems based on multiple constraints and parameters and try to emulate tasks that require considerable human intelligence and experience besides thesewe also have wellestablished fieldsincluding computer architectureoperating systemsdigital logic and designdistributed computingcomputer networkssecuritydatabasesand software engineering important concepts these are several concepts from computer science that you should know and remember since they would be useful as foundational concepts to understand the other conceptsand examples better it' not an exhaustive list but should pretty much cover enough to get started algorithms an algorithm can be described as sequence of stepsoperationscomputationsor functions that can be executed to carry out specific task they are basically methods to describe and represent computer program formally through series of operationswhich are often described using plain natural languagemathematical symbolsand diagrams typically flowchartspseudocodeand natural language are used extensively to represent algorithms an algorithm can be as simple as adding two numbers and as complex as computing the inverse of matrix