{"id":18258790,"url":"https://github.com/manoelcampos/logica-programacao","last_synced_at":"2025-04-08T23:26:37.360Z","repository":{"id":141150311,"uuid":"103152833","full_name":"manoelcampos/logica-programacao","owner":"manoelcampos","description":"Curso de Lógica de Programação em C 👩🏽‍💻🤔","archived":false,"fork":false,"pushed_at":"2020-08-15T20:25:26.000Z","size":6641,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-14T18:20:47.853Z","etag":null,"topics":["algoritmos","c","curso","ebook","gitbook","logica"],"latest_commit_sha":null,"homepage":"https://manoelcampos.gitbooks.io/logica-programacao/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manoelcampos.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-11T15:23:50.000Z","updated_at":"2022-08-19T22:20:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e06654d-6d10-471a-8992-f1ae3f357271","html_url":"https://github.com/manoelcampos/logica-programacao","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Flogica-programacao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Flogica-programacao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Flogica-programacao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manoelcampos%2Flogica-programacao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manoelcampos","download_url":"https://codeload.github.com/manoelcampos/logica-programacao/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247944598,"owners_count":21022605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algoritmos","c","curso","ebook","gitbook","logica"],"created_at":"2024-11-05T10:34:38.795Z","updated_at":"2025-04-08T23:26:37.330Z","avatar_url":"https://github.com/manoelcampos.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Introdução\n:revealjsdir: reveal.js\n// :revealjsdir: https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.3.0\n:revealjs_slideNumber: true\n:source-highlighter: highlightjs\n:imagesdir: images\n:allow-uri-read:\n:safe: unsafe\n:numbered:\n:listing-caption: Listing\n\nifdef::env-github[]\n:outfilesuffix: .adoc\n:caution-caption: :fire:\n:important-caption: :exclamation:\n:note-caption: :paperclip:\n:tip-caption: :bulb:\n:warning-caption: :warning:\nendif::[]\n\n- https://palmas.ifto.edu.br/index.php/component/content/article?id=225[Curso Superior de Sistemas para Internet] - http://www.ifto.edu.br[IFTO]\n- http://about.me/manoelcampos[Prof. Me. Manoel Campos da Silva Filho]\n\nifdef::backend-revealjs[]\n- mcampos@ifto.edu.br \n- https://manoelcampos.gitbooks.io/logica-programacao/\nendif::backend-revealjs[]\n\nifdef::env-github[]\nIMPORTANT: Acesse o curso online https://manoelcampos.gitbooks.io/logica-programacao/[neste link], onde é possível fazer o download do material em PDF e epub.\nO acesso ao curso diretamente pelo GitHub não permite a exibição de vídeos nem a navegação facilitada entre capítulos.\nendif::[]\n\n== Objetivos\n\nAprender os fundamentos para desenvolvimento de *programas* para solucionar problemas cotidianos.\nProgramas são executados em equipamentos como *computadores* e *smartphones*. Porém, atualmente podem ser encontrados em diversos equipamentos. \n\n== Pré-requisitos\n\nifndef::backend-revealjs[]\nPara aprender lógica de programação é preciso *foco*, *dedicação*, *proatividade* e *curiosidade*. Estas são características normalmente necessárias para desenvolver qualquer nova habilidade, desde uma habilidade motora como tocar um instrumento musical até aprender um novo idioma. Por falar em idiomas, você verá que saber algo de inglês ajuda bastante. \n\nApesar de não ser um pré-requisito, se ainda não sabe inglês, já passou da hora de iniciar os estudos. Aprender inglês ao longo do caminho abrirá um mundo de possibilidades em programação. Existem incontáveis materiais de altíssima qualidade disponíveis em inglês. Empresas como a https://www.coursera.org[Coursera] disponibilizam diversos cursos gratuitos, desenvolvidos por universidades conceituadas dos Estados Unidos como Stanford e MIT.\nendif::backend-revealjs[]\n\nifdef::backend-revealjs[]\n- *foco*, *dedicação*, *proatividade* e *curiosidade*\n- um pouquinho de inglês ajuda bastante\nendif::backend-revealjs[]\n\n== Metodologia\nAulas expositivas e práticas em laboratório, com aplicação da teoria no desenvolvimento de pequenos programas.\n\n== Plano do Curso\n\n== Método de Avaliação\n\nifndef::backend-revealjs[]\n\nPara ser aprovado na disciplina o aluno precisa ter média igual ou superior a 6 e pelo menos 75% de presença.\n\nO aluno será avaliado pelas atividades realizadas em sala de aula e no ambiente virtual de aprendizagem, a soma delas contabilizando 10 pontos por bimestre. Será ainda aplicada 1 prova prática valendo 10 pontos. A Nota Final do aluno será calculada pela média aritmética das notas dos bimestres.\n\nCaso o aluno não consiga obter nota para aprovação, será aplicado um Exame Final prático. A Nota Final será calculada pela média aritmética\nda nota do semestre e o Exame Final.\n\nendif::backend-revealjs[]\n\nifdef::backend-revealjs[]\n\n- Média igual ou superior a 6 e pelo menos 75% de presença.\n\n- Atividades realizadas em sala de aula e no ambiente virtual de aprendizagem, a soma delas contabilizando 10 pontos por bimestre. \n- Uma prova prática valendo 10 pontos por bimestre. \n- A Nota Final é a média aritmética das notas dos bimestres.\n- Recuperação: Exame final prático.\n\nendif::backend-revealjs[]\n\n\nifndef::backend-revealjs[]\n== Motivação\nAplicativos invadiram as nossas vidas e estão em todos os lugares. Muitos dos equipamentos onde eles podem ser encontrados são:\n\n- *televisores*: possibilitando interatividade dos telespectadores, fornecendo serviços de utilidade pública (como consulta de resultado das loterias e localização de postos de saúde), navegação na internet, jogos, etc;\n- https://pt.wikipedia.org/wiki/Veículo_aéreo_não_tripulado[drones]: para permitir controlar aeronaves não tripuladas por meio de controle remoto ou mesmo permitir que elas possam voar de forma autônoma sem intervenção humana. image:tv-digital.jpg[link=\"http://www.portalmidiaesporte.com/2015/07/esporte-interativo-estreia-tela-em-l-no.html\" title=\"Aplicativo de TV Digital\"]\n\nvideo::RXZJzXf4Scg[youtube, width=640, height=480, title=\"DroneSeed: aeronave autônoma para plantio de sementes.\"]\n\n- *veículos*: prover https://pt.wikipedia.org/wiki/Sistema_de_posicionamento_global[serviços de navegação por satélite (GPS)], entretenimento como players de vídeo e música e aplicações populares em smartphones como o Spotify, ou até mesmo permitir que carros possam ser guiados de forma autônoma, sem a intervenção do motorista, como é o caso de veículos da Tesla Motors. \n\nvideo::192179726[vimeo, start=5, width=640, height=480, title=\"Veículo totalmente autônomo da Tesla Motors\"]\n\n- robôs, semâforos, câmeras fotográficas, geladeiras, produtos de automação residencial como fechaduras eletrônicas, lâmpadas e uma série de produtos inteligentes como porteiros eletrônicos, relógios, balanças Wi-Fi, etc.\n\nTIP: Programas podem ser chamados de _softwares_, aplicações, aplicativos ou simplesmente _apps_.\n\nvideo::wek9VPTdMMM[youtube, width=640, height=480, title=\"Porteiro Eletrônico Inteligente: detecta movimentos e permite atender a campainha mesmo não estando em casa\"]\n\nvideo::tmQpP_r9QsU[youtube, width=640, height=480, title=\"Balança Inteligente: mede peso, gordura corporal e conecta na Wi-Fi para enviar histórico para aplicativo\"]\n\nPode-se ainda desenvolver jogos para vários dos equipamentos citados, além de consoles de video game como Playstation, X-Box e outros.\n\nProgramas podem ser desenvolvidos como páginas de internet, para serem acessados a partir de um navegador em um smartphone, TV, computador, etc. Mas como já visto, podem ser criados como aplicações independentes para uso nestes mesmos dispositivos. \n\nendif::backend-revealjs[]\n\nifdef::backend-revealjs[]\n== Motivação\nAplicativos em todo lugar\n\n- *televisores* \n\nimage::tv-digital.jpg[link=\"http://www.portalmidiaesporte.com/2015/07/esporte-interativo-estreia-tela-em-l-no.html\" title=\"Aplicativo de TV Digital\"]\n\n== Motivação\n- https://pt.wikipedia.org/wiki/Veículo_aéreo_não_tripulado[drones]: controle remoto ou navegação autônoma. \n\nvideo::RXZJzXf4Scg[youtube, width=640, height=480]\n\n== Motivação\n\n- *veículos*: carros autônomos, GPS e entretenimento. \n\nvideo::192179726[vimeo, start=5, width=640, height=480, title=\"Veículo totalmente autônomo da Tesla Motors\"]\n\n== Motivação\n\n- robôs, semâforos, câmeras fotográficas, geladeiras\n- produtos de automação residencial como fechaduras eletrônicas\n- lâmpadas e uma série de produtos inteligentes como porteiros eletrônicos, \n- relógios, balanças Wi-Fi, etc.\n\n== Motivação\nvideo::wek9VPTdMMM[youtube, width=640, height=480, title=\"Porteiro Eletrônico Inteligente: detecta movimentos e permite atender a campainha mesmo não estando em casa\"]\n\n== Motivação\nvideo::tmQpP_r9QsU[youtube, width=640, height=480, title=\"Balança Inteligente: mede peso, gordura corporal e conecta na Wi-Fi para enviar histórico para aplicativo\"]\n\n== Motivação\n\n- Jogos para consoles como Playstation e X-Box\n- Páginas de Internet\n\nendif::backend-revealjs[]\n\nifndef::backend-revealjs[]\n== Porque desenvolver programas \n\nUm dispositivo com poder computacional só consegue realizar tarefas se tiver programas para isto. Tais dispositivos sem programas não tem qualquer utilidade. Desta forma, pode-se criar programas para:\n\n* Automatizar tarefas repetitivas que demandem tempo e/ou esforço, visando reduzir: custos, tempo e redução de erros humanos.\n* Resolver problemas que antes não eram possíveis sem o uso da computação. Além dos exemplos já apresentados, alguns problemas que só puderam ser resolvidos com o uso de programas incluem: \n    ** image:uber-map.png[title=\"Uber: aplicativo de compartilhamento de corridas de taxi\", width=320, role=\"right\"] aproximação de consumidores e fornecedores, como o http://uber.com[Uber]; \n    ** image:whatsapp.png[title=\"WhatsApp Messenger\",link=\"https://pt.wikipedia.org/wiki/WhatsApp\" role=\"right\"] comunicação instantânea com texto, áudio e vídeo como o https://whatsapp.com[WhatsApp]; \n    ** image:bitcoin.png[title=\"Bitcoin: moeda digital\", link=\"https://pt.wikipedia.org/wiki/Bitcoin\" role=\"right\"] moedas virtuais como https://www.bitcoin.com[Bitcoin]; \n    ** tradução instantânea de video-chamadas com https://www.skype.com[Skype]; image:skype.png[title=\"Skype Mensagens Instantâneas\", link=\"https://pt.wikipedia.org/wiki/Skype\" role=\"right\"]\n\nTIP: Computar signifca avaliar, igualar, orçar e não somente calcular ou contar.\n\nvideo::G87pHe6mP0I[youtube, width=640, height=480, title=\"Tradução instantânea de voz em video-chamada com Skype\"]\nendif::backend-revealjs[]\n\nifdef::backend-revealjs[]\n== Porque desenvolver programas \n\n- Um dispositivo com poder computacional só é útil se tiver programas\n- Pode-se criar programas para:\n* Automatizar tarefas repetitivas\n* Resolver problemas que antes não eram possíveis sem o uso da computação. \n\n== Porque desenvolver programas \n\nAlém dos exemplos já apresentados, outros incluem: \n\n- image:uber-map.png[title=\"Uber: aplicativo de compartilhamento de corridas de taxi\", width=320, role=\"right\"] aproximação de consumidores e fornecedores como o http://uber.com[Uber]; \n\n== Porque desenvolver programas \n- image:whatsapp.png[title=\"WhatsApp Messenger\",link=\"https://pt.wikipedia.org/wiki/WhatsApp\" role=\"right\"] comunicação instantânea como o https://whatsapp.com[WhatsApp]; \n- image:bitcoin.png[title=\"Bitcoin: moeda digital\", link=\"https://pt.wikipedia.org/wiki/Bitcoin\" role=\"right\"] moedas virtuais como https://www.bitcoin.com[Bitcoin]; \n- tradução instantânea de video-chamadas com https://www.skype.com[Skype]; image:skype.png[title=\"Skype Mensagens Instantâneas\", link=\"https://pt.wikipedia.org/wiki/Skype\" role=\"right\"]\n\n== Porque desenvolver programas \n\nvideo::G87pHe6mP0I[youtube, width=640, height=480, title=\"Tradução instantânea de voz em video-chamada com Skype\"]\nendif::backend-revealjs[]\n\nifndef::backend-revealjs[]\nDesenvolver programas pode ser algo desafiador, a medida que você se depara com problemas cada vez mais complexos. Se você é o tipo de pessoa que é instigada por desafios, você está no caminho certo para aprender lógica de programação. Esta disciplina lhe ajuda a aguçar o raciocínio lógico e a despertar o espírito empreendedor. \n\nCom foco e dedicação, você começará a ver o mundo com outros olhos, procurando um problema em cada lugar e desafiando-se a resolvê-los.\nProgramação pode ser ainda divertido com o desenvolvimento de jogos, aplicativos para celular, páginas web, automação de robôs, drones e tudo mais.\n\nAtualmente, programação é essencial em todas as áreas da computação, inclusive em infraestrutura e redes. Com o advento da computação em nuvem, empresas, empreendedores individuais e pessoas físicas podem alugar recursos computacionais como armazenamento de um provedor de computação em nuvem. Provedores possuem uma série de servidores (computadores de alto poder computacional) que podem ser alugados para vários clientes. Diversos clientes podem compartilhar o mesmo servidor. Todo o processo de reserva de recursos computacionais para cada cliente pode ser feito por programas, normalmente aplicações web. Tais programas permitem aos clientes reservarem mais recursos como espaço de armazenamento à medida que precisarem, sem precisar da intervenção de intervenção humana do provedor para reservar espaço no servidor.\n\nPor fim, profissionais que querem se manter atualizados em qualquer sub-area da informática devem ter conhecimento de programação.\nendif::backend-revealjs[]\n\nifdef::backend-revealjs[]\n== Porque desenvolver programas \n\n- Desafiador\n- Aguça o raciocínio lógico \n- Desperta o espírito empreendedor\n- Ver o mundo com outros olhos\n- Divertido\n\n== Porque desenvolver programas \n\n- Essencial em todas as áreas da computação. \n- Áreas de infraestrutura e redes com a computação em nuvem.\nendif::backend-revealjs[]\n\n\nifdef::backend-revealjs[]\n\ninclude::chapter1.adoc[]\ninclude::chapter2.adoc[]\n\nendif::backend-revealjs[]","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Flogica-programacao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanoelcampos%2Flogica-programacao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanoelcampos%2Flogica-programacao/lists"}