Getting Started with Computer Science Basics for Beginners

Getting Started with Computer Science Basics for Beginners

1. The fundamentals of computing in

The Database Principle: A machine that represents and operates on the data. Understanding these fundamentals and avoids ambiguity, throughout all software projects or in the system.

  • Data representation: bits, bytes, words to facts. Conversion between binary, decimal and hexadecimal.
  • Character encoding: ASCII, UTF-8, the impact of systems interoperability.
  • Boole’s logic: the AND, OR, NOT operators; Academic aptitude test and minimal expressions.
  • Basic arithmetic operations: addition, subtraction, displacement multiplication; The concepts of hauling and overflow.

Quick outputs to work with algorithms, each choosing the representation that has direct consequences on performance and memory consumption.

2. Computer architecture: CPU, memory and channel

I explain myself, as in the architecture of modifying the behavior of a software product. The fetch-decode-execute cycle of the administration and memory of a hierarchy, each has a fundamental role in performance.

  • of the CPU and of the registrars: the basic function of collecting operations, the statement of interim income.
  • The channel and parallelism: fetch, decode, execute, as the overlay of stages in which performance increases, and in which they arise, in information dependencies.
  • The memory of a hierarchy: the L1/L2 cache, main memory, or “trade-off between latency and consistency bandwidth.
  • Direction and how to use: Set of instructions that coding codes, addressing modes, and their impact on the efficiency of the generated code.

The idea of practice: Understanding where the bottleneck is, assistance occurs in the design of algorithms and data structures more efficient than available hardware.

3. Algorithms, data structures and complexity

From my workflow, the choice of algorithms and structures that determine the success of your software solutions. The theory of complexity of the guide is simple and fundamental decisions.

  • In the BIG-O notation: the assyntotic performance, at the best/worst of the case, and of practical cases, to choose from among the algorithms.
  • Data Structures: Arrays, Linked Lists, Trees, Games, Example: When each one is used?
  • Traditional binary search algorithms (O(log n)), organization (QuickSort, MergeSort), graphics (Dijkstra, output/DFS), and memory problems.
  • Trade-offs: The cost of memory, vs runtime, cache to use, design and sequential access.

the corresponding code example

// Euclid algorithm for the GCD (the largest common divisor
of type int and gcd(int a, int b) {
while (b != 0) {
int t = b;
B = A % B;
a = t;
}
return s;
}

4. Practices for the development and execution of

From the concept to the execution, on the path of a practical development cycle with a focus on its quality, its operation and its maintenance.

  • The software lifecycle: requirements, design, implementation, testing, delivery and maintenance.
  • Obtaining and linking: Paths between source code, manufacturers, static/dynamic links, and creation of binary and efficient files.
  • Runtime environment: It is the operating system, the system calls, of the basic competence topics.
  • (profile and tuning) Performance measurement: Segmentation, bottleneck analysis, and changes are based on actual data.

did you like it? Keep exploring

This guide is just the beginning. Below is a list of complementary readings that help consolidate what has been seen and move to a deeper level: