Nome da disciplina i
Sumário 1 Novo capítulo 1 1.1 Minha primeira seção.................................. 1 1.1.1 Exemplo de subseção.............................. 1 1.2 Minha segunda seção.................................. 1 1.3 Recapitulando...................................... 1 1.4 Atividades........................................ 2 2 Novo capítulo 3 2.1 Minha primeira seção.................................. 3 2.1.1 Exemplo de subseção.............................. 3 2.2 Minha segunda seção.................................. 3 2.3 Recapitulando...................................... 3 2.4 Atividades........................................ 4 3 Novo capítulo 5 3.1 Minha primeira seção.................................. 5 3.1.1 Exemplo de subseção.............................. 5 3.2 Minha segunda seção.................................. 5 3.3 Recapitulando...................................... 5 3.4 Atividades........................................ 6 4 Novo capítulo 7 4.1 Minha primeira seção.................................. 7 4.1.1 Exemplo de subseção.............................. 7 4.2 Minha segunda seção.................................. 7 4.3 Recapitulando...................................... 7 4.4 Atividades........................................ 8 ii
5 Novo capítulo 9 5.1 Minha primeira seção.................................. 9 5.1.1 Exemplo de subseção.............................. 9 5.2 Minha segunda seção.................................. 9 5.3 Recapitulando...................................... 9 5.4 Atividades........................................ 10 6 Novo capítulo 11 6.1 Minha primeira seção.................................. 11 6.1.1 Exemplo de subseção.............................. 11 6.2 Minha segunda seção.................................. 11 6.3 Recapitulando...................................... 11 6.4 Atividades........................................ 12 7 Novo capítulo 13 7.1 Minha primeira seção.................................. 13 7.1.1 Exemplo de subseção.............................. 13 7.2 Minha segunda seção.................................. 13 7.3 Recapitulando...................................... 13 7.4 Atividades........................................ 14 8 Novo capítulo 15 8.1 Minha primeira seção.................................. 15 8.1.1 Exemplo de subseção.............................. 15 8.2 Minha segunda seção.................................. 15 8.3 Recapitulando...................................... 15 8.4 Atividades........................................ 16 9 Novo capítulo 17 9.1 Minha primeira seção.................................. 17 9.1.1 Exemplo de subseção.............................. 17 9.2 Minha segunda seção.................................. 17 9.3 Recapitulando...................................... 17 9.4 Atividades........................................ 18 10 Glossário 19 iii
11 Respostas das atividades 21 11.1 Capítulo 1........................................ 21 11.2 Capítulo 2........................................ 21 11.3 Capítulo 3........................................ 21 11.4 Capítulo 4........................................ 21 11.5 Capítulo 5........................................ 21 11.6 Capítulo 6........................................ 22 11.7 Capítulo 7........................................ 22 11.8 Capítulo 8........................................ 22 11.9 Capítulo 9........................................ 22 iv
Prefácio Este livro foi desenvolvido para a introdução do tema Computação, não tendo a ambição de englobar toda esta vasta área do conhecimento humano. Computação é a área responsável pelas diversas regras e técnicas para o ato de computar, representar e disponibilizar a informação de forma automática. O curso de Licenciatura em Computação tem como objetivo transformar seus egressos em profissionais que possam atuar na área da educação com o auxílio da Computação, tanto para ensinar conceitos de sua própria área, como também servir de consultor para professores que atuam em diversas áreas como Matemática, História, Ciências e etc. No entanto, para o profissional desta área se tornar um diferencial na educação, ele precisa conhecer as Ciências da Computação, permitindo que o mesmo possa responder a questões como: Como a informação é representada em um computador? Como o computador realiza uma soma? Como fazer para o computador resolver um problema específico de forma automática? Como o computador disponibiliza informação no mundo todo e como fazer para disponibilizar o seu material neste meio? São perguntas como esta que o aluno irá aprender a responder durante todo o seu curso, sendo este livro apenas um produtor de novas dúvidas. Iremos abordar aqui a história evolutiva dos Computadores; discutiremos sobre como a informação (números, imagem som e etc.), é representada no computador; descreveremos a arquitetura e o funcionamento dos componentes básicos de um computador; apresentaremos os softwares básicos responsáveis por construir os programas desenvolvidos por qualquer programador através de seus algoritmos; descreveremos as funcionalidades básicas de um sistema operacional, software que gerencia os recursos do computador e por fim introduziremos o funcionamento das redes de computadores promovendo comunicação instantânea entre as pessoas do mundo inteiro. Introdução à Computação é apenas uma visão rápida sobre os diversos temas da Computação, servindo como porta de entrada para o vasto campo do conhecimento que vocês se aventurarão em todo o curso. Prometemos duas coisas para quem pretende concluir este curso: muito trabalho e muita satisfação. O educador Rubem Alves criou um belo aforismo Ostra Feliz não faz Pérola, se referindo ao fato de que a ostra ao se proteger de um corpo estranho que penetrou em sua concha, cria uma defesa natural ao redor deste invasor, gerando por fim uma pérola, entretanto, durante este processo a ostra sofre muito devido à falta de defesa dentro de sua concha. Para nós aprendizes o ensino é assim, cheio de sofrimento, mas ao final teremos criado nossas próprias pérolas. Público alvo O público alvo desse livro são os alunos de Licenciatura em Computação, na modalidade à distância 1. Ele foi concebido para ser utilizado numa disciplina de Introdução à Computação, no primeiro semestre do curso. 1 Embora ele tenha sido feito para atender aos alunos da Universidade Federal da Paraíba, o seu uso não se restringe a esta universidade, podendo ser adotado por outras universidades do sistema UAB. v
Como você deve estudar cada capítulo Leia a visão geral do capítulo Estude os conteúdos das seções Realize as atividades no final do capítulo Verifique se você atingiu os objetivos do capítulo NA SALA DE AULA DO CURSO Tire dúvidas e discuta sobre as atividades do livro com outros integrantes do curso Leia materiais complementares eventualmente disponibilizados Realize as atividades propostas pelo professor da disciplina Caixas de diálogo Nesta seção apresentamos as caixas de diálogo que poderão ser utilizadas durante o texto. Confira os significados delas. Nota Esta caixa é utilizada para realizar alguma reflexão. Dica Esta caixa é utilizada quando desejamos remeter a materiais complementares. Importante Esta caixa é utilizada para chamar atenção sobre algo importante. Cuidado Esta caixa é utilizada para alertar sobre algo que exige cautela. Atenção Esta caixa é utilizada para alertar sobre algo potencialmente perigoso. Os significados das caixas são apenas uma referência, podendo ser adaptados conforme as intenções dos autores. vi
Vídeos Os vídeos são apresentados da seguinte forma: size=10 Figura 1: Como baixar os códigos fontes: http://youtu.be/od90rvxjv78 Nota Na versão impressa irá aparecer uma imagem quadriculada. Isto é o qrcode (http://pt.wikipedia.org/wiki/c%c3%b3digo_qr) contendo o link do vídeo. Caso você tenha um celular com acesso a internet poderá acionar um programa de leitura de qrcode para acessar o vídeo. Na versão digital você poderá assistir o vídeo clicando diretamente sobre o link ou acionando o play (na versão em HTML). Compreendendo as referências As referências são apresentadas conforme o elemento que está sendo referenciado: Referências a capítulos Prefácio [v] Referências a seções Como você deve estudar cada capítulo [vi], Caixas de diálogo [vi]. Referências a imagens e tabelas Figura 2 [ix] Tabela 1 [viii] Nota Na versão impressa, o número que aparece entre chaves [ ] corresponde ao número da página onde está o conteúdo referenciado. Nas versões digitais do livro você poderá clicar no link da referência. Códigos e comandos Os códigos ou comandos são apresentados com a seguinte formação: cc -S main.c teste.c No exemplo a seguir, temos outra apresentação de código fonte. Desta vez de um arquivo main.c, que se encontra dentro do diretório code/tradutor. O diretório tradutor faz referência ao capítulo onde o código será apresentado. code/tradutor/main.c vii
Baixando os códigos fontes Existem duas formas de acessar os códigos fontes contidos neste livro. Acesso on-line individual Você pode acessar individualmente os arquivos deste livro pelo endereço: https://github.com/- xxx/yyy/tree/master/livro/capitulos/code. Baixando todos os códigos Você também pode baixar o código fonte do livro inteiro, que contém todos os códigos mencionados no livro. Existem duas formas de baixar o código inteiro, através de um arquivo zip ou clonando o repositório. Arquivo zip https://github.com/xxx/yyy/archive/master.zip. Depois de baixar o arquivo, descompacteo. Clonando o repositório Use o comando: git clone https://github.com/xxx/yyy Nota Independente do método utilizado para acessar os arquivos, os códigos fontes estão organizados por capítulos no diretório livro/capitulos/code. Atenção Os códigos acessados por estes métodos são referentes à versão mais nova do livro (em produção). É possível que eles sejam diferentes da versão do livro que você esteja lendo. Contribuindo com o livro Você pode contribuir com a atualização e correção deste livro. A tabela a seguir resume os métodos de contribuições disponíveis: Tabela 1: Métodos para contribuição do livro Método de contribuição Issue track Habilidades necessárias Inscrição no site do github Preenchimento de um formulário Descrição Consiste em acessar o repositório do livro e submeter um erro, uma sugestão ou uma crítica através da criação de um Issue. Quando providências forem tomadas você será notificado disso. viii
Tabela 1: (continued) Método de contribuição Habilidades necessárias Descrição Submissão de correção Realizar fork de projetos Atualizar texto do livro Realizar PullRequest Consiste em acessar os arquivos fontes do livro, realizar a correção desejada e submetê-la para avaliação. Este processo é o mesmo utilizado na produção de softwares livres. Importante Quando for enviar sua contribuição lembre-se de informar qual a versão e página do livro que está se referindo. Contribuição através do Issue track Para contribuir com um erro, sugestão ou crítica através de um envio de uma mensagem acesse: https://github.com/xxx/yyy/issues/new images/prefacio/issue.png Figura 2: Exemplo de contribuição através do Issue track Atividades No final de cada capítulo há uma seção Atividades com exercícios para serem resolvidos. O significado dos ícones relativos aos exercícios são: a reposta do exercício se encontra disponível no Capítulo 11 [21]. a resolução do exercício se encontra disponível. Nota Você pode contribuir enviando respostas ou soluções dos exercícios. ix
Baixando a edição mais nova deste livro Nós estamos constantemente atualizando o nosso material didático. Todas as versões deste livro encontram-se disponíveis para download. Dica Acesse https://github.com/xxx/yyy/releases para baixar a versão mais nova deste livro. x
Capítulo 1 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 1.1 Minha primeira seção 1.1.1 Exemplo de subseção Texto da subseção. 1.2 Minha segunda seção 1.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 1 / 22
1.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 2 / 22
Capítulo 2 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 2.1 Minha primeira seção 2.1.1 Exemplo de subseção Texto da subseção. 2.2 Minha segunda seção 2.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 3 / 22
2.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 4 / 22
Capítulo 3 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 3.1 Minha primeira seção 3.1.1 Exemplo de subseção Texto da subseção. 3.2 Minha segunda seção 3.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 5 / 22
3.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 6 / 22
Capítulo 4 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 4.1 Minha primeira seção 4.1.1 Exemplo de subseção Texto da subseção. 4.2 Minha segunda seção 4.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 7 / 22
4.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 8 / 22
Capítulo 5 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 5.1 Minha primeira seção 5.1.1 Exemplo de subseção Texto da subseção. 5.2 Minha segunda seção 5.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 9 / 22
5.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 10 / 22
Capítulo 6 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 6.1 Minha primeira seção 6.1.1 Exemplo de subseção Texto da subseção. 6.2 Minha segunda seção 6.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 11 / 22
6.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 12 / 22
Capítulo 7 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 7.1 Minha primeira seção 7.1.1 Exemplo de subseção Texto da subseção. 7.2 Minha segunda seção 7.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 13 / 22
7.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 14 / 22
Capítulo 8 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 8.1 Minha primeira seção 8.1.1 Exemplo de subseção Texto da subseção. 8.2 Minha segunda seção 8.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 15 / 22
8.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 16 / 22
Capítulo 9 Novo capítulo OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: objetivo 1 objetivo 2 objetivo N Neste lugar você deve apresentar o conteúdo em forma de diálogo. Nota Para começar a escrever um novo capítulo, copie este arquivo e salve com outro nome (não utilize espaço no nome do arquivo). Em seguida, atualize o arquivo livro.asc para incluir o novo arquivo criado. Consulte o manual. 9.1 Minha primeira seção 9.1.1 Exemplo de subseção Texto da subseção. 9.2 Minha segunda seção 9.3 Recapitulando Revisão do que foi aprendido. Reserve o último parágrafo para realizar uma ponte para o próximo capítulo. 17 / 22
9.4 Atividades 1. Texto da atividade. 2. Texto da atividade. 3. Texto da atividade. Cuidado Sempre termine os arquivos com uma linha em branco, caso contrário você poderá encontrar erros inesperados. 18 / 22
Capítulo 10 Glossário Ambiente de produção Commit Fork Conjunto de ferramentas utilizadas para a produção dos livros reais, por exemplo, para submissão de imagens para o Github [19] é necessário o ambiente de produção. Como a utilização do ambiente de produção requer uma curva de aprendizado maior, o curso básico não aborda nenhum recurso que necessite dele. Mas é importante saber que ele é essencial na produção real de um livro. Conjunto de alterações realizadas num arquivo e enviadas para o repositório [20]. Um fork é basicamente uma cópia individual de um repositório [20] de outra pessoa. Neste curso é solicitado realizar um fork do repositório do Playground. Portanto você terá um novo repositório cujo conteúdo é o mesmo do repositório original. Você poderá inclusive adicionar permissões diferentes ao seu repositório. Perceba que você terá um link de acessa para o seu fork/repositório: https://github.com/seu-usuário-aqui/playground-asciidoc/ Para saber mais sobre fork, consulte: https://help.github.com/articles/fork-a-repo. Git Git é sistema de controle de versão descentralizado. Sem o ambiente de produção [19] o usuário não perceberá a descentralização dos arquivos, pois os arquivos estarão mantidos apenas Github [19]. Para saber mais sobre o git consulte: http://git-scm.com ou http://git-scm.com/book/ptbr/primeiros-passos-sobre-controle-de-vers%c3%a3o. Github Issue O github (http://github.com) é um site que oferece o serviço de controle de versão git [19], e um conjunto de outras ferramentas para auxiliar a gestão de um repositório [20], como Issue tracker. Um Issue é um incidente. O Github [19] possui um sistema de gerenciamento de incidentes (Issue tracker) integrado. Exemplos de incidentes são erros (bugs) e correções reportadas, que ficam aguardando avaliações. Quando um incidente é registrado, ele é marcado como aberto (open), quando ele é finalizado alguém o marca como finalizado (closed). 19 / 22
Para saber consulte mais sobre um Issue tracker consulte: http://en.wikipedia.org/wiki/issue_tracking_system ou http://pt.wikipedia.org/wiki/- Sistema_de_gerenciamento_de_incidentes. Pull Request Um Pull Request é uma alteração submetida ao seu repositório [20]. O leitor que tiver os conhecimentos técnicos necessários para submissão de uma correção poderá fazê-lo através de um Pull Request. A vantagem da submissão da correção, em relação a submissão de erros é que o autor do livro pode aceitar as correções e elas serão automaticamente incorporadas ao seu livro. Para saber mais, consulte: https://help.github.com/articles/using-pull-requests e https://help.github.com/articles/merging-a-pull-request. Repositório Repositório é um local que possibilita guardar arquivos mantendo um controle de versões, ou seja, as versões iniciais dos arquivos e todas as alterações realizadas neles. Um repositório possui propriedades de acesso (quem é o dono, quem pode ler os arquivos, quem pode alterar, etc.) e um histório de commits. Para saber mais sobre um repositório git [19], consulte: http://git-scm.com/book/pt-br/primeiros-passos-sobre-controle-de-vers%c3%a3o. Quando fazemos referência à página do repositório, estamos nos referindo à página do seu repositório no github. O link é parecido com: https://github.com/edusantana/introducao-a-computacao-livro. Percebam que o link termina com o nome do repositório. Muitas pessoas confundem o link do repositório passando outros valores no seu lugar. Exemplo de link errado: https://github.com/- edusantana/introducao-a-computacao-livro/tree/master/livro. 20 / 22
Capítulo 11 Respostas das atividades Nesta capítulo apresentamos as respostas de algumas atividades. Nota Você pode contribuir para elaboração desta seção enviando suas respostas. 11.1 Capítulo 1 Sem respostas. 11.2 Capítulo 2 Sem respostas. 11.3 Capítulo 3 Sem respostas. 11.4 Capítulo 4 Sem respostas. 11.5 Capítulo 5 Sem respostas. 21 / 22
11.6 Capítulo 6 Sem respostas. 11.7 Capítulo 7 Sem respostas. 11.8 Capítulo 8 Sem respostas. 11.9 Capítulo 9 Sem respostas. 22 / 22