Fundamentos da Computação
60 horas
Capacitar o aluno a conhecer os princípios fundamentais do funcionamento e da programação dos computadores (hardware e software), entendendo os usos e as terminologias básicas do mundo dos computador e da Internet.
Visão geral da representação e processamento da informação; Evolução histórica dos computadores; Componentes Básicos e Periféricos dos computadores; Noções sobre comunicações e redes de computadores; Importância, uso e diversidade das Linguagens de Programação; Noções gerais sobre o funcionamento dos Sistemas Operacionais.
Histórico e Fundamentos do Computador.
Evolução Histórica dos Computadores.
Representação e Processamento dos Dados.
Introdução aos Sistemas de Numeração.
Estrutura e Funcionamento do Computador.
Importância e Classificação dos Dispositivos Periféricos.
Software Básico.
Diversidade e Paradigmas das Linguagens de Programação.
Algoritmos e Programação.
Introdução aos Sistemas Operacionais.
Características dos Principais Sistemas Operacionais.
Diversidade das Aplicações Computacionais.
Redes e Internet.
Redes de Comunicação de Dados.
Sistemas Distribuídos e Internet.
Aprender fazendo e fazer aprendendo. As ações implementadas têm como foco o aprendizado dos Fundamentos da Computação pelo uso de recursos computacionais - privilegiando o projeto por simuladores e o desenvolvimento prático; seguido de exposições teóricas, apoiadas por: simulações, slides e vídeos. Em resumo, a metodologia tem como base a relação prática entre Conteúdos, Atividades e Produtos. Neste contexto, o conteúdo é toda base de conhecimento necessária a aula; a atividade é tida ação de aprendizado e; o produto é qualquer produção prática e/ou teórica sobre o conteúdo, podendo até ser uma aplicação deste ou até mesmo uma ação de aprendizado com escopo expandido.
A nota final será dada pelas avaliações dos artefatos (provas práticas e teóricas, relatórios, listas de exercícios - manuscritas, apresentações orais, infográficos, postagens, vídeos, ...) produzidos durante as aulas e entregues em das datas especificadas. O aluno também poderá ser avaliado através de outros recursos, como p.ex. a frequência e a apresentação de artefatos não obrigatórios - os quais poderão até ter pontuação extra.
Conteúdo:
Evolução Histórica dos Computadores.
Atividades:
Apresentando as Gerações dos Computadores.
A Visão Geral das Gerações e a Evolução e Miniaturização dos Computadores.
Computadores têm como base os Circuitos Integrados, compostos por Portas Lógicas e estas por Transístores.
Implementação de Portas Lógicas com Transistores.
Praticando a Evolução dos Computadores.
O computador como Máquina Analógica: Ábaco, Pascalina, Bombe, ...
O computador como Máquina Digital: IAS (Manual), Altair, ULA de 1 Bit (protótipo), UCP de 2 Bits, ...
Evolução na Programação: Ada, Fortran, Fluxograma, Diagrama de Chapin, Blockly Demos, Scratch, AppInventor, ...
Discutindo sobre Classificação e Tipologia.
Sistemas Embarcados e Industriais.
Iniciando o aprendizado de programação com o Blockly Games.
Avaliativa: Em equipes de 3 a 5 alunos, desenvolver uma simples animação (ou jogo) com o tema "Evolução Histórica dos Computadores". Use como ferramenta de desenvolvimento o Scratch. Lembrem-se que o relatório (roteiro) desta atividade fará parte do trabalho prático da primeira avaliação.
Produtos:
Conteúdo:
Representação e Processamento dos Dados.
Atividades:
Comentando sobre o Computador Digital e sua Organização.
O computador pode Manipular/Processar dados reais "materializados" em Bits e Seus Derivados.
A Realidade pode ser "Manipulada", mas antes deve ser Representada por Bits.
Podem existir Diversas Representações para um Número Binário.
O processamento é efetivado por Portas Lógicas, ou pela Combinação de Portas e/ou Componentes. P.ex. Semáforo Digital.
Exemplificando o Processamento Binário com a operação de Soma, ou Subtração.
Iniciar testando as Operações Lógicas Fundamentais no Logic.ly.
Construir uma Tabela Verdade para Soma Binária. Podemos até "Calcular" a expressão e o circuito lógico.
Construir um Circuito de Soma no Logic.ly, usando as Portas Lógicas Básicas.
Apresentando o processamento de Dados Binários usando Hardware e Software.
Exibir um Caractere (Tabela ASCII) usando o Simple 8-Bit Assembler.
Avaliativa: Em equipes de 3 a 5 alunos, no Logic.ly, construir um módulo (circuito integrado) de Soma Completa e usar quatro deles, para montar um Somador de 4 Bits. Novamente lembro que o relatório (roteiro) desta atividade fará parte do trabalho prático da primeira avaliação.
Produtos:
Eletrônica Digital em 2 Produtos.
Why Do Computers Use 1s and 0s? Binary and Transistors Explained.
Processamento de dados: o que é, tipos e como se tornar um especialista.
Conteúdo:
Atividades:
Convertendo de Decimal para Binário.
Iniciar com a Decomposição Decimal com o método das Múltiplas Divisões por 10.
Exemplos de programas para conversão: Decimal para Binário e Binário para Decimal (processo).
Qual o processo de conversão para Hexadecimal e outras Bases?
Representando Números Binários Negativos.
As representações em Complemento de 1 (pouco usada) e com Complemento de 2.
Detalhamento do processo de Cálculo do Complemento de 2 e de Conversão de um Binário Negativo para Decimal.
Exemplo de Representação dos Números Inteiros em Binário (4 Bits).
Implementando, em software, a soma de1 bit com software. P.ex.: Blockly, Arduino e Micro:Bit.
As soluções de software (exceto Micro:Bit) foram implementadas simulando a operação de Soma em Hardware.
Qual o processo para o desenvolvimento de uma software para Soma de 4 Bits? Lembre dos Comandos de Controle de Fluxo da disciplina de programação.
Avaliativa: Em equipes de 3 a 5 alunos, no Logic.ly, construa um módulo de Subtração de 4 Bits, usando como base o módulo Somador de 4 Bits desenvolvido na atividade da Aula 2 e conhecimentos sobre Complemento de 2. Opcionalmente pode ser desenvolvido um Somador/Subtrator no TinkerCAD, usando como base o CI 74283. Após isso, desenvolva o relatório da atividade.
Produtos:
Programa para conversão de Decimal para Binário.
Comparadores: (=,>,<) em 1 Bit, de Igualdade em 4 bits e de (=,>,<) em 4 Bits.
Conteúdo:
Estrutura e Funcionamento do Computador.
Atividades:
Exemplificando a Operação Básica em um Computador.
O Fluxo de Operações em um Computador e similaridade com o Funcionamento da UCP. i) insira valores inteiros nos registradores R2 e R3; ii) no Banco de Registradores, selecione R2 e R3 como elementos de entrada para a ULA; iii) na ULA selecione a operação desejada, p.ex. subtração e; iv) execute a simulação.
Comparando uma representação estrutural de Alto Nível, com uma de Baixo Nível.
Programando o funcionamento (p.ex. subtração) no Simulador K&S (Assembly K&S). Basta executar a simulação com os dados em, p.ex. R2 e R3; e que, a partir do endereço zero da memória, seja inseridas as instruções SUB R0 R2 R3 e HALT. Complementar o programa, de modo que os dados estejam em algum lugar da memória, p.ex. a partir do endereço 10.
Implementando uma ULA de 4 Bits, no Logic.ly.
Construir uma ULA de 1 Bit e 4 Operações: i) construir o CI Somador e o CI Multiplexador; ii) conectar as entradas aos circuitos AND, OR, NOT e de Soma, e integrar com o Multiplexador - Download Somador e Mux 4x1.
Integrar 4 ULAs de 1 Bit: i) dispor as 4 ULAs, lado a lado; ii) inserir as chaves de entrada (4 bits A e B) e conectá-las as entradas das ULAs; iii) "zerar" o CIN mais a direita e conectar os COUTs aos CINs, da direita para esquerda; iii) conectar mostradores as saídas e ao COUT mais a esquerda.
Avaliativa: Em equipes de 3 a 5 alunos, no Logic.ly, reiniciar o processo de implementação da ULA de 4 Bits, adicionando as operações NAND, NOR, XOR e XNOR. Após isso, desenvolva o relatório da atividade e o Relatório da Primeira Avaliação.
Produtos:
Conteúdo: Revisão de conteúdos e 1ª Avaliação.
Atividades: Apresentação e Avaliação de trabalhos.
Produtos: Relatório de Produto 1 e/ou Prova Prática 1.
Conteúdo:
Importância e Classificação dos Dispositivos Periféricos.
Atividades:
Explicando e aplicando o Conceito de Periféricos.
Os periféricos para realidade virtual (CAVE) e outros tipos de interfaces humano computador.
Entendendo como os periféricos se comunicam.
A comunicação via Barramento: visão geral do conceito, alguns tipos, organização e exemplos.
A comunicação do Humano Analógico (Tipo do Sinal) e a do Computador Digital.
Inserindo um sinal digital em um analógico - Modulação.
Circuito simplificado para Teclado Hexadecimal (Exemplo de Aplicação).
Exercício: Na lista de dispositivos encontrada no texto "Periféricos (e sua função)", escolha aleatoriamente 2 dispositivos e desenvolva um infográfico sobre eles. Pode usar como exemplo os seguintes: Exemplo 1, Exemplo 2 e Exemplo 3. Gere um PDF do material desenvolvido e aguarde as instruções para entrega da atividade.
Produtos:
Conteúdo:
Diversidade e Paradigmas das Linguagens de Programação.
Atividades:
Observando a Evolução e Organização das Linguagens de Programação.
Modos de Programação: tradicional, visual, orientada a eventos, orientada a objetos, ...
Diferença entre tradutor, compilador (fonte e objeto) e interpretador.
Entendendo os Paradigmas de Programação.
Avaliativa: Em grupos de 3 a 5 alunos, desenvolver um relatório técnico que identifique e caracterize, no contexto dos paradigmas de programação, as linguagens C, C++, Python e Rust e Closure. Após isso, desenvolva o relatório da atividade. Use como base os materiais do "Conteúdo" e os textos a seguir:
Produtos:
Conteúdo:
Algoritmos e Programação.
Atividades:
Exemplos: i) Algoritmo em Linguagem Natural e; ii) Representação Gráfica de um Algoritmo.
Outros Conceitos para Algoritmo. Existe alguma falha nessas Assertivas para Algoritmo?
Visões para Fluxogramas: Simplificada, Informal e Estruturada.
Diferenciando Tradutores:
O Montador traduz da linguagem Assembly, para a linguagem da máquina.
Abra o 8-Bit Assembler e apague o programa na área de código. Digite na área de código as instruções mov a,10, add a,5 e hlt. Uma instrução em cada linha.
Observe a RAM "zerada" e clique no botão "Assemble", abaixo da área de código. Observe também a tradução para o código de máquina na RAM.
O Interpretador traduz e executa a primeira instrução do programa, repetindo a operação para as instruções seguintes.
Com os Blocos de Código já disponibilizados, tente montar um programa semelhante ao anterior.
O Compilador gera um código executável traduzindo completamente um código fonte.
Etapas do Processo de Compilação e Exemplo do Processo em C.
O Processo de Compilação pode ser Executado Manualmente, em Ambientes Gráficos Desenvolvimentos, ou em ambientes de programação on-line como o JDoodle.
Criando representações computacionais para expressões aritméticas e lógicas.
Tendo como base a primeira expressão dos Exemplos, faça um programa no 8-Bit Assembler para implementá-la; lembrando que em Assembly, cada instrução executa apenas uma operação. Deste modo, o programador deve identificar as precedências.
Avaliativa: Em grupos de 3 a 5 alunos, desenvolver os programas para resolver as outras expressões dos Exemplos. Após isso, desenvolvam o relatório da atividade.
Produtos:
Conteúdo:
Visão Geral dos Sistemas Operacionais.
Atividades:
Comentando sobre o conceito, as funções e o componentes de um SO.
Visão geral e taxonomia dos SOs.
Incrementando de 1 no primeiro micro computador (Artigo de Lançamento).
Inicie o simulador do e observe o Código do Programa a ser executado (Incremento de 1).
Ligue o Altair e selecione o endereço 0, ou seja: A7-A0 com 00000000 clicando em EXAMINE.
No endereço selecionado, insira o primeiro byte, ou seja: D7-D0 com 00111100 e DEPOSIT.
Nos endereços de 1 a 4, insira os outros bytes. Ou na guia Debug, entre com "3c 32 10 00 76".
Execute clicando em RESET e depois RUN. Selecione o endereço 00010000 e verifique o resultado.
Incrementando de 1 em um computador com Linux.
Inicie o simulador do Linux e entre com o comando "expr 0 + 1".
Incrementando de 1 em seu computador ou celular.
Abra a sua calculadora preferida e execute a operação "0 + 1".
Avaliativa: Em grupos de 3 a 5 alunos, alterar o programa do exemplo inicial, inserindo no início do mesmo uma instrução LDA (para copiar no registrador A), um valor manualmente inserido no endereço 128. Para referência, acesse o Conjunto de Instruções do 8080. Após após a alteração e os devidos testes, desenvolvam o relatório da atividade.
Produtos:
Conteúdo: Revisão de conteúdos e 2ª Avaliação.
Atividades: Apresentação e Avaliação de trabalhos.
Produtos: Relatório de Produto 2 e/ou Prova Prática 2.
Conteúdo:
Características dos Principais Sistemas Operacionais.
Atividades:
Comentando a Visão Geral dos SOs.
Um pouco da Evolução Histórica.
A Organização Geral dos SOs.
Detalhes da interação com o Hardware e com as Aplicações.
Comentando sobre os SOs mais comuns.
A diversidade do Linux.
A Evolução das IUs: do NeXTSTEP às facilidades dos dispositivos móveis.
Avaliativa: Em grupos de 3 a 5 alunos, desenvolver uma apresentação interativa ou infográfico interativo de 5 a 10 minutos sobre o tema "Características dos Principais Sistemas Operacionais". Use como base os materiais do "Conteúdo" da Aula 11 e o texto O que é Sistema Operacional? O guia completo!
Produtos:
Conteúdo:
Diversidade das Aplicações Computacionais.
Atividades:
Iniciando pelos Tipos de Computadores.
Apresentando a Classificação Geral dos Softwares e seus sub-tipos:
Sistemas Operacionais, de Programação e de Aplicação.
Um pouco sobre Arquitetura de Software.
Observando alguns tipos de Licenças de Software.
As licenças Creative Commons e suas aplicações.
Como distribuir software livre.
Avaliativa: Em grupos de 3 a 5 alunos, desenvolver um pequeno artigo (de 2 a 4 páginas) sobre o tema: "Diversidade das Aplicações Computacionais". Os materiais do "Conteúdo" e o texto "Computador: conceitos e aplicações" devem ser usados como base para gestão do conhecimento da atividade.
Produtos:
Conteúdo:
Atividades:
Conversando sobre os conceitos básicos.
Apresentando as Redes de Computadores.
O Histórico da Internet e de seus Principais Protocolos.
Os Tipos e os Formatos de Conexão.
Avaliativa: Em grupos de 3 a 5 alunos, no simulador Filius, desenvolver e testar uma pequena LAN. Após isso, deve ser criada uma nova LAN e implementada a conexão entre as duas redes.
Produtos:
Conteúdo: Revisão de conteúdos e 3ª Avaliação.
Atividades: Apresentação e Avaliação de trabalhos.
Produtos: Relatório de Produto 3 e/ou Prova 3.
Conteúdo:
Sistemas Distribuídos e Internet.
Atividades:
Apresentando a Internet.
O Avanço da Web, dos seus recursos, do modo como os usuários interagem com ela, e do seu principal protocolo.
Entendendo a Definição e as Características de um Sistema Distribuído (SD).
As Arquiteturas, os Componentes Físicos e os Tipos de SDs.
Componentes: Sistemas Operacionais, Banco de Dados, Sistemas e Aplicações.
Produtos:
Alves, W. P. (2010). Informática fundamental – introdução ao processamento de dados. Érica.
Moraes, C. R. (2001). Estruturas de Dados e Algoritmos – uma Abordagem Didática. Berkeley, 1a edição.
Velloso, F. (2017). Introdução a Informática. Elsevier.
Em grupos de 5 a 8 alunos, desenvolver uma apresentação interativa ou infográfico interativo de 5 a 10 minutos, sobre o tema "A Evolução Histórica dos Computadores".
Os materiais do "Conteúdo" da Aula 1 e os textos a seguir devem ser usados como base para gestão do conhecimento:
Recursos como Genially, Canva, Prezi, Miro e outros, podem ser usados para o desenvolvimento do produto.
Como é uma equipe relativamente grande, é aconselhável que se use uma técnica como a de BrainStorm, no desenvolvimento de alguns dos produtos da atividade.
Em grupos de 5 a 8 alunos, desenvolver uma apresentação interativa ou infográfico interativo de 5 a 10 minutos, sobre o tema "Representação e Processamento dos Dados". Observa-se que devido a amplitude do tema, a equipe poderá dar destaque a um tópico específico. Use como base os materiais do "Conteúdo" da Aula 2 e os textos a seguir:
Em grupos de 5 a 8 alunos, desenvolver e responder uma Lista de Exercícios com 10 questões (pelo menos 5 de cálculo) sobre o tema "Sistema de Numeração". Use como base os materiais do "Conteúdo" da Aula 3 e o texto Representação de Dados e Sistemas de Numeração.
Em grupos de 5 a 8 alunos, desenvolver e responder uma Lista de Exercícios com 10 questões sobre o tema "Estrutura e Funcionamento do Computador". Use como base os materiais do "Conteúdo" da Aula 4 e o texto Organização Básica de um Sistema de Computador.
Em grupos de 5 a 8 alunos, desenvolver uma apresentação interativa ou infográfico interativo de 5 a 10 minutos, sobre o tema "Importância e Classificação dos Dispositivos Periféricos". Observa-se que devido a amplitude do tema, a equipe poderá dar destaque a um tópico específico. Use como base os materiais do "Conteúdo" da Aula 6 e os textos a seguir:
Em grupos de 5 a 8 alunos, desenvolver uma apresentação interativa ou infográfico interativo de 5 a 10 minutos, que apresente, identifique e caracterize, no contexto dos paradigmas de programação, as linguagens C, C++, Python e Rust e Closure. Use como base os materiais do "Conteúdo" da Aula 7 e os textos a seguir:
Em grupos de 5 a 8 alunos, desenvolver e responder uma Lista de Exercícios com 10 questões sobre o tema "Algoritmos e Programação". Use como base os materiais do "Conteúdo" da Aula 8 e o texto Introdução à Lógica de Programação.
Em grupos de 5 a 8 alunos, desenvolver e responder uma Lista de Exercícios com 10 questões sobre o tema "Visão Geral dos Sistemas Operacionais". Use como base os materiais do "Conteúdo" da Aula 9 e o texto O que é um sistema operacional? Veja tipos e exemplos.
Em grupos de 5 a 8 alunos, desenvolver e responder uma Lista de Exercícios com 10 questões sobre o tema "Características dos Principais Sistemas Operacionais". Use como base os materiais do "Conteúdo" da Aula 11 e o texto O que é Sistema Operacional? O guia completo!.
Em grupos de 5 a 8 alunos, desenvolver um pequeno artigo (de 2 a 4 páginas) sobre o tema: "Diversidade das Aplicações Computacionais"
Os materiais do "Conteúdo" da Aula 12 e os textos a seguir devem ser usados como base para gestão do conhecimento da atividade.