Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução aos Computadores e as Linguagem de Programação Sumário ● Introdução à Unidade Curricular ● Conceitos de Hardware e Software ● Arquitetura de Computadores ● Evolução dos computadores ● Arquiteturas Von Newman e Harvard ● Partes de um Computador Moderno ● Partes de uma Placa Mãe ● Linguagem de Programação ● Classificação das Linguagens de Programação ● Evolução Historia das Linguagens de Programação Equipa Docente ➔ Dra. Elisabeth Alves Andrade ➔ MsC. Erik Marichal Arbona Carga Horária Atividades Horas Teórico 45 Teórico-prático 0 Pratico e Laboratorial 30 Trabalho Autónomo 75 Orientação Tutorial 10 Horas totais de contacto 75 HORAS TOTAIS DE TRABALHO DO ESTUDANTE : 150 H Método de Avaliação ● Para obter aprovação nesta disciplina, o formando deverá ter uma nota igual ou superior a dez (10) valores. A classificação final (avaliação contínua) é expressa na escala de (0 a 20) valores, aplicando – se a seguinte formula: ● Avaliação continua – Nota Final = T1*0,20 + T2*0,30 + T3*0,40 + P*0,1 – T1: Teste 1 – T2: Teste 2 – T3: Teste 3 – P: Práticas Bibliografia da Unidade Curricular 1.P. Gries, J. Campbell e J. Montojo, "Practical Programming: An Introduction to Computer Science Using Python 3.6," Pragmatic Bookshelf, 2017. 2.N. N. Coutinho Menezes, "Introdução à Programação com Python: Algoritmos e Lógica de Programação Para Iniciantes," 3ª ed., Novatec, 2019, pp. 328, ISBN 978-85-7522-718-3. 3.J. Whitington, "Python from the Very Beginning: With 100 exercises and answers," Coherent Press, 2020, pp. 238. 4.D. Zingaro, "Learn to Code by Solving Problems: A Python Programming Primer," No Starch Press, 2021. ISBN: 1718501323, 9781718501324. Conceitos de Hardware e Software ● A terminologia “hardware” é um anglicismo na área de engenharia eletrónica que se refere à componente física de computadores e outros sistemas microeletrónicos. Conceitos de Hardware e Software ● A terminologia “Software” é uma anglicismo da tecnologia da informação que se refere à uma sequência de instruções a serem seguidas e/ou executadas para a manipulação, redirecionamento ou modificação de um dado (informação) ou evento. Arquitetura de Computadores ● A Arquitetura de Computadores é o projeto conceitual e fundamental da estrutura operacional de um sistema computacional. Ela envolve o estudo dos requisitos necessários para o funcionamento de um computador e a organização dos diversos componentes para otimizar o desempenho. Arquitetura Von Newman ● Trata-se de uma família de arquiteturas de computador que compartilha o mesmo dispositivo de armazenamento para instruções e dados. A maioria dos computadores modernos é construída com base nessa arquitetura. Arquitetura Harvard ● A Arquitetura de Harvard é uma abordagem mais recente do que a de Von Neumann, originando- se da necessidade de aumentar a velocidade de funcionamento dos microcontroladores. Ela se diferencia das outras por apresentar duas memórias distintas e independentes em termos de barramento e conexão com o processador. Arquitetura Harvard ● É utilizada nos microcontroladores PIC. ● São utilizado em microprocessadores DSPs ( Digital Signal Processor) , especializados em processamento digital de sinal usados para processar sinais de áudio, vídeo, Diferença entre as Arquiteturas de Harvard e Von Neumann ● Acesso à Memória: – Harvard: Devido à separação de memória, a arquitetura de Harvard pode buscar instruções e dados simultaneamente, potencialmente resultando em um desempenho mais rápido em certas situações. – Von Neumann: Na arquitetura de Von Neumann, a Unidad Central de Procesamiento busca instruções e dados de forma sequencial, o que pode limitar o desempenho em comparação com a arquitetura de Harvard. ● Flexibilidade: – Harvard: Geralmente, a arquitetura de Harvard é empregada em sistemas embutidos, como microcontroladores, onde o desempenho é crucial e a separação de instruções e dados é vantajosa. – Von Neumann: A arquitetura de Von Neumann é mais comum em computadores pessoais e servidores, devido à sua maior flexibilidade, permitindo que um mesmo sistema execute uma ampla variedade de tarefas. ● Complexidade: – Harvard: A separação de memória na arquitetura de Harvard pode aumentar a complexidade do hardware, especialmente em sistemas de alto desempenho. – Von Neumann: Geralmente, a arquitetura de Von Neumann é considerada mais simples de implementar em termos de hardware. Evolução dos Computadores: 1ª Geração ● Computadores grandes que utilizavam válvulas. ● Consumiam grande quantidade de energia e eram de difícil manutenção, além de problemas de aquecimento. ● Programação em linguagem de máquina. COLOSSUS (1943) ● criado para quebrar códigos alemãs ● 2.000 válvulas ENIAC (1946) ● 17.468 válvulas ● 30 toneladas Válvula Evolução dos Computadores: 1ª Geração 1ª Geração EDVAC (1947) ● Primeiro computador a utilizar a Arquitetura de Von Neumann ESAC (1949) ● Inventor: Maurice Wilkes LEO (1951) ● Primeiro computador comercial Evolução dos Computadores: 2ª Geração ● Aquecimento mínimo. ● Pequeno consumo de energia. ● Mais confiável e veloz do que as válvulas . 2ª Geração Transístor IBM 1401 - 1952 IBM 650 - 1954 IBM 650 - 1955 Evolução dos Computadores: 3ª Geração Circuito Integrado – CI Também conhecido como CHIP Borroughs B2500 ● o primeiro computador a utilizar circuitos integrados PDP-8 ● O primeiro minicomputador 4004 ● primeiro chip da Intel ● 2.300 transístores IBM S/360 Evolução dos Computadores: 3ª Geração Intel 4004 - 1971 ● 2250 componentes ● soma 2 números em 11 milionésimos de segundo Intel 8080 - 1974 ● 4500 componentes ● soma 2 números em 2,5 milionésimos de segundo 6502 – 1975 ● 4300 componentes ● soma 2 números em 1 milionésimo de segundo Evolução dos Computadores: 3ª Geração ALTAIR ● primeiro microcomputador Apple I Apple II Macintosh Do ENIAC ao Micro Evolução dos Computadores: 3ª Geração SINCLAIR MMX IBM PC Evolução dos Computadores: 4ª Geração ● CI LSI - Integrated Circuit - Large Scale Integration ( Circuito Integrado em Larga Escala de Integração). ● IC VLSI - Integrated Circuit - Very Large Scale Integration ( Circuito Integrado em uma Escala Muito Maior de Integração). Motorola 68000 1979 HP SuperCHIP 1981 Intel 486Intel 386 Evolução dos Computadores: 4ª Geração ● 486 Motherboard(Placa mãe) ● 8 MB EDO Ram ● 7 ISA slots ● intel i486 DX A80486DX-33 CPU Evolução dos Computadores: 5ª Geração ● CI ULSI - Integrated Circuit Ultra Large Scale Integration (Escala “ultra” de Integração) Processadores: Celeron / Cyrix / AMD K6 / Pentium MMX Mother Board (Placa Mãe). Pentium II Processadores: Pentium 2 e AMD K6-2 ● Top de linha até 1998 Evolução dos Computadores: 6ª Geração Processadores com litografia de 14 nm (indica o tamanho dos recursos embutidos no semicondutor). Apple iMac Inteligência Artificial Evolução dos Computadores Geração ? O computador quântico IonQInteligência Artificial Generativa Partes de um Computador Moderno Partes de uma Placa Mãe Linguagem de Programação ● É um método padronizado, composto por um conjunto de regras sintáticas e semânticas, para implementar um código fonte que instruirá o computador no processamento. ● Permitem que um programador especifique os dados com os quais o computador irá trabalhar, como esses dados serão armazenados ou transmitidos e quais ações devem ser tomadas em diversas circunstâncias. ● As linguagens de programação podem ser usadas para expressar algoritmos de forma precisa. ● O código fonte escrito por um programador em uma linguagem de programação é, então, traduzido para código de máquina, que é a linguagem que o computador compreende e é executado pelo microprocessador. Modelos de ExecuçãoCompilado Interpretado just-in-time Modelos de Execução Nível de Abstração ● Alto Nível: Linguagens de alto nível são mais próximas da linguagem humana e oferecem abstrações mais complexas. Exemplos incluem Python, Java e C++. ● Baixo Nível: Linguagens de baixo nível fornecem um maior controle sobre o hardware e são mais próximas da linguagem de máquina. Exemplos incluem Assembly e C. Paradigmas de Programação ● Imperativa: Linguagens imperativas enfatizam a sequência de comandos e as mudanças de estado. Exemplos incluem C e Fortran. ● Orientada a Objetos: Linguagens orientadas a objetos modelam problemas como interações entre objetos. Exemplos incluem Java e C#. ● Funcional: Linguagens funcionais tratam a computação como avaliação de funções matemáticas. Exemplos incluem Haskell e Lisp. ● Lógica: Linguagens lógicas são usadas para programação baseada em lógica, como Prolog. Historia das Linguagens de Programação ● Ada Lovelace, matemática britânica do século XIX, é considerada a primeira programadora por suas anotações pioneiras em 1843, que descreviam algoritmos para a máquina analítica de Charles Babbage. Sua visão inovadora influenciou o desenvolvimento da computação, e a linguagem de programação Ada foi nomeada em sua homenagem. Historia das Linguagens de Programação ● Em 1948, Konrad Zuse publicou um artigo sobre sua linguagem de programação chamada Plankalkül. No entanto, na época, esta linguagem não foi implementada e suas contribuições originais permaneceram isoladas de outros avanços no campo da programação. Historia das Linguagens de Programação ● O primeiro compilador foi escrito por Grace Hopper, em 1952, para a linguagem de programação A-0. ● Em 1957 foi criada B-0, sucessora da A-0, que daria origem a Flow-Matic (1958), antecessor imediato de COBOL. Historia das Linguagens de Programação ● A primeira linguagem de programação de alto nível amplamente usada foi Fortran, desenvolvido em 1954 para o IBM 704 por uma equipa dirigida por John W. Backus. ● O COBOL ganhou ampla aceitação como linguagem de uso comercial. A linguagem ALGOL foi desenvolvida entre 1958 e 1960 e exerceu grande influência no design de muitas linguagens subsequentes. ● Lisp foi criada em 1958 e tornou-se amplamente utilizada em pesquisas na área de ciência da computação, especialmente em Inteligência Artificial. ● Outra linguagem relevante para o campo da Inteligência Artificial , surgida em 1972, é o Prolog, que pertence ao paradigma lógico. Historia das Linguagens de Programação Historia das Linguagens de Programação ● A linguagem de programação C foi criada em 1972 por Dennis Ritchie e Ken Thompson na empresa AT&T Bell Labs, com o propósito de desenvolver o sistema operacional Unix, que originalmente havia sido escrito em Assembly. Historia das Linguagens de Programação ● A orientação a objetos representa outro marco importante na história das linguagens de programação. A linguagem Simula 67 introduziu o conceito de classes, enquanto a linguagem Smalltalk expandiu esse conceito e se tornou a primeira linguagem de programação a oferecer suporte completo à programação orientada a objetos. ● A linguagem C++ (originalmente conhecida como "C com classes") desempenhou um papel fundamental na popularização da orientação a objetos. ● Desde então, várias linguagens de programação surgiram. Algumas delas incluem C#, VB.NET, Java, Object Pascal, Objective-C, PHP, Python, SuperCollider, linguagem D e Ruby. índice da Comunidade de Programação TIOBE ● O índice da Comunidade de Programação TIOBE é um indicador da popularidade das linguagens de programação, atualizado mensalmente. ● As classificações são determinadas com base no número de engenheiros qualificados em todo o mundo, cursos e fornecedores de terceiros. ● Para calcular as classificações, são usados motores de busca populares como Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube e Baidu. índice da Comunidade de Programação TIOBE Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42
Compartilhar