Fundamentos da Computação
1. Componente Curricular:
Fundamentos da Computação
2. Carga Horária:
60 horas
3. Objetivo:
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.
4. Ementa Oficial:
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.
5. Conteúdo Programático:
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.
6. Abordagem Metodológica:
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 (relatório, lista de exercício - manuscritas, apresentação oral, pôster, postagem, vídeo, ...) produzidos durante as aulas e entregues em cada uma das datas especificadas. O aluno também 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.
7. Plano de Aprendizado:
Aula 1
Conteúdo:
Evolução Histórica dos Computadores.
Atividades:
Praticando a Evolução da Computação.
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, ...
Brincando e aprendendo a programar com o Blockly Games.
Avaliativa 1-1.
Produtos:
Aula 2
Conteúdo:
Representação e Processamento dos Dados.
Atividades:
Ensinando a operação de Soma Binária, para um computador digital.
Testando Portas Lógicas básicas no Logic.ly. Opcionalmente no TinkerCAD.
Construindo uma Tabela Verdade para Soma Binária.
Poderíamos até "Calcular" a expressão e o circuito lógico.
Construindo um Circuito de Soma no Logic.ly, usando as operações fundamentais.
Processando dados binários usando hardware e software.
Avaliativa 1-2.
Produtos:
Eletrônica Digital em 3 Experimentos.
Why Do Computers Use 1s and 0s? Binary and Transistors Explained.
Aula 3
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.
Qual o processo de conversão para Hexadecimal e outras Bases?
Exemplos de programas para conversão: Decimal para Binário e Binário para Decimal (processo).
Somando 1 bit com 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 Somar 4 Bits? Para o software, pense nisso na disciplina de programação. No caso do hardware, veremos algo semelhante na próxima aula.
Avaliativa 1-3.
Produtos:
Comparadores: (=,>,<) em 1 Bit, de Igualdade em 4 bits e de (=,>,<) em 4 Bits.
Aula 4
Conteúdo:
Estrutura e Funcionamento do Computador.
Atividades:
Entendendo a estrutura básica e o funcionamento interno do computador:
Uma estrutura de Alto Nível vs uma de Baixo Nível.
Programando o funcionamento (p.ex. subtração) no Simulador K&S (Assembly K&S).
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 Seletor; ii) conectar as entradas aos circuitos AND, OR, NOT e de Soma, e integrar com o Seletor.
Integrar as 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 os COUTs aos CINs a esquerda; iii) conectar mostradores as saídas e ao COUT mais a esquerda.
Avaliativa 1-4.
Produtos:
Aula 5
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.
Aula 6
Conteúdo:
Importância e Classificação dos Dispositivos Periféricos.
Atividades:
Explicando 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 mundo analógico (sinal) e a do computador digital.
Inserindo um sinal digital em um analógico - modulação.
Circuito simplificado para Teclado Hexadecimal (aplicação).
Avaliativa 2-1.
Produtos:
Aula 7
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 2-2.
Produtos:
Aula 8
Conteúdo:
Algoritmos e Programação.
Atividades:
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 a tradução para o código de máquina na RAM e opcionalmente clique em "Run" para executar o programa.
O Interpretador imediatamente traduz e executa a primeira instrução do seu programa, repetindo esta operação para as outras.
Com os Blocos de Código já disponibilizados, tente montar um programa semelhante ao anterior.
Clique no botão de execução e observe a quase que imediata exibição do resultado (se tudo foi montado corretamente).
Verifique nas guias de linguagens, como o aplicativo faz automaticamente a tradução.
O Compilador tem execução muito mais rápida que o interpretador.
Em ambientes de programação on-line como o JDoodle, o processo de compilação é executado automaticamente.
Ao clicar no botão "Execute" a aplicação Web envia o seu programa (código fonte) para o servidor que, automaticamente:
Executa o compilador que traduz todas as instruções de um programa.
Coloca as instruções traduzidas em um único bloco chamado código objeto. Aqui termina a compilação.
Executa o código objeto e exibe o resultado - antes enviado para o computador cliente.
Criando Representação Computacional para Expressões Aritméticas e Lógicas.
Tendo como base a expressão entre parênteses mais a direita do exemplo (expressões), faça:
Abra o programa para acessar os Blocos de Código.
Identifique a sub-expressão com maior prioridade e monte o bloco de código equivalente.
Insira a expressão construída no passo anterior como um dos elementos do bloco de código para a próxima operação.
Crie o bloco de código para a expressão final usando a expressão construída no passo anterior e o dado necessário.
No bloco de exibição, adicione o bloco de expressão montado no passo anterior e execute o programa.
Como exercício faça o programa para resolver a expressão completa.
Avaliativa 2-3.
Produtos:
Aula 9
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 Altair.
Observe o código do programa.
Ligue o Altair para executar um Incremento de 1;
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 conteúdo.
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 2-4.
Produtos:
Aula 10
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.
Aula 11
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 3-1.
Produtos:
Aula 12
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 3-2.
Produtos:
Aula 13
Conteúdo:
Atividades:
Conversando sobre os conceitos básicos.
Apresentando as Redes de Computadores.
Os Tipos e os Formatos de Conexão.
Criando redes em simuladores.
Produtos:
Aula 14
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:
Aula 15
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.
8. Bibliografia Básica:
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.
9. Atividades Avaliativas:
Avaliativa 1-1
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.
Avaliativa 1-2
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:
Avaliativa 1-3
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.
Avaliativa 1-4
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.
Avaliativa 2-1
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:
Avaliativa 2-2
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:
Avaliativa 2-3
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.
Avaliativa 2-4
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.
Avaliativa 3-1
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!.
Avaliativa 3-2
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.