Upload
oliver-russell
View
29
Download
2
Embed Size (px)
DESCRIPTION
CES-10 INTRODUÇÃO À COMPUTAÇÃO. Prof. Fábio Carneiro Mokarzel 2014 http://www.comp.ita.br/~mokarzel. CES-10 INTRODUÇÃO À COMPUTAÇÃO. Capítulo Zero Apresentação. Capítulo Zero - Apresentação. 0.1 – Professor e alunos 0.2 – Objetivos gerais da disciplina - PowerPoint PPT Presentation
Citation preview
CES-10 INTRODUÇÃO CES-10 INTRODUÇÃO À COMPUTAÇÃOÀ COMPUTAÇÃO
Prof. Fábio Carneiro Prof. Fábio Carneiro MokarzelMokarzel
20142014http://www.comp.ita.br/~mokarzelhttp://www.comp.ita.br/~mokarzel
CES-10 INTRODUÇÃO CES-10 INTRODUÇÃO À COMPUTAÇÃOÀ COMPUTAÇÃO
Capítulo Zero Capítulo Zero ApresentaçãoApresentação
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.1 - Professor e Alunos0.1 - Professor e Alunos
0.1.1 - Professor0.1.1 - Professor
Nome:Nome: Fábio Carneiro Mokarzel Fábio Carneiro Mokarzel
Graduação:Graduação: Engenharia Elétrica – UNIFEI – Engenharia Elétrica – UNIFEI – Itajubá, MG – 1973Itajubá, MG – 1973
Mestrado:Mestrado: Ciência da Computação – ITA – São Ciência da Computação – ITA – São José dos Campos, SP – 1984José dos Campos, SP – 1984
Doutorado:Doutorado: Ciência da Computação – ITA – Ciência da Computação – ITA – São José dos Campos, SP – 1995São José dos Campos, SP – 1995
Professor no ITA: Professor no ITA: desde 1979 – IECdesde 1979 – IEC
Área de Pesquisa: Área de Pesquisa: Linguagens e Linguagens e Compiladores para Processamento ParaleloCompiladores para Processamento Paralelo
Sala: nSala: noo 109 – 109 – Prédio da Computação do ITAPrédio da Computação do ITA
E-mail: E-mail: [email protected]@ita.br e e [email protected]@gmail.com
Telefone no ITA: Telefone no ITA: (12) 3947-5982 ou 3947-(12) 3947-5982 ou 3947-58995899
Celular: Celular: VIVO - (12) 99714-7538 VIVO - (12) 99714-7538
0.1.2 - Alunos0.1.2 - Alunos
Cada aluno deve se levantar e dizer:Cada aluno deve se levantar e dizer:
Cidade e estado de origemCidade e estado de origem
Curso em que está matriculado no ITACurso em que está matriculado no ITA
Experiência com linguagens de Experiência com linguagens de programaçãoprogramação
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.2 – Objetivos Gerais da 0.2 – Objetivos Gerais da DisciplinaDisciplina
ConceituaçãoConceituação de computadores, linguagens, de computadores, linguagens, algoritmos, programas e compiladoresalgoritmos, programas e compiladores
Desenvolvimento de Desenvolvimento de algoritmosalgoritmos
Programação básicaProgramação básica numa linguagem numa linguagem imperativa estruturada:imperativa estruturada:
Linguagem escolhida: Linguagem escolhida: CC
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.3 – O Computador na 0.3 – O Computador na SociedadeSociedade
0.3.1 – Precursores do computador 0.3.1 – Precursores do computador eletrônico digitaleletrônico digital
A tarefa de A tarefa de calcularcalcular vem sendo automatizada vem sendo automatizada há muitos anos:há muitos anos:
Ábacos:Ábacos:
origem provável:origem provável:
MesopotâmiaMesopotâmia
há mais de 5000 anoshá mais de 5000 anos
Ábaco versão chinesa (Wikipedi
a)
Réguas de cálculo:Réguas de cálculo:
Criadas pelo padre inglês William Oughtred, Criadas pelo padre inglês William Oughtred, em 1638em 1638
Aperfeiçoadas e muito usadas até a década Aperfeiçoadas e muito usadas até a década de 1970de 1970
Substituídas pelas calculadoras eletrônicasSubstituídas pelas calculadoras eletrônicas
Faziam cálculos complexos como Faziam cálculos complexos como potenciação, radiciação, logaritmos e potenciação, radiciação, logaritmos e funções trigonométricasfunções trigonométricas
Calculadoras mecânicas:Calculadoras mecânicas:
Pascalina: Pascalina: construída pelo francês Blaise construída pelo francês Blaise Pascal, em 1642Pascal, em 1642
Fazia somas e subtraçõesFazia somas e subtrações
Calculadoras mecânicas:Calculadoras mecânicas:
Calculadora de Leibnitz: Calculadora de Leibnitz: construída na construída na Alemanha por Gottfried Leibnitz, por volta Alemanha por Gottfried Leibnitz, por volta de 1694de 1694
Fazia somas, subtrações, multiplicações e Fazia somas, subtrações, multiplicações e divisõesdivisões
As duas últimas aplicavam sucessivas As duas últimas aplicavam sucessivas execuções das duas primeirasexecuções das duas primeiras
Calculadoras mecânicas:Calculadoras mecânicas:
Arithmometer: Arithmometer: construída pelo francês construída pelo francês Charles Xavier Thomas, em 1820Charles Xavier Thomas, em 1820
Fazia somas, subtrações, multiplicações e Fazia somas, subtrações, multiplicações e divisões divisões
Primeira calculadora realmente Primeira calculadora realmente comercializada com sucesso: até 1850, comercializada com sucesso: até 1850, vendidos cerca de 1500 exemplaresvendidos cerca de 1500 exemplares
Máquina analítica: Máquina analítica: concepção de um concepção de um computador mecânico, em 1833, pelo inglês computador mecânico, em 1833, pelo inglês Charles BabbageCharles Babbage
Com unidade de controle de memória aritmética
Com entrada e saída de dados
Programada por meio de instruções em cartões perfurados
A sequência de execução dos cartões podia ser alterada
Máquina analítica: Máquina analítica: concepção de um concepção de um computador mecânico, em 1833, pelo inglês computador mecânico, em 1833, pelo inglês Charles BabbageCharles Babbage
Exigia tecnologia mecânica muito avançada para a época
Não foi efetivamente construída naquele século
Máquina analítica: Máquina analítica: concepção de um concepção de um computador mecânico, em 1833, pelo inglês computador mecânico, em 1833, pelo inglês Charles BabbageCharles Babbage
Na década de 1980, pelo seu valor histórico, um grupo resolveu construí-la
Ela funcionou perfeitamente
Máquina recenseadora: Máquina recenseadora: construída em 1886, construída em 1886, por Herman Hollerith, funcionário do por Herman Hollerith, funcionário do Departamento de Recenseamento dos Estados Departamento de Recenseamento dos Estados UnidosUnidos
Utilizava cartões perfurados que, lidos eletricamente:
•Controlavam o funcionamento
•Continham dados de entrada
•Eram usados para imprimir resultados
Máquina recenseadora: Máquina recenseadora: construída em 1886, construída em 1886, por Herman Hollerith, funcionário do por Herman Hollerith, funcionário do Departamento de Recenseamento dos Estados Departamento de Recenseamento dos Estados UnidosUnidos
Cartões perfurados para programas e dados foram usados por muito tempo
Só foram substituídos pelo teclado e vídeo
Herman Hollerith foi um dos fundadores da International Business Machines (IBM) em 1924
Computadores eletrônicos analógicos: Computadores eletrônicos analógicos: utilizam grandezas elétricas como tensão e utilizam grandezas elétricas como tensão e corrente para modelar um problema a ser corrente para modelar um problema a ser resolvidoresolvido
Constituídos de amplificadores, filtros e Constituídos de amplificadores, filtros e circuitos somadores, integradores e circuitos somadores, integradores e diferenciadores, além de outros diferenciadores, além de outros
Eram o estado da arte dos computadores Eram o estado da arte dos computadores antes da Segunda Guerra Mundialantes da Segunda Guerra Mundial
Até a década de 1960, competiam com os Até a década de 1960, competiam com os computadores digitaiscomputadores digitais
Computadores eletrônicos analógicos:Computadores eletrônicos analógicos:
Tinham vantagem frente aos primeiros Tinham vantagem frente aos primeiros computadores digitais, pois eram capazes de computadores digitais, pois eram capazes de resolver problemas mais complexosresolver problemas mais complexos
Nessa época, os programas de computador Nessa época, os programas de computador não eram ainda muito populares não eram ainda muito populares
Computadores eletrônicos analógicos:Computadores eletrônicos analógicos:
A solução é apresentada em forma de curvas A solução é apresentada em forma de curvas em gráficos; os resultados são exatosem gráficos; os resultados são exatos
Números reais não são representados Números reais não são representados exatamente nos computadores digitais; é exatamente nos computadores digitais; é uma representação discretauma representação discreta
Computadores eletrônicos analógicos:Computadores eletrônicos analógicos:
Ao contrário dos computadores digitais Ao contrário dos computadores digitais modernos, computadores analógicos não são modernos, computadores analógicos não são muito flexíveismuito flexíveis
Precisam ser reprogramados manualmente Precisam ser reprogramados manualmente para trocar o problema em que vão trabalhar para trocar o problema em que vão trabalhar
Computadores eletrônicos analógicos:Computadores eletrônicos analógicos:
Com o desenvolvimento dos transistores, os Com o desenvolvimento dos transistores, os computadores digitais começaram a imperarcomputadores digitais começaram a imperar
Mas, até hoje, os computadores analógicos Mas, até hoje, os computadores analógicos são usados na resolução de alguns são usados na resolução de alguns problemas específicosproblemas específicos
Mark I: Mark I: primeiro computador digital eletro-primeiro computador digital eletro-mecânico; construído entre 1937 e 1944, por mecânico; construído entre 1937 e 1944, por Howard Aiken, na Universidade de HarvardHoward Aiken, na Universidade de Harvard
Utilizava relés e válvulas eletrônicas
Media 2,5 m de altura e 18 m de comprimento
Gerava imensa quantidade de calor
ENIAC (ENIAC (Electronic Numeric Integrator and Electronic Numeric Integrator and CalculatorCalculator): ): primeiro computador eletrônico primeiro computador eletrônico digitaldigital
Construído em 1946, pelos cientistas norte-Construído em 1946, pelos cientistas norte-americanos John Presper Eckert e John americanos John Presper Eckert e John Mauchly Mauchly
Chegava a ser, em algumas operações, mil vezes mais rápido que o MARK I.
Ocupava 170 m2, pesava 30 toneladas, consumia 150 Kwatts
0.3.2 – Evolução da tecnologia 0.3.2 – Evolução da tecnologia eletrônico-digitaleletrônico-digital
Desde o ENIAC, houve um desenvolvimento Desde o ENIAC, houve um desenvolvimento acelerado da tecnologia eletrônico-digital:acelerado da tecnologia eletrônico-digital:
Válvulas eletrônicas:Válvulas eletrônicas:
Dispositivos que conduzem a corrente elétrica num só sentido
Dissipam muito calor
Quebram após não muitas horas de uso
Transistores:Transistores:
Utilizados principalmente como amplificadores e interruptores de sinais elétricos
Têm o mesmo papel das válvulas, porém são bem menores e dissipam muito menos calor
Circuitos integrados:Circuitos integrados: vários transistores e vários transistores e outros componentes eletrônicos em um só outros componentes eletrônicos em um só circuitocircuito
Usados hoje em quase todos os equipamentos eletrônicos
Revolucionaram o mundo da eletrônica
Imagem aumentada mais de 1000 vezes
Circuitos integrados:Circuitos integrados: vários transistores e vários transistores e outros componentes eletrônicos em um só outros componentes eletrônicos em um só circuitocircuito
Invenção de Jack Kilby da Texas Instruments, em 1958
Em 2000, Kilby ganhou o Prêmio Nobel por essa invenção
Imagem aumentada mais de 1000 vezes
Circuitos integrados:Circuitos integrados: escalas (Wikipedia) escalas (Wikipedia)
Abreviatura e época
DenominaçãoNo de
transistoresSSI 1958
Small Scale Integration
10 a 99
MSI anos 60
Medium Scale Integration
100 a 999
LSI anos 70
Large Scale Integration
1.000 a 9.999
VLSI anos 80
Very Large Scale Integration
10.000 a 99.999
ULSI anos 90
Ultra Large Scale Integration
100.000 a 999.999
SLSI anos 2000
Super Large Scale Integration
1.000.000 a 10.000.000
Microprocessadores:Microprocessadores: circuitos integrados circuitos integrados coordenadores de todas as atividades de um coordenadores de todas as atividades de um computadorcomputador
Esquema de um computador pessoal moderno
Microprocessadores:Microprocessadores:
4004: primeiro microprocessador comercial
Inventado pela Intel em 1971
Aritmética binária de 4 bits
Clock de 740 KHz
Possuia 2.300 transistores
Microprocessadores:Microprocessadores:
8080: microprocessador criado pela Intel em 1974
Aritmética binária de 8 bits
Clock de 2 MHz
Possuia 6.000 transistores
Microprocessadores:Microprocessadores:
8086: microprocessador criado pela Intel em 1978
Aritmética binária de 16 bits
Clock de 5 a 10 MHz
Possuia 20.000 transistores
Microprocessadores:Microprocessadores:
80386: microprocessador criado pela Intel em 1986
Aritmética binária de 32 bits
Clock de 33 MHz
Possuia 275.000 transistores
Microprocessadores:Microprocessadores:
Pentium IV: microprocessador criado pela Intel em 2001
Aritmética binária de 64 bits
Clock de 1.3 a 2.0 GHz
Possui cerca de 5.500.000 transistores
Novos microprocessadores da Intel:Novos microprocessadores da Intel:
Core 2 Duo: Core 2 Duo: 2 processadores (núcleos) em 12 processadores (núcleos) em 1
i3: i3: 2 processadores (núcleos) em 1; emula 4 2 processadores (núcleos) em 1; emula 4 núcleosnúcleos
i5: i5: 2 e 4 processadores (núcleos) em 1; 2 e 4 processadores (núcleos) em 1; emula 4 núcleosemula 4 núcleos
i7: i7: 4 e 6 processadores (núcleos) em 1; 4 e 6 processadores (núcleos) em 1; emula 8 e 12 núcleosemula 8 e 12 núcleos
Microprocessadores, outras aplicações:Microprocessadores, outras aplicações:
Processadores digitais de sinais: Processadores digitais de sinais: processam sinais de áudio, vídeo, etc.; por processam sinais de áudio, vídeo, etc.; por exemplo, em aparelhos de CD, DVD e exemplo, em aparelhos de CD, DVD e televisores digitaistelevisores digitais
Microcontroladores: Microcontroladores: embarcados em embarcados em dispositivos (geralmente produtos dispositivos (geralmente produtos comercializados) para controlar suas açõescomercializados) para controlar suas ações
Processadores gráficos: Processadores gráficos: utilizados em utilizados em placas de vídeo para fazer computação placas de vídeo para fazer computação gráficagráfica
Mais avanços na tecnologia eletrônico-digital:Mais avanços na tecnologia eletrônico-digital:
Fibras óticas: Fibras óticas:
Podem substituir com vantagens os fios de Podem substituir com vantagens os fios de cobre cobre
Não são susceptíveis à interferência Não são susceptíveis à interferência eletromagnéticaeletromagnética
Aplicadas na medicina (endoscopias por Aplicadas na medicina (endoscopias por exemplo) exemplo)
Aplicadas em telecomunicações Aplicadas em telecomunicações (principalmente na (principalmente na InternetInternet) )
Mais avanços na tecnologia eletrônico-Mais avanços na tecnologia eletrônico-digital:digital:
Comunicação sem fio – Comunicação sem fio – grande variedade de grande variedade de aplicações:aplicações:
Controle remoto de equipamentos elétricos e Controle remoto de equipamentos elétricos e eletrônicoseletrônicos
TeleprocessamentoTeleprocessamento
Comunicações via satéliteComunicações via satélite
Redes locais, Internet e telefonia celularRedes locais, Internet e telefonia celular
Mais avanços na tecnologia eletrônico-Mais avanços na tecnologia eletrônico-digital:digital:
Raio laser – Raio laser – grande variedade de aplicações:grande variedade de aplicações:
Cirurgias e fisioterapiaCirurgias e fisioterapia
Comunicação por fibras ópticas e leitura de Comunicação por fibras ópticas e leitura de códigos de barracódigos de barra
Computadores, aparelhos de som e imagemComputadores, aparelhos de som e imagem
Mais avanços na tecnologia eletrônico-Mais avanços na tecnologia eletrônico-digital:digital:
Supercondutividade: Supercondutividade:
Certos materiais, quando se esfriam a Certos materiais, quando se esfriam a temperaturas extremamente baixas, temperaturas extremamente baixas, conduzem corrente sem resistência nem conduzem corrente sem resistência nem perdasperdas
Isso tem sido usado na pesquisa de circuitos Isso tem sido usado na pesquisa de circuitos eletrônicos cada vez mais rápidoseletrônicos cada vez mais rápidos
0.3.3 – Impactos na sociedade0.3.3 – Impactos na sociedade
Os computadores tornaram-se: Os computadores tornaram-se:
Muito menores Muito menores
Muito mais poderososMuito mais poderosos
Muito menos consumidores de energiaMuito menos consumidores de energia
Muito menos dissipadores de calorMuito menos dissipadores de calor
Hoje no mercado: Hoje no mercado:
Poderosos laptops e desktops:Poderosos laptops e desktops: muito muito mais potentes que volumosos mais potentes que volumosos computadores de décadas passadas computadores de décadas passadas
Supercomputadores: Supercomputadores: cada um com cada um com milhares ou até milhões de processadoresmilhares ou até milhões de processadores
Redes de computadores:Redes de computadores:
Locais caseiras e empresariaisLocais caseiras e empresariais
Internet, a rede mundialInternet, a rede mundial
No início, os computadores eram usados No início, os computadores eram usados apenas para manipular númerosapenas para manipular números
Pouco tempo depois, o processamento Pouco tempo depois, o processamento não não numériconumérico tornou-se muito mais importante tornou-se muito mais importante que o processamento que o processamento numériconumérico
Hoje os computadores processam informações Hoje os computadores processam informações de diversas espécies: números, textos, sons, de diversas espécies: números, textos, sons, imagens, fenômenos físicos, químicos, imagens, fenômenos físicos, químicos, biológicos e sociaisbiológicos e sociais
A A comunicação humano-computadorcomunicação humano-computador evoluiu evoluiu muito:muito:
Programação no ENIAC, em 1946:Programação no ENIAC, em 1946:
Entrada e saída de dados usava cartões Entrada e saída de dados usava cartões perfuradosperfurados
Programas eram introduzidos mediante Programas eram introduzidos mediante manipulação de conexões eletrônicasmanipulação de conexões eletrônicas
Instalação de um novo programa demorava Instalação de um novo programa demorava um ou dois dias um ou dois dias
A A comunicação humano-computadorcomunicação humano-computador evoluiu evoluiu muito:muito:
Para o EDSAC (Electronic Delay Storage Para o EDSAC (Electronic Delay Storage Automatic Calculator), em 1949:Automatic Calculator), em 1949:
Descobriu-se que programas poderiam ser Descobriu-se que programas poderiam ser lidos, tal como os dados de entrada, e lidos, tal como os dados de entrada, e armazenados na memória (conceito de armazenados na memória (conceito de programa armazenadoprograma armazenado))
Os programas passaram a ser escritos em Os programas passaram a ser escritos em cartões perfurados e instalados na memória cartões perfurados e instalados na memória por meio de leitora de cartões por meio de leitora de cartões
Novos meios de programar computadores foram Novos meios de programar computadores foram surgindo:surgindo:
Os resultados passaram a ser impressos em Os resultados passaram a ser impressos em papel, por impressoraspapel, por impressoras
Programas passaram a ser introduzidos por Programas passaram a ser introduzidos por teclado, ficando armazenados em arquivosteclado, ficando armazenados em arquivos
Os resultados passaram a ser exibidos em Os resultados passaram a ser exibidos em monitores de vídeomonitores de vídeo
Novos meios de programar computadores foram Novos meios de programar computadores foram surgindo:surgindo:
Ambientes de programação foram criados, Ambientes de programação foram criados, disponibilizando ao programador:disponibilizando ao programador:
Confortáveis editores de textos, Confortáveis editores de textos, manipuladores de arquivos, compiladoresmanipuladores de arquivos, compiladores
Botões a serem acionados pelo mouse para Botões a serem acionados pelo mouse para salvar arquivos, compilar, executar e corrigir salvar arquivos, compilar, executar e corrigir programas, usar a impressora, etc. programas, usar a impressora, etc.
Outras atividades, além de programar:Outras atividades, além de programar:
Edição de documentos, figuras e apresentações: Edição de documentos, figuras e apresentações: Word, Adobe, Paint, Power-Point, etc.Word, Adobe, Paint, Power-Point, etc.
Manipulação de tabelas para contabilidade: ExcelManipulação de tabelas para contabilidade: Excel
Navegadores da Internet: Explorer, Mozilla, etc.Navegadores da Internet: Explorer, Mozilla, etc.
Manipulação de arquivos de áudio e vídeo: iTunes, Manipulação de arquivos de áudio e vídeo: iTunes, Emule, Ares, MP3Gain, Nero, Roxio, YouTube, etcEmule, Ares, MP3Gain, Nero, Roxio, YouTube, etc
Interfaces para controle de processosInterfaces para controle de processos
Etc.Etc.
Hoje os computadores são utilizados por pessoas totalmente leigas em Ciência da Computação
Hoje os sistemas computacionais estão Hoje os sistemas computacionais estão integrados em praticamente todas as integrados em praticamente todas as atividades da sociedade:atividades da sociedade:
Atividades técnico-científicas
Medicina e saúde
Indústria e comércio
Atividades administrativas e governamentais
Educação
Literatura e artes
Cinema
Música
Pesquisa escolar e caseira(serve como enciclopédia sempre atualizada)
Entretenimento
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.4 – Relevância da 0.4 – Relevância da DisciplinaDisciplina
A maioria dos ambientes computacionais de A maioria dos ambientes computacionais de trabalho e dos programas científicos são trabalho e dos programas científicos são escritos em linguagens de programação, tais escritos em linguagens de programação, tais como como FortranFortran, , PascalPascal, , CC, , JavaJava, etc., etc.
Não raro, um engenheiro necessita Não raro, um engenheiro necessita desenvolver programas ou ambientes para desenvolver programas ou ambientes para novas aplicações, em sua área de atuaçãonovas aplicações, em sua área de atuação
Diversas áreas da Eletrônica trabalham Diversas áreas da Eletrônica trabalham diretamente com softwares para fazer diretamente com softwares para fazer interfaceinterface com dispositivos eletrônicos ou para com dispositivos eletrônicos ou para serem neles serem neles embarcadosembarcados
A Matemática, a Física e várias áreas da A Matemática, a Física e várias áreas da Engenharia trabalham com Engenharia trabalham com simulações simulações na na busca da melhor solução para um problemabusca da melhor solução para um problema
Na área financeira, a programação de macros Na área financeira, a programação de macros para o para o ExcelExcel dá um grande diferencial dá um grande diferencial
Muitos Muitos aviõesaviões trabalham com softwares trabalham com softwares embarcados que controlam diversos de embarcados que controlam diversos de seus seus sub-sistemassub-sistemas
O conhecimento dos O conhecimento dos princípios de princípios de programaçãoprogramação numa das referidas linguagens numa das referidas linguagens é portanto imprescindível para um engenheiroé portanto imprescindível para um engenheiro
CES-10 Introdução à Computação CES-10 Introdução à Computação ensina os ensina os primeiros passos de programação de primeiros passos de programação de computadorescomputadores
Para alcançar sucesso nesta disciplina é Para alcançar sucesso nesta disciplina é preciso muita preciso muita dedicaçãodedicação e realizar e realizar muitos muitos exercíciosexercícios
No entanto, apenas No entanto, apenas um semestre de um semestre de treinamento treinamento em programação é insuficiente em programação é insuficiente para um engenheiropara um engenheiro
Muitos problemas de Engenharia encontram Muitos problemas de Engenharia encontram soluções nos vários ramos da Matemáticasoluções nos vários ramos da Matemática
Alguns deles exigem quantidade descomunal Alguns deles exigem quantidade descomunal de operações matemáticasde operações matemáticas
A utilização de sistemas computacionais para A utilização de sistemas computacionais para solucioná-los é portanto indispensávelsolucioná-los é portanto indispensável
CCI-22 Matemática ComputacionalCCI-22 Matemática Computacional apresenta algoritmos para realizar essas apresenta algoritmos para realizar essas operações por computador, de forma eficienteoperações por computador, de forma eficiente
É uma disciplina do 2º Fundamental 1º É uma disciplina do 2º Fundamental 1º SemestreSemestre
Muitas atividades de Engenharia envolvem a Muitas atividades de Engenharia envolvem a manipulação de quantidades imensas de manipulação de quantidades imensas de informaçõesinformações
As formas com que essas informações se As formas com que essas informações se interligam entre si apresentam diversos níveis de interligam entre si apresentam diversos níveis de complexidadecomplexidade
Um engenheiro deve saber decidir qual o melhor Um engenheiro deve saber decidir qual o melhor modelo de armazenamento para um sistema de modelo de armazenamento para um sistema de informações e os melhores algoritmos para informações e os melhores algoritmos para gerenciá-logerenciá-lo
CES-11 Algoritmos e Estruturas de DadosCES-11 Algoritmos e Estruturas de Dados aborda essa necessidadeaborda essa necessidade
É uma disciplina do 1º Fundamental 2º SemestreÉ uma disciplina do 1º Fundamental 2º Semestre
Por que a Linguagem C como primeira Por que a Linguagem C como primeira linguagem de programação?linguagem de programação?
Há especialistas que a consideram facilitadora Há especialistas que a consideram facilitadora de de indisciplinaindisciplina e de confecção de programas e de confecção de programas desestruturadosdesestruturados e confusos e confusos
Preferem linguagens como Preferem linguagens como PascalPascal que inibem que inibem um pouco essa indisciplinaum pouco essa indisciplina
Por que a Linguagem C como primeira Por que a Linguagem C como primeira linguagem de programação?linguagem de programação?
Outros especialistas preferem Outros especialistas preferem Java Java ou ou C++C++
Para inserir logo o aluno no combate à Para inserir logo o aluno no combate à crise de crise de softwaresoftware
– Rápido crescimento da Rápido crescimento da demanda demanda por softwarepor software
– Rápido crescimento da Rápido crescimento da complexidadecomplexidade dos dos problemas a serem resolvidos problemas a serem resolvidos
– Carência de técnicas para o desenvolvimento de Carência de técnicas para o desenvolvimento de sistemas que sistemas que funcionem adequadamentefuncionem adequadamente ou ou possam ser possam ser validadosvalidados
Java Java é a linguagem básica para transações na é a linguagem básica para transações na InternetInternet
Por que a Linguagem C como primeira Por que a Linguagem C como primeira linguagem de programação?linguagem de programação?
No ITA, em 1998, No ITA, em 1998, Pascal Pascal foi substituída pela foi substituída pela Linguagem CLinguagem C
Pascal Pascal havia caído em desusohavia caído em desuso
Os mesmos princípios de Os mesmos princípios de programação programação estruturada estruturada podem ser aplicados em ambas podem ser aplicados em ambas as linguagensas linguagens
Por que a Linguagem C como primeira Por que a Linguagem C como primeira linguagem de programação?linguagem de programação?
Num Curso de Bacharelado em Ciência da Num Curso de Bacharelado em Ciência da Computação, Computação, Java Java é uma forte opçãoé uma forte opção
Programas em Programas em Java Java são mais ineficientes do são mais ineficientes do que em que em CC – isso é inconveniente em – isso é inconveniente em EngenhariaEngenharia
Java Java e e C++C++ usam programação usam programação orientada a orientada a objetosobjetos; isso é bem difundido só em ; isso é bem difundido só em Engenharia de ComputaçãoEngenharia de Computação
Outras modalidades de Engenharia têm a Outras modalidades de Engenharia têm a programação programação estruturadaestruturada bem arraigada bem arraigada
Por que a Linguagem C como primeira Por que a Linguagem C como primeira linguagem de programação?linguagem de programação?
C C possibilita a confecção de possibilita a confecção de programas programas eficienteseficientes
Permite acesso até certo ponto à Permite acesso até certo ponto à estrutura estrutura internainterna do computador do computador
Ainda é uma linguagem Ainda é uma linguagem largamente utilizadalargamente utilizada
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.5 – Programa da 0.5 – Programa da Disciplina Disciplina
Cap. I Cap. I Conceitos primáriosConceitos primários 3.5 semanas3.5 semanas
Cap. II Cap. II Algoritmos e programasAlgoritmos e programas 1.5 semanas1.5 semanas
Cap. III Cap. III Declarações e comandos de atribuição Declarações e comandos de atribuição 1 semana1 semana
Cap. IV Cap. IV Comandos de controle de fluxo Comandos de controle de fluxo 1 semana1 semana
Cap. VCap. V Comandos de entrada e saídaComandos de entrada e saída 1 semana1 semana
Cap. VI Cap. VI Variáveis indexadas Variáveis indexadas 2.5 semanas2.5 semanas
Cap. VII Cap. VII Tipos enumerativos e estruturasTipos enumerativos e estruturas 1 semana1 semana
Cap. VIIICap. VIII SubprogramaçãoSubprogramação 1.5 semana1.5 semana
Cap. IX Cap. IX PonteirosPonteiros 1.5 semana1.5 semana
Cap. XCap. X Metodologia top-down com subprogramaçãoMetodologia top-down com subprogramação
0.5 semana0.5 semana
Cap. XI Cap. XI Noções de estruturas de dados Noções de estruturas de dados 1 semana1 semana
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
CES-10 não tem pré-requisitosCES-10 não tem pré-requisitos
Carga horária semanal: Carga horária semanal: 4-0-2-54-0-2-5
Aulas teóricas: Aulas teóricas: expositivas e em sala comumexpositivas e em sala comum
Aulas de laboratório: Aulas de laboratório: aulas práticas sobre aulas práticas sobre programação, em laboratório de computadoresprogramação, em laboratório de computadores
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
Salas de aulas da Turma 3:Salas de aulas da Turma 3:
2ª feira 8:00 – 2 aulas teóricas: 2ª feira 8:00 – 2 aulas teóricas: Sala 2091Sala 2091
4ª feira 10:00 – 2 aulas teóricas: 4ª feira 10:00 – 2 aulas teóricas: Sala 2091Sala 2091
5ª feira – 2 aulas de laboratório: 5ª feira – 2 aulas de laboratório: Sala 1611Sala 1611
Primeira semiturma: 13:30Primeira semiturma: 13:30
Segunda semiturma: 15:30Segunda semiturma: 15:30
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
Reposição de aulas:Reposição de aulas:
Aulas teóricasAulas teóricas em feriados em feriados não serão dadasnão serão dadas
Aulas de laboratórioAulas de laboratório em feriados em feriados serão serão antepostas ou repostasantepostas ou repostas
Aulas Aulas em prolongamento de feriados serão em prolongamento de feriados serão antepostas ou repostasantepostas ou repostas
Anteposição ou reposição: é necessário Anteposição ou reposição: é necessário estabelecer um horárioestabelecer um horário
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
ExercíciosExercícios poderão ser realizados em poderão ser realizados em aulas aulas teóricasteóricas
Eventualmente, exercícios poderão Eventualmente, exercícios poderão valer notavaler nota
As As provas provas serão realizadas em aulas de serão realizadas em aulas de laboratóriolaboratório
Em semana de prova, a prova Em semana de prova, a prova substituirásubstituirá as as aulas de laboratórioaulas de laboratório
Os Os trabalhos laboratoriaistrabalhos laboratoriais devem começar devem começar nas aulas de lab e continuar nas aulas de lab e continuar em casaem casa
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
Ambientes de programação em Linguagem Ambientes de programação em Linguagem C:C:
CodeBlocks: CodeBlocks: poderá ser usado para a maioria poderá ser usado para a maioria dos trabalhos laboratoriaisdos trabalhos laboratoriais
Dev C++: Dev C++: poderá ser usado para trabalhos poderá ser usado para trabalhos sobre o sobre o vídeo-gráficovídeo-gráfico; ;
Borland C++ 5.0: Borland C++ 5.0: era usado até o ano era usado até o ano passadopassado
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
Monitor para a disciplina CES-10:Monitor para a disciplina CES-10:
Estará Estará presente nas aulas de Lab presente nas aulas de Lab para para ajudar o professor na ajudar o professor na assistência assistência aos alunos, aos alunos, em caso de dúvidas e/ou dificuldadesem caso de dúvidas e/ou dificuldades
Dará Dará plantão de dúvidasplantão de dúvidas aos alunos, duas aos alunos, duas horas semanais; horário a combinar com os horas semanais; horário a combinar com os alunosalunos
0.6 – Metodologia e Carga 0.6 – Metodologia e Carga horáriahorária
Importante:Importante:
Só será permitido o uso de Só será permitido o uso de Lap-TopsLap-Tops em sala de em sala de aula para acompanhamento das aula para acompanhamento das aulas de CES-10aulas de CES-10
CelularesCelulares deverão ser deverão ser desligadosdesligados durante as durante as aulasaulas
Nas aulas de lab, os computadores da sala Nas aulas de lab, os computadores da sala não não poderão ser desconectadospoderão ser desconectados, para evitar danos, para evitar danos
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.7 – Critérios de Avaliação0.7 – Critérios de Avaliação
Por bimestre: 2 provas e de 4 a 6 laboratóriosPor bimestre: 2 provas e de 4 a 6 laboratórios
Nota Bimestre Nota Bimestre = =
(média das provas + média dos labs) / 2(média das provas + média dos labs) / 2
Exame final: Exame final: misto de uma prova e dois misto de uma prova e dois laboratórioslaboratórios
Nota Exame Nota Exame ==
(6.5 * Média das notas dos labs + 3.5 * Nota da (6.5 * Média das notas dos labs + 3.5 * Nota da prova) / 10prova) / 10
Em algumas provas será permitido Em algumas provas será permitido consultarconsultar materiais indicados pelo professormateriais indicados pelo professor
0.7 – Critérios de Avaliação0.7 – Critérios de Avaliação
Nota bimestre Nota bimestre = =
(média das provas + média dos labs) / 2(média das provas + média dos labs) / 2
O O pesopeso de cada lab dependerá de seu de cada lab dependerá de seu grau de grau de dificuldadedificuldade
Eventuais Eventuais exercíciosexercícios em sala serão em sala serão computadoscomputados na média das provas na média das provas
As provas, os exercícios, os laboratórios e o As provas, os exercícios, os laboratórios e o exame são de caráter exame são de caráter individualindividual
0.7 – Critérios de Avaliação0.7 – Critérios de Avaliação
Tendo sido determinadas todas as notas de provas Tendo sido determinadas todas as notas de provas e labs (bimestres e exame), para ser e labs (bimestres e exame), para ser aprovadoaprovado o aluno precisa obter: o aluno precisa obter:
Média geralMédia geral (de acordo com o regulamento do (de acordo com o regulamento do ITA) ≥ ITA) ≥ 6.56.5
Média simples de notas de Média simples de notas de provaprova (bimestres e (bimestres e exame) ≥ exame) ≥ 5.05.0
Média simples de notas de Média simples de notas de lablab (bimestres e (bimestres e exame) ≥ exame) ≥ 5.05.0
0.7 – Critérios de Avaliação0.7 – Critérios de Avaliação
Os trabalhos laboratoriais terão Os trabalhos laboratoriais terão prazo de prazo de entregaentrega
Será descontado Será descontado meio pontomeio ponto para cada para cada dia de dia de atrasoatraso (considerando notas de zero a dez) (considerando notas de zero a dez)
Trabalhos entregues com Trabalhos entregues com 2 semanas2 semanas ou mais ou mais de atraso de atraso não serão aceitosnão serão aceitos
O caráter individual – lembrar a DC:O caráter individual – lembrar a DC:
O que não é permitido:O que não é permitido:
Olhar ou copiar o lab de outro aluno ou o lab Olhar ou copiar o lab de outro aluno ou o lab de anos anterioresde anos anteriores
Sentar junto com um colega em dificuldades e Sentar junto com um colega em dificuldades e fazer o lab ou parte do lab para elefazer o lab ou parte do lab para ele
Dois alunos sentarem e fazerem o código do Dois alunos sentarem e fazerem o código do lab juntoslab juntos
Pegar da Internet código pronto para usar no Pegar da Internet código pronto para usar no lablab
O caráter individual – lembrar a DC:O caráter individual – lembrar a DC:
O que é permitido:O que é permitido:
Usar material (slides e apostilas) de outros Usar material (slides e apostilas) de outros professoresprofessores
Trocar idéia com algum colega (sem olhar o Trocar idéia com algum colega (sem olhar o código) sobre como o lab deve ser feitocódigo) sobre como o lab deve ser feito
Um aluno que já terminou o lab sentar junto Um aluno que já terminou o lab sentar junto com outro para ajudá-lo a encontrar um erro com outro para ajudá-lo a encontrar um erro no programano programa
O caráter individual – lembrar a DC:O caráter individual – lembrar a DC:
O que é permitido:O que é permitido:
Dois alunos sentarem e bolarem parte da Dois alunos sentarem e bolarem parte da solução antes de programaremsolução antes de programarem
Pegar da Internet material didáticoPegar da Internet material didático
Pode indicar o site a colegas, mas cada um Pode indicar o site a colegas, mas cada um deve pessoalmente ser responsável pelo que deve pessoalmente ser responsável pelo que pegou da Internetpegou da Internet
Capítulo Zero - Capítulo Zero - ApresentaçãoApresentação
0.1 – Professor e alunos0.1 – Professor e alunos
0.2 – Objetivos gerais da disciplina0.2 – Objetivos gerais da disciplina
0.3 – O computador na sociedade0.3 – O computador na sociedade
0.4 – Relevância da disciplina0.4 – Relevância da disciplina
0.5 – Programa da disciplina0.5 – Programa da disciplina
0.6 – Metodologia e carga horária0.6 – Metodologia e carga horária
0.7 – Critérios de avaliação0.7 – Critérios de avaliação
0.8 – Bibliografia 0.8 – Bibliografia
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Mokarzel, F.C.; Soma, Mokarzel, F.C.; Soma, N.Y. N.Y. Introdução à Introdução à Ciência da Ciência da ComputaçãoComputação. Rio de . Rio de Janeiro: Campus-Janeiro: Campus-Elsevier, 2008.Elsevier, 2008.Espinha dorsal da disciplina
Resultado de muitos anos ministrando a disciplina
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Mizrahi, V.V. Mizrahi, V.V. Treinamento em Treinamento em Linguagem CLinguagem C. 2ª . 2ª Edição. São Paulo: Edição. São Paulo: Pearson, 2008.Pearson, 2008.
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Kelley, A.; Pohl, I. Kelley, A.; Pohl, I. A A Book on CBook on C. Redwood . Redwood City: Benjamin City: Benjamin Cummings, 1995.Cummings, 1995.
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Slides de CES-10 – Prof. Slides de CES-10 – Prof. Mokarzel, 2011Mokarzel, 2011
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Slides de CES-10 – Profa. Slides de CES-10 – Profa. Juliana, 2009Juliana, 2009
0.8 – Bibliografia 0.8 – Bibliografia
0.8.1 – Bibliografia 0.8.1 – Bibliografia básicabásica
Slides de CES-10 – Prof. Slides de CES-10 – Prof. Guerra, 2009Guerra, 2009
0.8 – Bibliografia 0.8 – Bibliografia
0.8.2 – Bibliografia 0.8.2 – Bibliografia suplementarsuplementar
Saliba, W.L.C. Saliba, W.L.C. Técnicas Técnicas de Programação: de Programação: uma Abordagem uma Abordagem EstruturadaEstruturada. São . São Paulo: Makron, 1992.Paulo: Makron, 1992.
0.8 – Bibliografia 0.8 – Bibliografia
0.8.2 – Bibliografia 0.8.2 – Bibliografia suplementarsuplementar
Schildt, H. Schildt, H. C Completo C Completo e Totale Total. 3ª Edição . 3ª Edição São Paulo: Makron, São Paulo: Makron, 1997.1997.
0.8 – Bibliografia 0.8 – Bibliografia
0.8.2 – Bibliografia 0.8.2 – Bibliografia suplementarsuplementar
Kernighan B.W.; Ritchie Kernighan B.W.; Ritchie D.M. D.M. The C The C Programming Programming LanguageLanguage. 2. 2ndnd Edition Englewood Edition Englewood Cliffs: Prentice Hall, Cliffs: Prentice Hall, 1988.1988.
0.8 – Bibliografia 0.8 – Bibliografia
0.8.3 – 0.8.3 – Sites da InternetSites da Internet
Wikipedia: precursores do computador, circuitos Wikipedia: precursores do computador, circuitos integrados e história dos microprocessadores integrados e história dos microprocessadores
www.vas-y.com/dicas/historia/default.htm - www.vas-y.com/dicas/historia/default.htm - História dos Computadores História dos Computadores
ftp://[email protected]/DCA0800/ftp://[email protected]/DCA0800/historico.pdf historico.pdf
http://www.ic.uff.br/~otton/graduacao/http://www.ic.uff.br/~otton/graduacao/informaticaI/computadores_por_imagens.html – informaticaI/computadores_por_imagens.html – figuras históricas dos primórdios da computaçãofiguras históricas dos primórdios da computaçãoHá uma infinidade de
sites na Internet sobre o assunto