A Ciência da Computação estuda o processamento sistemático e automático da informação por meio de dispositivos eletrônicos.
38.5).Proposta por John von Neumann em 1945, estabelece o conceito de programa armazenado, onde dados e instruções compartilham a mesma memória principal.
Embora frequentemente usados como sinônimos, Arquitetura e Organização referem-se a níveis distintos de abstração computacional.
| Característica | RISC (Reduced Instruction Set Computer) | CISC (Complex Instruction Set Computer) |
|---|---|---|
| Instruções | Instruções simples, fixas e executadas em 1 ciclo de clock. | Instruções complexas de tamanho variável, múltiplos ciclos. |
| Acesso à Memória | Apenas via comandos LOAD e STORE. |
Instruções operam diretamente na memória. |
| Registradores | Grande quantidade de registradores de propósito geral. | Quantidade menor de registradores dedicados. |
| Modos Endereçamento | Poucos e simples. | Múltiplos e altamente complexos. |
| Exemplos de Chips | ARM (smartphones, Apple Silicon M1/M2/M3), RISC-V. | Intel x86 / x86-64 (Core i7, i9), AMD Ryzen. |
Um sistema computacional resulta do trabalho integrado entre recursos físicos (Hardware) e instruções lógicas (Software).
O Sistema Operacional (SO) atua como intermediário entre o usuário/aplicativos e o hardware do computador.
| Atributo | Sistemas Proprietários (Windows / macOS) | Sistemas Livres / Código Aberto (Linux / BSD) |
|---|---|---|
| Licenciamento | Licença EULA fechada, uso pago ou atrelado ao hardware. | Licenças Livres (GPL, MIT, Apache). Livre redistribuição. |
| Acesso ao Código | Código-fonte confidencial e inacessível. | Código totalmente aberto e auditável pela comunidade. |
| Customização | Restrita às opções oferecidas pela empresa criadora. | Total alteração do Kernel, módulos e interfaces gráficas. |
| Exemplos CLI | PowerShell (Get-Process), CMD (dir). |
Bash/Zsh (ls -la, ps aux, grep). |
Pacotes de produtividade indispensáveis para rotinas corporativas e acadêmicas.
| Aplicação | Microsoft Office (Proprietária) | LibreOffice (Livre / Open Source) | Google Workspace (SaaS / Nuvem) |
|---|---|---|---|
| Texto | Word (.docx) |
Writer (.odt) |
Google Docs |
| Planilha | Excel (.xlsx) |
Calc (.ods) |
Google Sheets |
| Apresentação | PowerPoint (.pptx) |
Impress (.odp) |
Google Slides |
| Padrão Documental | OOXML (Office Open XML) | ODF (OpenDocument Format - ISO) | Armazenamento em Nuvem / Exportação |
VLOOKUP / PROCV, SUMIF / SOMASE e Tabelas Dinâmicas para análise sintética de grandes volumes de dados.
A Computação em Nuvem (Cloud Computing) entrega recursos de TI sob demanda via Internet com pagamento conforme o uso (pay-as-you-go).
Segurança da Informação fundamenta-se na Tríade CIA: Confidencialidade, Integridade e Disponibilidade.
Enganação psicológica para induzir o usuário a revelar senhas ou tokens corporativos.
Um SGBD é um software encarregado de criar, consultar, atualizar e administrar dados estruturados de maneira segura e eficiente.
Uso de trava de bloqueio (Pessimistic Locking) ou controle de concorrência multiversão (MVCC - Optimistic). Mecanismos de log como WAL (Write-Ahead Logging) garantem as operações REDO e UNDO em recuperações de falha com Checkpoints.
Extensão procedural da linguagem SQL que permite o desenvolvimento de lógica de negócios diretamente no motor do banco de dados.
DECLARE
-- Declaração de variáveis, constantes e cursores
v_aluno_id NUMBER(6) := 101;
v_nome VARCHAR2(100);
v_media NUMBER(4,2);
BEGIN
-- Bloco de Instruções Executáveis (SQL + Controle Procedural)
SELECT nome, media
INTO v_nome, v_media
FROM alunos
WHERE id = v_aluno_id;
IF v_media >= 7.0 THEN
DBMS_OUTPUT.PUT_LINE('Aluno: ' || v_nome || ' - APROVADO');
ELSE
DBMS_OUTPUT.PUT_LINE('Aluno: ' || v_nome || ' - REPROVADO');
END IF;
EXCEPTION
-- Tratamento Robusto de Exceções
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Erro: Aluno não cadastrado.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Erro inesperado: ' || SQLERRM);
END;
IN, OUT, IN OUT).RETURN, podendo ser invocada dentro de instruções SQL normais.INSERT, UPDATE, DELETE) ou DDL, podendo agir BEFORE ou AFTER.Linguagens de programação são notações formais para instrução e automação de processamento de dados.
| Modelo | Processo | Vantagens / Desvantagens | Linguagens |
|---|---|---|---|
| Compilado | Código-fonte traduzido de uma só vez para binário nativo da CPU. | Alta performance de execução. Compilação demorada. | C, C++, Rust, Go |
| Interpretado | Código traduzido e executado instrução por instrução em tempo real. | Desenvolvimento rápido e portátil. Velocidade de execução menor. | Python, Ruby, PHP |
| Híbrido (Bytecode/JIT) | Código compilado para um bytecode intermediário e executado por uma máquina virtual (JVM / CLR). | Portabilidade total ("Write once, run anywhere") com otimização JIT. | Java, C# |
O paradigma procedural organiza programas por meio de sub-rotinas (funções e procedimentos) reutilizáveis.
Técnica onde uma função chama a si mesma até atingir uma condição de parada (caso base).
// Exemplo em Pseudocódigo: Fatorial Recursivo
funcao fatorial(n)
se n == 0 ou n == 1 entao
retorne 1 // Caso Base
senao
retorne n * fatorial(n - 1) // Passo Recursivo
fimse
fimfuncao
Estruturas de controle determinam a ordem exata de execução das instruções do código.
Execução linear e consecutiva de comandos linha após linha.
if (condicao) { ... } else { ... }switch (valor) { case 1: ... break; default: ... }Python é uma linguagem de altíssimo nível, multiparadigma, com tipagem dinâmica e forte, destacando-se por sua sintaxe limpa e legível.
list): Mutáveis, ordenadas, aceitam duplicatas. Ex.: [1, 2, 3]tuple): Imutáveis, ordenadas. Ex.: (10, 20)dict): Pares chave-valor, altamente otimizados via tabela Hash. Ex.: {"nome": "Ana", "idade": 25}set): Coleção não ordenada de elementos únicos. Ex.: {1, 2, 3}# List Comprehension com Filtragem Condicional
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
quadrados_pares = [x**2 for x in numeros if x % 2 == 0]
print(quadrados_pares) # Saída: [4, 16, 36, 64, 100]
# Manipulação Otimizada de Arquivos com Context Manager (with)
try:
with open("relatorio.txt", "w", encoding="utf-8") as arq:
arq.write("Processamento concluído com sucesso.\n")
except IOError as e:
print(f"Erro na operação de E/S: {e}")
# Definição de Função com Argumentos Flexíveis
def calcular_media(*notas, **detalhes):
media = sum(notas) / len(notas) if notas else 0.0
aluno = detalhes.get("aluno", "Desconhecido")
return f"Aluno: {aluno} | Média: {media:.2f}"
print(calcular_media(8.5, 9.0, 7.5, aluno="Carlos"))
O ecossistema do desenvolvimento Web divide-se entre Frontend (Cliente) e Backend (Servidor).
let/const, Arrow Functions, Template Literals, Destructuring e manipulação do DOM.
// Programação Assíncrona com Fetch API / Async-Await
async function carregarDados() {
try {
const resposta = await fetch('https://api.example.com/dados');
const dados = await resposta.json();
console.log(dados);
} catch (erro) {
console.error('Falha na requisição:', erro);
}
}
$(document).ready(function() {
$("#btnOcultar").click(function() {
$(".conteudo").fadeOut("slow");
});
});
<?php
// Conexão segura via PDO
$pdo = new PDO('mysql:host=localhost;dbname=sistema', 'usuario', 'senha');
$stmt = $pdo->prepare('SELECT * FROM usuarios WHERE id = :id');
$stmt->execute(['id' => 1]);
$usuario = $stmt->fetch();
echo json_encode($usuario);
?>
A escolha correta da estrutura de dados e do algoritmo é determinante para a eficiência assintótica de um sistema.
push e pop ocorrem no topo. Usado em chamadas de funções e histórico do navegador.enqueue) e remoção no início (dequeue). Usado em filas de impressão e mensageria.| Algoritmo | Melhor Caso | Caso Médio | Pior Caso | Espaço Auxiliar |
|---|---|---|---|---|
| Busca Seqüencial | O(1) | O(n) | O(n) | O(1) |
| Busca Binária (Requer Lista Ordenada) | O(1) | O(log n) | O(log n) | O(1) |
| Bubble / Insertion Sort | O(n) | O(n²) | O(n²) | O(1) |
| Quick Sort | O(n log n) | O(n log n) | O(n²) | O(log n) |
| Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) |
1. Qual a diferença fundamental entre arquitetura e organização de computadores?
Resposta: A arquitetura refere-se aos atributos visíveis ao programador (como o conjunto de instruções, modos de endereçamento e tipos de dados), enquanto a organização trata da implementação física e transparente ao programador (sinais de controle, tecnologia de memória e clock).
2. Cite três funções primordiais de um sistema operacional.
Resposta: Gerenciamento de processos, gerenciamento de memória principal/virtual e gerenciamento de arquivos e dispositivos de E/S.
3. O que define um software livre sob a licença GPL?
Resposta: O direito e a liberdade de executar, estudar, modificar o código-fonte e redistribuir cópias ou versões modificadas mantendo a mesma licença livre.
4. Explique em detalhes o que significa cada letra da sigla ACID em bancos de dados.
Resposta: Atomicidade (a transação é executada por inteiro ou revertida), Consistência (o banco transita entre estados válidos), Isolamento (transações concorrentes não interferem entre si) e Durabilidade (dados confirmados persistem fisicamente).
5. O que caracteriza um ataque de phishing e qual sua principal forma de prevenção?
Resposta: É uma técnica de engenharia social voltada a enganar o usuário para obtenção de dados confidenciais. A prevenção envolve treinamento de conscientização, uso de autenticação multifator (MFA) e verificação rigorosa de remetentes e URLs.
6. Qual a diferença entre uma lista e uma tupla em Python?
Resposta: As listas são mutáveis (podem ter seus elementos alterados, adicionados ou removidos após a criação), enquanto as tuplas são imutáveis.
7. Descreva o funcionamento de uma Árvore Binária de Busca (BST).
Resposta: É uma estrutura hierárquica onde cada nó possui no máximo dois filhos. Para qualquer nó, todos os elementos na subárvore esquerda possuem valores menores e todos na subárvore direita possuem valores maiores.
8. Qual é a complexidade de tempo de pior caso e de caso médio da busca binária?
Resposta: O(log n) tanto para caso médio quanto para pior caso, exigindo obrigatoriamente que os dados estejam ordenados.
9. Diferencie os modelos de serviço SaaS, PaaS e IaaS em computação em nuvem.
Resposta: SaaS fornece o software final pronto via web; PaaS entrega a plataforma completa para desenvolvimento e deploy de código; IaaS oferece recursos de infraestrutura virtualizada (servidores, redes e armazenamento).
10. O que é um SGBD e qual o seu papel na arquitetura ANSI/SPARC?
Resposta: É o software de gerenciamento de dados que abstrai o armazenamento em 3 níveis (externo, conceitual e interno), garantindo integridade, segurança e controle de concorrência.
1. Python: Escreva uma função chamada soma_pares que recebe uma lista de números inteiros e retorna a soma de todos os números pares.
def soma_pares(lista):
return sum(num for num in lista if num % 2 == 0)
# Teste da solução
print(soma_pares([1, 2, 3, 4, 5, 6])) # Saída esperada: 12
2. Python: Crie uma list comprehension que gere os quadrados dos números de 1 a 10.
quadrados = [x**2 for x in range(1, 11)]
print(quadrados) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3. PL/SQL: Escreva uma procedure que insira um novo registro na tabela alunos (id, nome, curso).
CREATE OR REPLACE PROCEDURE inserir_aluno(
p_id IN NUMBER,
p_nome IN VARCHAR2,
p_curso IN VARCHAR2
) AS
BEGIN
INSERT INTO alunos (id, nome, curso)
VALUES (p_id, p_nome, p_curso);
COMMIT;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Erro: ID de aluno já existente.');
ROLLBACK;
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Erro na inserção: ' || SQLERRM);
ROLLBACK;
END;
4. JavaScript: Escreva uma função ES6 que filtre um array e retorne apenas valores estritamente maiores que 10.
const maioresQueDez = (array) => array.filter(num => num > 10);
console.log(maioresQueDez([5, 12, 8, 20, 3, 15])); // Saída: [12, 20, 15]
5. Estrutura de Dados: Implemente uma classe Pilha (Stack) em Python com métodos push, pop e is_empty.
class Pilha:
def __init__(self):
self._itens = []
def push(self, item):
self._itens.append(item)
def pop(self):
if self.is_empty():
return None
return self._itens.pop()
def is_empty(self):
return len(self._itens) == 0
# Teste
p = Pilha()
p.push(10)
p.push(20)
print(p.pop()) # 20
print(p.is_empty()) # False
6. Algoritmos: Implemente a Busca Binária de forma iterativa em Python.
def busca_binaria(lista, alvo):
inicio = 0
fim = len(lista) - 1
while inicio <= fim:
meio = (inicio + fim) // 2
if lista[meio] == alvo:
return meio # Retorna o índice
elif lista[meio] < alvo:
inicio = meio + 1
else:
fim = meio - 1
return -1 # Não encontrado
print(busca_binaria([10, 20, 30, 40, 50], 40)) # Saída: 3
Tema: Introdução à Cibersegurança: Identificação e Prevenção de Engenharia Social (Phishing)
Objetivo Geral: Capacitar os alunos a identificar os vetores de ataque por phishing e aplicar os procedimentos operacionais de proteção.
Duração Total: 20 Minutos | Público-Alvo: Estudantes do Curso Técnico em Desenvolvimento de Sistemas
| Slide | Conteúdo e Estratégia Pedagógica | Tempo Estimado |
|---|---|---|
| 1 | Abertura e Apresentação: Boas-vindas, apresentação do tema e objetivos de aprendizagem. | 1 min |
| 2 | Problematização Inicial: Pergunta motivadora: "Quem aqui já recebeu uma mensagem informando que seu nome está no Serasa ou com link de encomenda retida?" | 2 min |
| 3 | Conceituação Teórica: O que é Phishing e Engenharia Social. Diferenciação de Malware tradicional. | 2 min |
| 4 | Tipologia dos Ataques: E-mail Phishing, Smishing, Vishing e Spear Phishing. | 3 min |
| 5 | Estudo de Caso Prático: Análise visual guiada de um e-mail fraudulento real. | 3 min |
| 6 | Checklist de Indicadores de Fraude: Domínio do remetente, erros ortográficos, senso de urgência e links mascarados. | 3 min |
| 7 | Mecanismos Tecnológicos de Defesa: Autenticação Forte (MFA), SPF/DKIM/DMARC e Educação Continuada. | 3 min |
| 8 | Atividade de Fixação Interativa: Apresentação de 2 cenários rápidos para classificação pelos alunos. | 2 min |
| 9 | Encerramento e Síntese: Resumo dos pontos-chave, espaço para dúvidas e avaliação formativa. | 1 min |
Terminologia técnica essencial para o perfil profissional de Instrutor e Desenvolvedor de Sistemas.
| Termo | Definição Técnica |
|---|---|
| Algoritmo | Sequência finita e não ambígua de instruções passo a passo para resolver um problema. |
| API (Application Programming Interface) | Conjunto de rotinas e padrões de programação para acesso a uma aplicação de software ou plataforma. |
| Arquitetura MVC | Padrão arquitetural dividido em Modelo (Dados), Visão (Interface) e Controlador (Regra de Negócio). |
| Barramento (Bus) | Conjunto de linhas físicas de comunicação que transferem dados entre os componentes do computador. |
| Bytecode | Formato de código intermediário gerado por compiladores e executado por uma Máquina Virtual. |
| Cache | Memória ultra-rápida de pequena capacidade usada para acelerar o acesso aos dados mais frequentes. |
| Compilador | Programa que traduz todo o código-fonte de alto nível para código de máquina nativo antes da execução. |
| Deadlock | Situação na qual dois ou mais processos ficam bloqueados indefinidamente aguardando recursos mantidos uns pelos outros. |
| Driver | Software especialista que instrui o Sistema Operacional sobre como se comunicar com um hardware específico. |
| Engenharia Social | Manipulação psicológica de pessoas para que executem ações ou divulguem informações confidenciais. |
| Firewall | Dispositivo ou software de segurança de rede que monitora e filtra o tráfego de entrada e saída. |
| Firmware | Software residente na memória ROM do hardware com rotinas de inicialização e controle do dispositivo. |
| Hash | Função matemática unidirecional que mapeia dados de tamanho variável em um valor de tamanho fixo. |
| Interpretador | Programa que lê e executa o código-fonte linha por linha em tempo de execução. |
| Kernel | Núcleo fundamental do Sistema Operacional responsável por conectar o software ao hardware. |
| Middleware | Software que fornece serviços além dos oferecidos pelo SO para facilitar a comunicação entre aplicações. |
| ORM (Object-Relational Mapping) | Técnica de programação para conversão de dados entre sistemas de tipos incompatíveis em linguagens orientadas a objetos e bancos relacionais. |
| Ponteiro (Pointer) | Variável cujo valor é o endereço direto de memória de outra variável. |
| REST (Representational State Transfer) | Estilo arquitetural para desenvolvimento de web services baseado nos métodos nativos do protocolo HTTP. |
| Transação | Unidade lógica de execução em banco de dados que deve satisfazer integralmente as propriedades ACID. |