Conceitos-chave:
Arquitetura de Von Neumann:
Memória:
Funções do SO:
Proprietários: Windows, macOS — licença paga, código fechado.
Livres: Linux (Ubuntu, Fedora, Debian), BSD — código aberto, licença GPL, gratuito.
| Aspecto | Proprietário | Livre |
|---|---|---|
| Código | Fechado | Aberto |
| Custo | Geralmente pago | Gratuito |
| Suporte | Oficial | Comunidade |
| Exemplos | Windows, macOS | Linux, FreeBSD |
Proprietárias: Microsoft Office (Word, Excel, PowerPoint), Apple iWork (Pages, Numbers, Keynote).
Livres: LibreOffice (Writer, Calc, Impress), OpenOffice.
Características: processador de texto, planilha eletrônica, apresentações, compatibilidade de formatos (docx, xlsx, pptx, odt, ods, odp), recursos de colaboração (Google Workspace).
Vantagens: acessibilidade, escalabilidade, colaboração em tempo real, backup automático.
Definição: software que gerencia banco de dados, permitindo criação, consulta, atualização e administração.
Arquitetura ANSI/SPARC (3 níveis):
Segurança: autenticação, autorização, criptografia, auditoria.
Integridade: restrições de integridade (chave primária, estrangeira, check, not null); integridade referencial.
Concorrência: controle de concorrência (lock, timestamp, isolamento); problemas: lost update, dirty read, non-repeatable read, phantom read.
Gerenciamento de Transações:
Recuperação após falha: log de transações (redo, undo), checkpoints, técnicas: rollback, rollforward.
PL/SQL (Procedural Language/Structured Query Language): extensão procedural da Oracle para SQL.
Estrutura de bloco:
DECLARE
v_nome VARCHAR2(50);
BEGIN
SELECT nome INTO v_nome FROM alunos WHERE id = 1;
DBMS_OUTPUT.PUT_LINE('Nome: ' || v_nome);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Aluno não encontrado');
END;
Disparadores automáticos em eventos INSERT, UPDATE, DELETE.
Paradigmas:
Compiladas vs. Interpretadas:
Tipos de dados: elementares (inteiro, real, caractere, booleano) e estruturados (array, registro, lista, pilha, fila).
Funções vs. Procedimentos: função retorna valor; procedimento executa ações, não retorna valor.
Passagem de parâmetros: por valor (cópia), por referência (endereço).
Exemplo em pseudocódigo:
funcao soma(a, b)
retorne a + b
fimfuncao
Sequência: execução linear.
Seleção: if / else, switch / case.
Repetição: while (pré-testada), do-while (pós-testada), for (contada).
Exemplo (Python):
# if-else
if idade >= 18:
print("Maior de idade")
else:
print("Menor de idade")
# for
for i in range(5):
print(i)
# while
cont = 0
while cont < 5:
print(cont)
cont += 1
True, False; expressões booleanas.
# Lista
frutas = ["maçã", "banana", "uva"]
for fruta in frutas:
print(fruta)
# Loop com condição
numeros = [1, 2, 3, 4, 5]
pares = [n for n in numeros if n % 2 == 0]
print(pares) # [2, 4]
def soma(a, b):
return a + b
resultado = soma(3, 5)
print(resultado) # 8
Imutáveis, similares a listas mas entre parênteses.
coordenadas = (10, 20)
x, y = coordenadas
Leitura de arquivos, manipulação de strings, listas e dicionários.
Biblioteca JavaScript que simplifica manipulação do DOM, eventos, AJAX.
$(document).ready(function() {
$("button").click(function() {
$("p").hide();
});
});
1. Qual a diferença entre arquitetura e organização de computadores?
Resposta: Arquitetura refere-se aos atributos visíveis ao programador (conjunto de instruções, modos de endereçamento), enquanto organização trata da implementação física (tecnologia da memória, frequência do clock).
2. Cite três funções de um sistema operacional.
Resposta: Gerenciamento de processos, gerenciamento de memória, gerenciamento de arquivos.
3. O que é um software livre?
Resposta: Software com código-fonte aberto, que pode ser usado, modificado e distribuído livremente, geralmente sob licenças como GPL.
4. Explique as propriedades ACID de uma transação.
Resposta: Atomicidade (tudo ou nada), Consistência (banco permanece válido), Isolamento (transações não interferem), Durabilidade (efeitos persistidos).
5. O que é phishing?
Resposta: Técnica de engenharia social que usa mensagens falsas para obter dados sensíveis, como senhas e números de cartão.
6. Qual a diferença entre uma lista e uma tupla em Python?
Resposta: Listas são mutáveis (podem ser alteradas) e tuplas são imutáveis (não podem ser alteradas após criação).
7. O que é uma árvore binária de busca?
Resposta: Estrutura de dados hierárquica onde cada nó tem no máximo dois filhos, e para cada nó, todos os valores à esquerda são menores e à direita são maiores.
8. Qual a complexidade do algoritmo de busca binária?
Resposta: O(log n), pois divide o espaço de busca pela metade a cada iteração.
9. Diferencie SaaS, PaaS e IaaS.
Resposta: SaaS: software como serviço (aplicativos prontos); PaaS: plataforma como serviço (ambiente de desenvolvimento); IaaS: infraestrutura como serviço (máquinas virtuais, armazenamento).
10. O que é um SGBD?
Resposta: Sistema de Gerenciamento de Banco de Dados, software que gerencia a criação, manipulação e administração de bancos de dados.
1. Python: Escreva uma função que recebe uma lista de números e retorna a soma dos pares.
def soma_pares(lista):
soma = 0
for num in lista:
if num % 2 == 0:
soma += num
return soma
# Teste
print(soma_pares([1, 2, 3, 4, 5, 6])) # 12
2. Python: Use list comprehension para criar uma lista com os quadrados dos números de 1 a 10.
quadrados = [x**2 for x in range(1, 11)]
print(quadrados)
3. SQL/PL-SQL: Crie uma procedure que insere um novo aluno em uma 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;
END;
4. JavaScript: Escreva uma função que recebe um array e retorna apenas os números maiores que 10.
function maioresQueDez(array) {
return array.filter(num => num > 10);
}
console.log(maioresQueDez([5, 12, 8, 20, 3])); // [12, 20]
5. Estruturas de Dados: Implemente uma pilha em Python com métodos push e pop.
class Pilha:
def __init__(self):
self.itens = []
def push(self, item):
self.itens.append(item)
def pop(self):
if not self.itens:
return None
return self.itens.pop()
# Teste
p = Pilha()
p.push(1)
p.push(2)
print(p.pop()) # 2
6. Algoritmo: Implemente a busca binária em Python.
def busca_binaria(lista, alvo):
esq, dir = 0, len(lista) - 1
while esq <= dir:
meio = (esq + dir) // 2
if lista[meio] == alvo:
return meio
elif lista[meio] < alvo:
esq = meio + 1
else:
dir = meio - 1
return -1
print(busca_binaria([1, 3, 5, 7, 9], 5)) # 2
Objetivo de aprendizagem: Ao final da aula, o aluno será capaz de identificar os principais tipos de phishing e aplicar medidas preventivas.
Duração: 20 minutos
Público: Alunos de curso técnico em Desenvolvimento de Sistemas
Materiais: Slides, exemplos reais de e-mails fraudulentos, quiz interativo
| Slide | Conteúdo | Tempo |
|---|---|---|
| 1 | Título: Cibersegurança: Phishing – Como se Proteger? Apresentação do instrutor | 1 min |
| 2 | Problematização: "Você já recebeu um e-mail suspeito do seu banco? O que fez?" Levantar respostas | 2 min |
| 3 | Definição: O que é phishing? "Técnica de engenharia social que usa mensagens falsas para obter dados sensíveis." | 2 min |
| 4 | Tipos de phishing: E-mail, SMS (smishing), Voz (vishing), Spear phishing (direcionado) | 3 min |
| 5 | Exemplo real: Mostrar e-mail falso com características suspeitas (remetente, links, urgência) | 3 min |
| 6 | Sinais de alerta: Erros de gramática, URLs estranhas, pedidos urgentes, anexos inesperados | 3 min |
| 7 | Medidas preventivas: Verificar remetente, não clicar em links, usar autenticação de dois fatores, manter software atualizado | 3 min |
| 8 | Atividade prática: Mostrar 3 mensagens e pedir que identifiquem quais são phishing | 2 min |
| 9 | Fechamento: Recapitular os sinais e medidas. Perguntas para verificação: "Qual a diferença entre phishing e spyware?" | 1 min |
Dicas para apresentação: