E aí o Olá alunos nesse vídeo nós veremos a introdução sobre o conteúdo da linguagem formação é aquela que passa no por alguns tópicos que são fundamentais para que você consiga entender as disciplina começando é claro com os conceitos mais básicos desse vídeo O que que nós iremos abordar o que é um algoritmo O que é a abstração e representação de problemas que que é uma linguagem de programação qualquer utilidade dela Qual o papel dela dentro da ciência da computação e é claro para terminar o vídeo nós teremos um exercício usando o computador simplificado que
é uma forma muito interessante aprender computação sempre está ter um computador vem e dentre os nossos objetivos hoje nós queremos conceituar alguns termos quais termos algoritmo a lógica de programação a linguagem de programação O que é um código fonte e finalmente o que é um programa que para que a gente consiga entender de fato o que é um programa é necessário entender os termos anteriores nós queremos também simular o processo para resolução de problemas computacionais sem que seja necessário o uso de um computador no caso esse termo computação desplugada tem tudo a ver com aprender
computação sentam computador algoritmos um algoritmo é uma sequência finita de Passos logicamente ordenados para obtenção de uma solução para um problema específico essa é uma definição existem muitas outras algumas mais detalhadas mais rigorosos outras mais simples mas você pode pensar em um algoritmo como uma receita para um bolo a Mas qualquer conexão do algoritmo com a receita para um bolo a você já conhece quando você precisa fazer um bolo a receita de um bolo é o passo a passo que você tem que seguir de forma ordenada e lógica para conseguir resolver o seu problema nesse
caso o seu problema é conseguir um bolo pronto rotina para chegar o trabalho todo dia de manhã você acorda segue alguns passos para conseguir estar habilitado para ir até o trabalho o próprio caminho até o trabalho também é o algoritmo por quê que o algoritmo porque é uma sequência de passos ordenados para atingir um objetivo ou resolver um problema Cultural de maquiagem muito comum então e maquiagem também tem um problema a ser resolvido que atingir aquele objetivo de quem assiste o vídeo então reparem que todo tutorial essencialmente é um algoritmo E é claro o manual
de instruções para instalar uma impressora Você tem uma situação Inicial e você quer atingir uma situação final achamos de estado Inicial e um estado final e você segue o manual que é um algoritmo para você conseguir atingir esse estado e são exemplos simples do dia a dia de algoritmos reparem que nenhum desses exemplos cita algo diretamente relacionado à computação tem os algoritmos são muito mais genéricos do que apenas algo para ser usado em computadores os algoritmos como mencionei anteriormente não estão necessariamente relacionados aos computadores né tem muitos algoritmos que nem são executados em computadores todos
aqueles que Eu mencionei para vocês seguem essa linha São algoritmos para serem seguidos por pessoas no dia a dia sem um movimento de um computador algoritmos que resolvem o mesmo problema podem ter uma sequência de passos diferentes porque isso a simples porque a escrita de um algoritmo depende da experiência do autor e nessa parte de experiência nós colocamos o que a experiência matemática a experiência a lógica a experiência de Olá tudo isso influencia como alguém escreve um tutorial para resolver um problema com o todo o algoritmo não deixa de ser um tutorial é claro que
o conhecimento prévio de quem constrói o algoritmo vai influenciar no resultado final a execução de um algoritmo bem escrito depende de alguém abriu para escrevê-lo porém se alguém sábio escrever um algoritmo de forma correta quase qualquer pessoa consegue seguir o algoritmo reparem que a grande dificuldade não é em executar o algoritmo pronto mas sim construir um algoritmo seja bom o suficiente para ser exequível a lógica é uma parte da filosofia que trata das formas de pensamento em geral e das operações intelectuais que visam determinar o que é verdadeiro e o que é falso reparem que
esse conceito de lógica para nós é muito importante porque todo o algoritmo deve seguir lógica em seus passos é porque todo passa de alguma forma deve deixar quem está seguindo algoritmo mais próximo de cumprir o objetivo final Então se os passos não seguirem uma lógica e principalmente uma lógica fácil de ser visualizada o algoritmo ou se realmente não será um bom algorítmico nosso foco aqui na disciplina não é trabalhar todas as formas de lógica lógica dedutiva lógica inferencial nosso foco é lógica de programação é um dentro do Grande campo de lógica nós focamos Em lógica
para construção de programas estão as aprenderemos as estruturas básicas para criar algoritmos E essas estruturas básicas vão ser aplicadas em uma linguagem de programação só que para você resolver problemas computacionalmente ou seja já imaginando que o seu algoritmo mas seja alguma forma interpretado por um computador primeiro a gente precisa conhecer 2 a abstração Ea representação o que que é a representação de um problema é uma forma de você captar os detalhes mais importantes do problema e jogar fora Aqueles que são detalhes desnecessários então abstração ou se construir um modelo que pode ser mental ou o
modelo que você de alguma forma esquematiza desenhando por exemplo que te ajude a resolver o problema e o que não for necessário detalhes que simplesmente Estão ali na situação real mas que não estejam nada e resolver o problema você pode descartar isso seria a abstração seria o abstrair e o que é o algoritmo bem o algoritmo é uma sequência de ações como nós falamos que vão ser aplicadas nessa representação que eu repare nós temos uma representação e nós temos um algoritmo Que Será aplicado na representação e dessa forma a gente consegue mais facilmente pensar em
uma solução para um problema nenhum problema bem simples bom e que mostra bem a questão da importância de uma boa representação para a construção de um algoritmo bem simples e sem entendido executado consequentemente é o problema que por mais que haja uma certa divergência no nome dele geralmente a conhecido como problema do fazendeiro e o do Rio eu vou ler para você esse problema um homem vive no lado leste de um rio ele deseja levar um lobo um bode e Um Repolho a uma vila Só que essa Vila está localizada no lado oeste do Rio
e como é que ele vai conseguir atravessar poder vender esses três itens atravessando o rio bem Tem um detalhe o barco desse fazendeiro só comporta ele e mais um desses personagens ou seja sempre o fazendeiro ou Body fazendeiro o lobo fazendeiro ou repolho é uma questão de limitação de recursos ali atravessar os personagens de uma margem a outra do Rio é só que tem algumas regras o bode ele não pode ficar sozinho com o lobo porque o louvai comer o body da mesma forma o bode não pode ficar sozinho com repolho porque eu repolho vai
ser comido pelo bode Então como que nós conseguimos resolver esse problema fazendo uma boa representação para jogar fora detalhes necessários bem mas apresentação adequada para esse problema poderia ser essa uma simples tabela onde eu tenho coluna homem coluna lobo com na board e coluna repolho por quê que uma simples tabela já é suficiente para suportar os detalhes necessários esse problema porque pense a cor do Lobo é importante a forma como o Rio está é importante para seu problema a cor do barco a estado do barco alguma dessas coisas é importante não então na abstração nós
jogamos fora todos o Thales que não são importantes os nossos únicos detalhes que são importantes é Qual o personagem está em qual margem do rio e preparem que o homem Ele está na margem zero o que que seria margem zero bem nós estipulamos arbitrariamente valores simples para poder simbolizar que um personagem está Numa Margem ou está em outra é para em que 0 indica que o personagem está na margem do lado leste do Rio e um apresenta o personagem está no lado oeste do Rio é uma forma de apresentar certo reparem que o nosso estado
Inicial O que que se ele não estado Inicial como nós encontramos o problema nós encontramos o problema com um homem lobo Body repolho no lado leste por isso que todos eles contém 0 na coluna respectiva Qual que você nosso objetivo o nosso objetivo seria sair desse estado Inicial que aqui nós chamamos de Alpha que seria a entrada do pro o e atingiu o estado final Beta que seria a saída produzida pelo nosso algoritmo se aplicado nesse problema e claro resolver esse problema então reparem que aqui nós temos o estado Inicial E nós queremos chegar no
estado final onde todos os personagens estão com um na coluna quer dizer que todos eles foram para a margem oposta do Rio ao que eles estavam no início Então os nossos algoritmos serão o conjunto de instruções que irá processar um conjunto de entradas para gerar as saídas desejadas isso de forma genérica na podemos colocar aqui os algoritmos em geral são assim eles recebiam uma entrada que seria o estado em que está o problema inicialmente eles eram uma saída que é justamente como nós queremos que aquele problema Inicial que ele estado Inicial já transformado para resolver
o problema atinge não subjetivo então nós podemos colocar como entrada processamento e saída basicamente uma é apenas tanto de loja controle mais formação se baseia em isso aí como atividade para você como desafio Tenta resolver o problema do fazendeiro Rio usando aquela representação que nós colocamos em forma de tabela vê se você consegue montar um passo a passo que transforme aquela tabela Inicial com todos os personagens uma margem na outra tabela que todos os personagens mudaram de Margem Mas é claro que você não pode esquecer de obedecer as restrições não deixa o novo com a
cabra comboge e não deixe o bode com repolho viu que são as linguagens de programação as linguagens de programação são conjuntos de símbolos e regras de syntax que permitem a construção de instruções que descrevem de forma não ambígua ações que podem ser entendidas e executadas por computadores essa uma definição bem clara e é claro que ela tem um pouco mais detalhes massa inicialmente a poderia imaginar que uma língua e são é uma forma de você ensinar para o computador o que você quer que ele faça é um idioma é um idioma que eu comprei eu
consegui entender infelizmente naturalmente ele não entende o português o inglês o alemão o japonês mas ele entende aquilo que é escrito em uma linguagem de programação daí o nome dela então nossa disciplina nós usaremos uma das linguagens de programação mais populares Python dentre os requisitos que nós gostaríamos na disciplina inicial de programação o pai tão cumprir com quase todos têm uma sintaxe simples ela é extremamente versátil diversos tipos de programas diferentes podem ser feitos com python ele é bastante Popular portátil funciona em Mac Windows Linux ah e tem um código aberto ele é open-source mas
tem mais um detalhe os ambientes gratuitos para programação em Python é muito interessante que pode baixar vários ambientes da internet sem precisar pagar um centavo agora nós vamos fazer um exercício final que é o computador simplificado qualquer ideia do controle simplificado nós vamos ter aqui uma esquematização repare que nessa esquematização nós não estamos preocupados com um computador mas por meio dela nos entenderemos O que seriam algoritmo na prática escrito em português e não uma linguagem de programação pelo menos não por enquanto e o que acontece com os personagens envolvidos a cada instrução do algoritmo que
é executada não é parente aqui na esquerda nós temos uma folha de papel que seria o nosso algoritmo onde a primeira coluna é o número da instrução EA segunda coluna é a descrição da instrução a descrição seria o que que a instrução a executar ou seja se eu escutasse a solução o que vai acontecer aqui a direita nós temos 55 personagens os cinco itens que compõem o nosso CS o nosso computador simplificado nós temos a lousa que seria uma memória temporária eu consigo escrever dados em um pedacinho da lousa é para em que essa luz
em específico tem seis espacinhos ou se eu poderia preencher com 6 valores nós temos aqui uma tela nós temos aqui um diário temos papéis descartáveis e temos a Megan a nossa personagem virtual que vai executar o algoritmo preparem que aqui nós vamos preencher com as instruções do algoritmo e reparem que isso é o único tem apenas seis expulsões estão todas escritas em português para dar só uma ideia de como funcionar em um algoritmo feito por uma pessoa e não por um computador mas que tem uma certa relação reparem que ao Executar a primeira instrução do
algoritmo nós temos um Leia um papel e guarde o valor em a o que significa isso que a Megan vai ler os papéis descartáveis e o valor que estiver nesse papel ela guardará no espacinho que nós denominamos de ar nessa Lusa e para que os nomes dos passinhos foram arbitrários abc.xyz poderiam ser outros é só uma forma fácil identificar que nós queremos algo naquele pedaço da nossa louça a Megan lerá o papel descartável ela verificou que o número do Papel era sete e agora ela vai escrever esse sete aqui no espacinho lá reparem que ela
escreveu e essa instrução ela foi executada na próxima instrução a Meg não vai ler um papel buscar a guardar o valor em si é para aquela ler o papel e guarde em ser na sequência a próxima instrução pede para Megan somar o conteúdo de ar com o descer com nós somos o conteúdo seria realmente o valor que está naquele pedacinho na lousa que tem o ar e que tem você no caso seria 7 + 3 que resulta em 10 e esse valor vai ser guardado em outro espacinho da Lusa que o espacinho Z na próxima
instrução nós pedimos para Megan exibir o conteúdo dizer reparem que a lousa é uma área temporária onde a Mega escreve alguma coisa por quê que é temporária porque uma luz é facilmente limpa alguém pode simplesmente apaga a luz por isso que é uma área temporária e conseguiu os para exibir essa exibição é o que vai ser visto por outras pessoas além da mega Então essa exibição tem que ser feita na tela a Mega verifica Qual o valor do Z e exibe na tela o valor dessa a próxima instrução dispara mega e no Diário o conteúdo
dizer / 2 reparem que o diário é uma área permanente para que a Mega registro alguma coisa Permanente no sentido de persistente é mais difícil apagar o dado que a Mega não guardou quando ela faz isso no Diário dela então América calcula que 10 dividido por 2 é cinco ela registra isso no Diário e na próxima instrução e última é só estado que a Mega Leia o registro do diario e guarde o valor em x Então reparem que assim como na lousa o diário também é uma via de Mão Dupla amanhã consegue escrever coisas no
Diário e também consegue ler coisa do diário assim como na lousa esse valor que foi lido que é o 5 será Guardado na variável x que é o espacinho da luz por isso que varia e o algoritmo está finalizado então conforme nós vimos essa é uma representação de um computador vai apresentação simplificada em que cada um desses itens corresponde a um item real e um computador é para em que a lousa é uma memória principal que é conhecida por nós como memória RAM e uma memória de trabalho mas ela é temporária assim que o controle
desligado todos os dados se perdem assim como a lusa assim que a aula acaba a lousa é limpa a tela corresponde a saída no computador você poderia imaginar que a saída fosse uma tela realmente de um leitor ou qualquer outra forma de exibir O interno gel que está dentro do computador reparem que as folhas descartáveis só as entradas em que algum usuário por exemplo pode informar alguma coisa por um programa e esse valor é usado mas logo depois ele é descartado se não for guardado o diário seria a nossa memória auxiliar a memória auxiliar você
pode imaginar como se fosse uma HD um SSD no CD um pendrive ao que persistam os dados que ao desligar a energia do computador não se perca E é claro que a figura Central desse dessas climatização é a Megan que ela corresponde ao processador é para em que é o processador que lida com os demais itens dessa esquematização bem Vocês podem estar se perguntando ótimo eu vi um algoritmo pronto e eu executei esse algoritmo seguindo o passo a passo Mas por que que a gente viu o primeiro desse jeito porque exatamente o que o computador
faz o computador ele não tem nenhum tipo de a aplicação para aquilo que você quis que ele fizesse ele simplesmente obedece o que você mandou mas o nosso trabalho como programadores é conseguir desenvolver esses algoritmos preparem para que a gente conseguiu resolver o nosso próprio algoritmo nós temos que ter primeiro um enunciado de um problema porque o bagulho tem que resolver um problema então por exemplo nesse enunciado crie um algoritmo que colete três números um em cada papel e exiba a multiplicação deles na tela esse é o problema agora você com programador Tem que montar
o algoritmo para resolver esse problema essa é uma possível solução reparem que nós Montamos o algoritmo e você pode conferir passo a passo que de fato e resolve o problema fica com uma atividade você tentar simular isso desenhando aqui no computador simplificado cada uma dessas instruções Então nesse vídeo o que nós vimos foram conceitos básicos que nós vamos usar para conseguir construir os Nossos programas entre eles eu sinto novamente os algoritmos o que a lógica de programação Bom dia por exemplo um algoritmo em termos de algo no mundo real que não esteja ligado ao computador
mas está de bolo um tutorial um manual e nós finalizamos fazendo um exercício usando o computador simplificado que nada mais é que uma esquematização para quem conseguir entender os principais componentes que nós vamos lidar na disciplina sem que é claro tem aquele da diretamente com o computador Qualquer ajuda que vocês precisarem vocês podem contar comigo até a próxima tchau E aí