100 computer science concepts, you should know.
Tags: computerscience, programming, learning, algorithms
Published: 2023-12-01 02:58:21

1. **Turing Machine:** The theoretical basis for all computers. Think of it as a hypothetical device that can perform any computation.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7kwm6hv67dgemjwm6ci.gif)
2. **CPU (Central Processing Unit):** The brain of a computer, responsible for executing instructions. It processes data and controls other components.
Connecting Point: The CPU relies on fundamental electronic components.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l09o7xk4f6eg8s4ilqn6.jpg)
3. **Transistors:** Tiny electronic switches that form the basis of all digital electronics. They can be in an "on" or "off" state, representing binary values.
Example: Imagine transistors as light switches – either the light is on (1) or off (0).
![Image description](https://thumbs.dreamstime.com/z/microchips-transistor-radio-tube-isolated-white-background-evolution-technology-chip-electronic-lamp-154394317.jpg?w=768)
4. **Bit:** The smallest unit of digital information, representing a binary value (0 or 1).
Connecting Point: Eight bits make up a byte.
![Image description](https://media.gcflearnfree.org/content/5be310a59fcfff1378ff8923_11_07_2018/binary_bit.jpg)
5. **Byte:** A group of 8 bits. It's the basic unit of storage in a computer.
Example: A byte can represent a single character, like 'A'.
![Image description](https://www.shutterstock.com/image-vector/one-byte-equal-eight-bits-600nw-2002085840.jpg)
6. **ASCII Character Encoding:** A standard that assigns numerical values to characters. Computers use these values to represent text.
Connecting Point: ASCII values are often represented in binary.
![Image description](https://computersciencewiki.org/images/3/3d/Ascii_table.png)
7. **Binary:** The base-2 number system, using only 0s and 1s. Computers use binary for data representation.
Example: The binary representation of 5 is 101.
![Image description](https://study.com/cimages/multimages/16/binary-42.png)
8. **Hexadecimal:** A base-16 number system often used in programming for its compact representation.
Connecting Point: Four bits make up a nibble, and two nibbles make up a byte.
![Image description](https://lalacomputersci.files.wordpress.com/2017/08/screen-shot-2560-08-27-at-4-26-55-pm.png)
9. **Nibble:** Half a byte, comprising 4 bits.
Example: In binary, 1101 can be divided into a nibble as 1101.
![Image description](https://i.etsystatic.com/15072662/r/il/044db4/1500909500/il_fullxfull.1500909500_17q2.jpg)
10. **Machine Code:** Low-level code directly executable by a computer's CPU. It's in binary and specific to the processor architecture.
Connecting Point: Programming languages are used to write machine code.
![Image description](https://www.codecademy.com/resources/blog/wp-content/uploads/2022/12/programming-languages.png)
11. **RAM (Random Access Memory):** Temporary storage that the CPU uses actively. It's faster than long-term storage but volatile.
Example: Think of RAM as your computer's short-term memory.
![Image description](https://media.istockphoto.com/id/507957206/photo/ram.jpg?s=612x612&w=0&k=20&c=D-Mf5T2CNu6Tyjd3SleCUPsYL1DFAAkjFstqMB9RiM0=)
12. **Memory Address:** A unique identifier for each location in memory, allowing the CPU to access and store data.
Connecting Point: I/O operations involve moving data between memory and external devices.
![Image description](https://www.log2base2.com/images/c/computer-memory-address.png)
13. **I/O (Input/Output):** The process of transferring data between a computer and external devices.
Example: Printing a document is an output operation.
![Image description](https://howtofunda.com/wp-content/uploads/2023/03/computer-input-and-output-devices-project-model-diy-simple-and-easy.png)
14. **Kernel:** The core part of an operating system, managing hardware resources and providing essential services.
Connecting Point: The shell interacts with the kernel to execute commands.
![Image description](https://cdn.ttgtmedia.com/rms/onlineimages/data_center-kernel_layout_half_column_mobile.png)
15. **Shell:** A command-line interface allowing users to interact with the operating system by typing commands.
Example: "ls" lists files in a directory.
![Image description](https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Bash_demo.png/370px-Bash_demo.png)
16. **Command Line Interface (CLI):** An interface where users interact with the computer by typing commands.
Connecting Point: Secure Shell Protocol enables secure communication on the CLI.
![Image description](https://www.shutterstock.com/image-photo/computer-monitor-command-line-interface-600nw-2337697455.jpg)
17. **Secure Shell Protocol (SSH):** A cryptographic network protocol for secure data communication over an unsecured network.
Example: SSH allows you to securely connect to a remote server.
![Image description](https://www.ssh.com/hubfs/Imported_Blog_Media/SSH_simplified_protocol_diagram-2.png)
18. **Mainframe:** A powerful, large-scale computer often used by organizations for critical applications.
Connecting Point: Programming languages enable communication with mainframes.
![Image description](https://png.pngtree.com/thumb_back/fh260/background/20230617/pngtree-warehouse-housing-server-computers-or-mainframe-computer-in-3d-rendering-image_3638647.jpg)
19. **Programming Language:** A set of instructions for a computer to perform tasks.
Example: Python is a popular programming language.
![Image description](https://img.freepik.com/premium-vector/concept-programming-languages-from-around-world-man-programmer-showing-program-laptop_206127-480.jpg)
20. **Abstraction Principle:** Hiding complex details while exposing essential functionalities.
Connecting Point: Interpreted and compiled languages illustrate different abstraction levels.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hsrnks01je6mkonbf7mn.png)
21. **Interpreted:** Code executed line by line, translating and executing simultaneously.
Example: Python is an interpreted language.
22. **Compiled:** Code translated entirely before execution, resulting in an executable file.
Connecting Point: Executable files contain machine code.
![Image description](https://www.guru99.com/images/1/053018_0616_CompilervsI1.png)
23. **Executable:** A file containing machine code that a computer can run.
Example: Running an ".exe" file on Windows.
![Image description](https://helpdeskgeek.com/wp-content/pictures/2020/09/Windows-Run-EXE.png)
24. **Data Types:** Categories that define the kind of data a variable can hold.
Connecting Point: Variables store data.
![Image description](https://i0.wp.com/code4coding.com/wp-content/uploads/2017/02/datatype1.jpg?resize=621%2C455&ssl=1)
25. **Variable:** A named storage location for data in a program.
Example: "x = 5" assigns the value 5 to the variable x.
![Image description](https://i.stack.imgur.com/0C51n.png)
26. **Dynamically Typed:** Data types are assigned during runtime.
Connecting Point: Statically typed languages define types before runtime.
![Image description](https://i.stack.imgur.com/x5XCH.png)
27. **Statically Typed:** Data types are defined before runtime.
Example: In Java, you declare variable types explicitly.
![Image description](https://cdn-wordpress-info.futurelearn.com/info/wp-content/uploads/2a9b3db4-7ff2-48fa-ade9-720c7717466c-768x206.png)
28. **Pointer:** A variable that stores the memory address of another variable.
Connecting Point: Garbage collection manages memory by reclaiming unused space.
![Image description](https://www.geeksforgeeks.org/wp-content/uploads/How-Pointer-Works-In-C.png)
29. **Garbage Collection:** Automatically reclaiming memory occupied by objects no longer in use.
Example: Java has an automatic garbage collector.
![Image description](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Structure_and_Interpretation_of_Computer_Programs_p.764b.gif/400px-Structure_and_Interpretation_of_Computer_Programs_p.764b.gif)
30. **Int (Integer):** A data type representing whole numbers.
Connecting Point: Data types like floating point represent decimal numbers.
31. **Signed:** Integers that can be positive or negative.
Example: -3 is a signed integer.
32. **Floating Point:** A data type representing decimal numbers.
Connecting Point: Double provides more precision than float.
33. **Double:** A data type with double precision, providing more accuracy than float.
Example: 3.14 is a double.
34. **Char (Character):** A data type representing a single character.
Connecting Point: Strings are sequences of characters.
35. **String:** A sequence of characters.
Example: "Hello, World!" is a string.
36. **Big Endian:** Storing the most significant byte first in memory.
Connecting Point: Little Endian stores the least significant byte first.
37. **Little Endian:** Storing the least significant byte first in memory.
Example: Consider the hexadecimal value 0x1234. Big Endian stores it as 12 34, while Little Endian stores it as 34 12.
![Image description](https://www.freecodecamp.org/news/content/images/2021/01/Decimal-number_--1-.png)
38. **Data Structures:** Organized formats for storing and manipulating data.
Connecting Point: Arrays and linked lists are fundamental data structures.
![Image description](https://pbs.twimg.com/media/FVloya1WIAAc5l0.png)
39. **Array:** A collection of elements identified by index or key.
Example: arr = [1, 2, 3] is an array.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20220721080308/array.png)
40. **Linked List:** A data structure consisting of nodes linked together.
Connecting Point: Stacks and queues are specialized data structures.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20220829110944/LLdrawio.png)
41. **Stack:** A Last-In-First-Out (LIFO) data structure.
Example: Think of a stack of plates – you take the top one.
![Image description](https://media.geeksforgeeks.org/wp-content/cdn-uploads/20230726165552/Stack-Data-Structure.png)
42. **Queue:** A First-In-First-Out (FIFO) data structure.
Connecting Point: Hashing involves mapping data to a fixed-size array.
![Image description](https://media.geeksforgeeks.org/wp-content/cdn-uploads/20230726165642/Queue-Data-structure1.png)
43. **Hash (Triangle is horse):** A function that maps data of arbitrary size to a fixed-size value.
Example: Hashing a password for secure storage.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20200609180838/HashingDataStructure-min.png)
44. **Tree:** A hierarchical data structure with a root and branches.
Connecting Point: Graphs extend the concept of trees.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20230626160718/Tree-Data-Structure--nEW.png)
45. **Graph:** A collection of nodes connected by edges.
Example: Social networks can be represented as graphs.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20200630111809/graph18.jpg)
46. **Edge:** A connection between nodes in a graph.
Connecting Point: Algorithms operate on data using various operations.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/graph-5.jpg)
47. **Algorithm:** A step-by-step procedure for solving a problem.
Example: Sorting a list using the bubble sort algorithm.
![Image description](https://i.pinimg.com/736x/ba/ff/7d/baff7ddfbd2f6af236aebf28ac87c8ad.jpg)
48. **Function:** A reusable block of code that performs a specific task.
Connecting Point: Functions often involve returning values.
![Image description](https://i.imgur.com/TvNf5Jp.png)
49. **Return:** The action of providing a value from a function.
Example: "return x" in a function returns the value of x.
50. **Arguments:** Values provided to a function for it to operate on.
Connecting Point: Operators manipulate data in expressions.
51. **Operators:** Symbols representing computations.
Example: The "+" operator adds two numbers.
![Image description](https://media.geeksforgeeks.org/wp-content/uploads/20230302114603/Operators-in-C-(1)-768.png)
52. **Boolean:** A data type with two values, true or false.
Connecting Point: Expressions evaluate to either true or false.
![Image description](https://scaler.com/topics/images/python-boolean-operators.webp)
53. **Expression:** A combination of values and operators that can be evaluated.
Example: "2 + 3" is an expression evaluating to 5.
![Image description](https://www.simplilearn.com/ice9/free_resources_article_thumb/Expressions_In_C_1.PNG)
54. **Statement:** A complete line of code that performs an action.
Connecting Point: Conditional logic guides program flow.
55. **Conditional Logic:** Decision-making in code based on conditions.
Example: "if a > b:" is a conditional statement.
56. **While Loop:** A control flow statement that repeatedly executes a block of code while a condition is true.
Connecting Point: Iterables are collections that can be looped through.
57. **Iterable:** A collection of items that can be looped through.
Example: A list in Python is an iterable.
58. **For Loop:** A control flow statement for iterating over a sequence.
Connecting Point: Void represents the absence of a return value.
59. **Void:** A data type indicating the absence of a value.
Example: A function with no return statement.
60. **Recursion:** A function calling itself to solve a smaller instance of the same problem.
Connecting Point: The call stack manages function calls.
61. **Call Stack:** A data structure that stores function call information.
Example: Visualize a stack of function calls.
62. **Stack Overflow (E):** When the call stack exceeds its capacity, causing a program to crash.
Connecting Point: Base condition in recursion prevents infinite loops.
63. **Base Condition:** The stopping criterion in recursive functions.
Example: "if n == 0" in a factorial function.
64. **Big-O-Notation:** Describes the upper bound of an algorithm's time or space complexity.
Connecting Point: Time and space complexity measure efficiency.
65. **Time Complexity:** How the execution time of an algorithm grows with input size.
Example: O(n) signifies linear time complexity.
66. **Space Complexity:** How much memory an algorithm uses in relation to input size.
Connecting Point: Brute force is a straightforward approach.
![Image description](https://miro.medium.com/v2/resize:fit:1248/1*M2yzaVBGklBPIeJtirfD1Q.jpeg)
67. **Brute Force:** Solving a problem by trying every possibility.
Example: Searching an unsorted list linearly.
![Image description](https://discover.strongdm.com/hubfs/brute-force-attack.jpg)
68. **Divide and Conquer:** Breaking a problem into smaller sub-problems and solving them.
Connecting Point: Dynamic programming optimizes recursive solutions.
69. **Dynamic Programming (Nice):** A technique that stores and reuses solutions to sub-problems.
Example: The Fibonacci sequence using memoization.
70. **Memoization:** Caching and reusing previously computed results to improve performance.
Connecting Point: Greedy algorithms make locally optimal choices.
71. **Greedy:** Choosing the best option at each step without considering the overall situation.
Example: The greedy algorithm for the coin change problem.
72. **Dijkstra's Shortest Path:** An algorithm for finding the shortest path between nodes in a graph.
Connecting Point: Backtracking explores all possibilities.
73. **Backtracking:** A trial-and-error approach to problem-solving.
Example: Solving Sudoku puzzles.
74. **Declarative:** Describing what should be accomplished without specifying how.
Connecting Point: Functional languages emphasize functions.
75. **Functional Languages:** Programming languages focusing on functions as first-class citizens.
Example: Haskell is a functional language.
76. **Imperative:** Describing how a program should accomplish a task.
Connecting Point: Procedural languages follow a step-by-step approach.
77. **Procedural Languages:** Focused on procedures or routines that perform operations.
Example: C is a procedural language.
78. **Multiparadigm Languages:** Supporting multiple programming paradigms.
Connecting Point: Object-oriented languages use classes.
79. **Object-oriented:** Organizing code around objects that encapsulate data and behavior.
Example: Java and Python are object-oriented languages.
80. **Class:** A blueprint for creating objects with shared attributes and behaviors.
Connecting Point: Properties and methods are part of a class.
81. **Property:** An attribute of an object in object-oriented programming.
Example: In a car class, speed can be a property.
82. **Method:** A function associated with an object in object-oriented programming.
Connecting Point: Inheritance allows one class to inherit properties and methods from another.
83. **Inheritance:** A mechanism for creating a new class that is a modified version of an existing class.
Example: A "Car" class inheriting from a "Vehicle" class.
84. **Design Patterns:** Reusable solutions to common problems in software design.
Connecting Point: Instantiating creates an instance of a class.
85. **Instantiate:** Creating an instance of a class.
Example: Creating a new object from a class.
86. **Heap:** Memory used for dynamic memory allocation during program execution.
Connecting Point: Reference points to the memory location of an object.
87. **Reference:** A variable that holds the memory address of an object.
Example: "obj = MyClass()" assigns the reference to obj.
88. **Threads:** Independent sequences of instructions, each running in its own thread.
Connecting Point: Parallelism involves multiple threads running concurrently.
89. **Parallelism:** Simultaneously executing multiple tasks.
Example: Running multiple threads to speed up a computation.
90. **Concurrency:** The concept of multiple tasks making progress without necessarily running simultaneously.
Connecting Point: Bare Metal refers to programming without an operating system.
91. **Bare Metal:** Programming directly for hardware without an operating system.
Example: Embedded systems often involve bare-metal programming.
92. **Virtual Machine:** An emulation of a computer system, running an operating system within another.
Connecting Point: IP address identifies devices on a network.
93. **IP Address:** A numerical label assigned to each device on a computer network.
Example: 192.168.1.1 is an example of an IP address.
94. **URL (Uniform Resource Locator):** A web address specifying the location of a resource on the internet.
Connecting Point: DNS resolves domain names to IP addresses.
95. **DNS (Domain Name System):** Translates human-readable domain names to IP addresses.
Example: Resolving www.example.com to an IP address.
96. **Transmission Control Protocol (TCP):** A protocol ensuring reliable, ordered, and error-checked delivery of data.
Connecting Point: Packets break data into smaller units for efficient transmission.
97. **Packets:** Small units of data transmitted over a network.
Example: Sending a large file in smaller, manageable chunks.
98. **Secure Sockets Layer (SSL):** A protocol for secure communication over a computer network.
Connecting Point: HTTP uses SSL to become HTTPS for secure communication.
99. **HTTP (Hypertext Transfer Protocol):** The foundation of data communication on the web. It defines how messages are formatted and transmitted.
Connecting Point: APIs often use HTTP to send and receive data.
100. **Application Programming Interface (API):** An API allows different software applications to communicate and share data, enabling them to work together.
Connecting Point: Understanding APIs is crucial for developing software that interacts with other programs or services.


This article is from [youtube](https://www.youtube.com/watch?v=-uleG_Vecis) and I write the summary for user to easily understand. Please give a like to support 🙏🥰