The Guide “Introduction to Computer Science.mp3
Technical circuit, straight to the point. The representation of the data, the architecture of the system, of a vision of a high level of practical details.
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:
Sou Apaixonado pela programação e estou trilhando o caminho de ter cada diz mais conhecimento e trazer toda minha experiência vinda do Design para a programação resultando em layouts incríveis e idéias inovadoras! Conecte-se Comigo!