Tecnologias da Informação e Comunicação

Tutores de curiosidade - Um coach pessoal que não só fornece inspiração e conteúdos capazes de estimular a curiosidade, como ensina a arte da descoberta do conhecimento. Temas relacionados com a informática, deste, arduino, redes de computadores, sistemas digitais, linguagens de programação, entre outros.
A evolução faz-se mais a colaborar do que a competir.

Sistemas Digitais

Sistemas de Numeração

Estrutura de um sistema de Numeração. Noção significância posicional. Sistemas de Numeração: binário, octal, hexadecimal. Conversão de bases numéricas Operações aritméticas (adição e subtração) em qualquer base. Código de complementos. Adição e subtração de números em código de complementos.
Álgebra e Lógica Booleana

Operadores lógicos not, and, or, xor, nand, nor, função booleana.Tabela de verdade. Teoremas da Álgebra de Boole. Leis de DeMorgan. Circuitos lógicos. Simplificação algébrica de funções booleanas. Simplificação de funções, a partir do mapa de Karnaugh.



Circuitos Combinatórios
Circuitos combinatórios com múltiplas saídas. Multiplexer. Decoder/demultiplexer. Circuito MSI decoder BCD/7 segmentos. Encoder (codificador com prioridades). Circuito MSI priority encoder. Circuito comparador.


Circuitos Sequenciais
Circuitos sequenciais. Flip-flops tipo: S-R, D latch, D edge-triggered, J-K, e T. Diagrama temporal. Preset / clear ou set / reset. Sinais síncronos e assíncronos. Circuitos contadores simples. Noção de registo.


Introdução à Lógica Programável
Lógica programável sobre a lógica tradicional. Estrutura interna dos circuitos de lógica programável. Conceito de linguagens de programação: ABEL, VHDL, CPUDL ou PALASM. Estrutura de um programa em CPUDL (ou PALASM).


Programação Pascal
Introdução à programa ção em Pascal



Lógica programável sobre a lógica tradicional. Estrutura interna dos circuitos de lógica programável. Conceito de linguagens de programação: ABEL, VHDL, CPUDL ou PALASM. Estrutura de um programa em CPUDL (ou PALASM).


Arquitetura de Computadores
História dos computadores. Conceito de barramento (bus). Tipos de memória usada num PC (DRAM,SRAM para as caches, VRAM e WRAM para as memórias de vídeo, EEPROMs, etc). Memória "cache". Memória de DRAM num PC. Interface vídeo num PC compatível. Disco rígido e periféricos.


CORE – núcleo do processador.

Existem no mercado processadores com mais do que um núcleo (core), isto significa que o processador consegue distribuir o processamento pelos núcleos aumentando a velocidade de processamento. Este processo tem o nome de Parallelization ou Parallel computing, que em português pode ser traduzido como computação paralela. https://en.wikipedia.org/wiki/Parallel_computing

Imagine o seguinte exemplo, um processador deve efetuar os seguinte cálculo 5x4x3x2

CPU
1 core 5x4=20 20x3=60 60x2=120
2 core core 1 (5x4=20)
core 2 (20x3=60)
60x2=120

Verifica-se que o processador com 1 core necessita de executar 3 processamentos, enquanto o core 2 a penas necessita de 2. O mesmo sucede para as imagens ou qualquer outro tipo de informação processada.


32 vs 64 bits

Qual a diferença entre um processador de 32 e 64 bits. A principal diferença está na quantidade de RAM que cada processador suporta, assim sendo um processador de 32 bits suporta até 3,25 Gb de memória RAM enquanto o processador de 64 bits suporta até 16 Exabyte.


Tipos de linguagens de programação

Low-level programming language (linguagens de baixo nível) - é uma linguagem de programação que muito relacionada com o SET de instruções da máquina. É uma linguagem que está “perto do hardware”. Programas escritos em linguagens de baixo nível tendem a ser relativamente não-portáteis, principalmente por causa da estreita relação entre a linguagem e a arquitetura de hardware. or assembly language.
Para esta programação pode ser usada:
- linguagem máquina machine code - A única linguagem entendida pelo computador. (apenas entendível pelo computador, constituída por zeros e uns 01010101, não entendível para humanos)
ou
- linguagem assambley ou assembler que utiliza a já referida linguagem do Instruction SET (ADD; SUB; JUMP; etc.. ). Contudo, e apesar de ser uma linguagem de baixo nível é necessário traduzi-la para linguagem máquina, para que seja entendível pelo computador, para esse efeito é utilizado um tradutor ou assembler. ex: ADD; SUB; JUMP >>> ASEMBLER >>>>> Computador

high-level programming language (linguagem de programação de alto nível) é uma linguagem de programação distante do código máquina em comparação com linguagens de programação de baixo nível. Podem ser usados elementos da linguagem natural tornando-se mais fácil aos humanos, alias foi com esse propósito que foi inventada. Exemplo C++ que utiliza caracteres como +*-/ sem recorrer a palavras do SET de instruções ou a código binário.