Olá! Meu nome é Lucas. Estou aqui para dar as boas-vindas a este curso.
Audiodescrição: Lucas é uma pessoa branca, com barba e cabelo preto, usa óculos e está nos estúdios da Alura. Há uma luz lilás ao fundo e uma estante com alguns itens decorativos.
Falando um pouco sobre mim, sou instrutor na Alura, tenho formação em engenharia, fiz mestrado também em engenharia e estou cursando doutorado na mesma área.
Neste curso, o que vamos aprender? Vamos começar explorando o mundo da computação, entendendo como os softwares são constituídos por diferentes partes e como nós, ao trabalhar nesse campo, atuamos em equipes multidisciplinares. Vamos entender que tipo de abordagem podemos utilizar para resolver as demandas que surgem no dia a dia como pessoas desenvolvedoras, utilizando uma abordagem conhecida como pensamento computacional. Essa abordagem não é apenas utilizada no mundo da computação, mas também em outros setores variados da nossa economia.
Utilizando essa abordagem, começamos com a decomposição de um problema em partes menores, o reconhecimento de padrões, a aplicação de abstração para focarmos apenas no que é essencial, até chegarmos ao desenvolvimento dos algoritmos. Esses algoritmos são sequências de passos ou instruções que nos permitem resolver um problema ou uma tarefa de maneira sequencial, com começo, meio e fim.
Os algoritmos são a base para que nós consigamos desenvolver programas. Esses programas são, essencialmente, instruções escritas de forma que os computadores sejam capazes de interpretar, entender e executar tarefas. Neste curso, vamos explorar alguns aspectos, como a estruturação desses algoritmos de maneira lógica, clara e ordenada, para que possamos criar programas que os computadores compreendam da mesma forma, utilizando lógica de programação.
Além disso, apresentaremos algumas linguagens de programação amplamente utilizadas no back-end e entenderemos como começar a criar programas, interagir com o computador e compreender como ele traduz internamente um programa escrito em uma linguagem de alto nível para uma linguagem de código de máquina, que é compreensível apenas pelos circuitos eletrônicos do próprio computador.
Por fim, discutiremos sobre a inteligência artificial e como ela se insere no contexto do dia a dia de pessoas desenvolvedoras. Vamos compartilhar algumas boas práticas para que possamos utilizar recursos de inteligência artificial generativa no cotidiano sem prejudicar o processo de aprendizado.
Exploraremos tudo isso de maneira contextualizada, utilizando linguagem natural e linguagem gráfica, para entender como podemos usar elementos de lógica no desenvolvimento de algoritmos e, futuramente, na construção de programas de computador. Além dos vídeos, também teremos atividades e o apoio do fórum.
Vamos iniciar essa nova jornada de aprendizado no mundo da tecnologia?
A computação está cada vez mais presente em nosso dia a dia. Atualmente, temos uma grande diversidade de computadores. Se pararmos para pensar, dentro de nossas próprias casas, possuímos muitos dispositivos que contêm algum sistema ou subsistema computacional. Por exemplo, temos smartphones, aparelhos de videogame, notebooks e desktops, que são mais comumente conhecidos como sinônimos de computadores. Todos esses dispositivos, como um home assistant (assistente doméstico) que toca música sob comando, são dispositivos computacionais. Eles são computadores que trabalham com aplicações.
Com isso, o que temos? Temos o uso intensivo da computação em nosso cotidiano, seja para lazer, durante atividades físicas, ou mesmo em atividades escolares, como ouvir música no celular. Se refletirmos, em muitos ambientes, há mais computadores do que pessoas presentes. Chamamos isso de computação pervasiva, uma computação presente e imersa nos mais diversos ambientes com os quais lidamos diariamente.
Pensando na computação de maneira mais geral e ampla, o que caracteriza um dispositivo computacional? O que caracteriza, por exemplo, um smartphone, um aparelho de videogame, um robô inteligente usado para limpeza doméstica, um home assistant, um desktop ou um notebook? O que eles têm em comum e por que podemos chamá-los de dispositivos computacionais?
Computar pode ser interpretado como um sinônimo de calcular, ou seja, computar significa processar alguma informação. Quando somamos números e obtemos um resultado, essa é a principal ideia da computação. Temos dados de entrada, como no caso do home assistant, onde pedimos para ouvir uma música específica. Ele processa esse dado, utiliza informações pré-armazenadas para gerar uma saída, ou seja, tocar a música solicitada. Computar significa isso: processar dados.
Todos esses dispositivos com os quais lidamos diariamente atuam no processamento de dados. Eles recebem dados de entrada, também chamados de input, e realizam um conjunto de operações lógico-aritméticas. Outra forma de pensar em um computador é defini-lo como um dispositivo capaz de realizar operações lógico-aritméticas sobre dados, o que constitui o processamento dos dados.
De forma simplificada, se olharmos a constituição interna de um computador, ele é formado por um conjunto muito grande de circuitos integrados que realizam apenas operações lógico-aritméticas. Essas operações são responsáveis pelo processamento dos dados.
O que são operações lógicas e o que são operações aritméticas? Vamos começar pelas operações lógicas para termos um entendimento amplo do que acontece dentro de um dispositivo computacional. Pensemos em um caso simples, como o controle do ar-condicionado de uma sala. Se estabelecermos que a temperatura do ambiente não deve ser superior a 25 graus, qual lógica podemos aplicar? Se a temperatura for maior que 25 graus, o ar-condicionado deve estar ligado. Caso contrário, se a temperatura for menor ou igual a 25 graus Celsius, o ar-condicionado pode ser mantido desligado. Isso é um exemplo de uma operação lógica, onde estabelecemos uma condição e a avaliamos constantemente com base nos dados obtidos de um sensor de temperatura. Esse sensor coleta amostras periodicamente e fornece esses dados para um dispositivo computacional que os compara com o valor de referência, que definimos como 25 graus Celsius. A partir daí, tomamos a decisão de ligar ou manter desligado o ar-condicionado. Esse é um exemplo de uma operação lógica realizada dentro de um dispositivo computacional.
Agora, vamos abordar uma operação aritmética. As operações aritméticas são as que mais utilizamos no dia a dia. Por exemplo, ao somar dois valores. Imagine que vamos a uma loja e queremos saber quanto vamos gastar em uma compra. Observamos os itens adicionados à cesta e somamos seus valores, como A e B. Se comprarmos um item por 2 unidades de valor e outro por 3 unidades de valor, A mais B será igual a 5. Isso é um exemplo de uma operação aritmética, também realizada no processamento dos dados.
Agora que sabemos que os computadores processam dados por meio de operações lógicas e aritméticas, surge uma questão: como conseguimos desenvolver uma diversidade de aplicações, tanto web, que acessamos em desktops e notebooks, quanto mobile, em smartphones? Como lidamos com um volume crescente de dados, exigindo que os computadores sejam robustos para processá-los? Além disso, há uma demanda crescente por soluções tecnológicas e por profissionais capazes de construir aplicações, lidar com grandes volumes de dados e aprender com eles para fornecer uma experiência cada vez melhor para as pessoas usuárias.
Nosso primeiro passo foi entender o que são dispositivos computacionais, como estão cada vez mais presentes em nosso dia a dia e o que ocorre de forma abstrata dentro deles, que é o conjunto de operações lógico-aritméticas. Ao longo do curso, vamos desenvolver essa ideia, entendendo como conseguimos passar instruções para um computador para que ele as execute, permitindo-nos compreender melhor o que ocorre internamente. Vamos dar sequência à nossa jornada.
Quantos aplicativos já utilizamos hoje, seja no celular ou no computador pessoal? Ao analisarmos essa questão, constatamos que a computação está presente em tudo, o tempo todo, em nosso cotidiano. Seja ao sair de casa, procurando o melhor meio de locomoção, ou utilizando um editor de texto ou uma planilha eletrônica no trabalho. As soluções computacionais com as quais interagimos, ou seja, esses aplicativos, são criadas para atender nossas demandas diárias e são desenvolvidas por pessoas.
Quem constrói uma solução computacional? Primeiramente, é importante entender que uma solução computacional sempre envolve hardware e software. Pode-se questionar que comumente se fala mais de pessoas desenvolvedoras relacionadas a software do que a hardware. Isso ocorre porque o mundo do hardware é muito específico, uma indústria dedicada que demanda profissionais altamente qualificados, capacitados em engenharia eletrônica e de hardware. As manufaturas que fabricam nossos computadores estão concentradas em alguns países. Por isso, não nos envolvemos tanto no processo de construção dos dispositivos computacionais, que aparecem mais como itens de prateleira. Analisamos o que está disponível e, de acordo com nossa demanda, seja para ter um assistente inteligente em casa ou um smartphone, selecionamos com base no custo-benefício. Consideramos também os softwares que utilizaremos e quanto eles demandarão de hardware. Se desejamos rodar um software complexo, como um jogo, não escolhemos um computador comum, mas sim um com melhor capacidade de processamento e uma placa de vídeo dedicada, para uma melhor experiência como usuário.
É importante atentar para as especificações do software que pretendemos utilizar e as especificações do hardware que estamos adquirindo. O hardware compreende todos os componentes físicos do computador, como placas, circuitos eletrônicos, teclado, mouse e tela. A tela é um dispositivo de saída, enquanto o teclado e o mouse são dispositivos de entrada.
As aplicações com as quais interagimos diariamente, e muitas vezes somos chamados a trabalhar em sua construção devido à grande demanda, são os softwares, ou aplicativos. Um software é desenvolvido por pessoas desenvolvedoras, que atuam com diferentes especialidades em equipes multidisciplinares para construir a solução. A indústria do software é um setor específico, geralmente denominado economia criativa, pois parte da identificação de uma demanda ou problema comum. Por exemplo, as pessoas querem saber como está o tráfego na cidade antes de sair de casa para escolher a melhor rota e não se atrasar. Para isso, é necessário construir uma solução computacional, como um aplicativo móvel ou web, que permita acessar informações sobre o tráfego e escolher a melhor rota.
Quando parte dessa demanda, equipes colaboram em fluxos organizados para transformar ideias em soluções. Nesse processo, realizam-se testes, há muita colaboração, e pessoas com diferentes especialidades utilizam uma variedade de abordagens, ferramentas e técnicas para organizar o fluxo de trabalho do projeto. Não é simples ter uma ideia, cada um trabalhar um pouco, juntar as partes e disponibilizar para o usuário. Precisamos testar, validar e assegurar aspectos importantes como desempenho, confiabilidade e segurança da aplicação, garantindo a sustentabilidade do negócio por trás dela. O setor da economia é aberto e permite a criação de startups, transformando demandas não resolvidas em modelos de negócio, possibilitando uma força de mercado com o produto.
Assim como os múltiplos sistemas com os quais interagimos no mundo físico, como aviões, veículos ou eletrodomésticos, esses sistemas são formados pela integração de múltiplos componentes.
No contexto de um carro, temos toda a parte de conforto interno, como a climatização, o volante, os pedais e o sistema de som. Ao mesmo tempo, existe a parte mecânica que atua fortemente em um dos principais objetivos do carro: garantir a locomoção de um grupo de pessoas de um ponto a outro com segurança, confiabilidade e conforto. Cada componente ou subsistema do carro tem uma função específica. O ar-condicionado garante o conforto térmico, os bancos proporcionam conforto físico para as pessoas dentro do carro, e o porta-malas assegura que os pertences possam ser transportados de um ponto a outro. O motor, por exemplo, fornece a energia e a propulsão necessárias para que o carro se desloque, atuando na transformação energética, uma vez que a energia provém do combustível, exceto nos carros elétricos, onde a energia é armazenada em baterias.
Da mesma forma, um avião tem a função principal de deslocamento em grandes distâncias, com segurança e confiabilidade como objetivos comuns, além de subsistemas de maior complexidade. A máquina de lavar também possui diferentes componentes internos que, apesar de distintos, atuam para um objetivo comum. Eles devem funcionar de maneira integrada para que o sistema opere bem e entregue o objetivo comum, que no caso do automóvel, é a locomoção segura e confortável de um ponto A ao ponto B, inclusive em estradas desafiadoras e regiões íngremes.
De maneira semelhante, um software não é uma peça única. Ele é formado por diferentes componentes, por isso precisamos de equipes multidisciplinares, com pessoas de diferentes especializações e experiências. Em geral, designamos como componentes básicos de um software o back-end, o front-end e o banco de dados.
O back-end concentra as operações lógico-aritméticas da aplicação. Toda a parte de processamento de dados ocorre no back-end, onde construímos e passamos instruções para o computador realizar as operações pertinentes à aplicação. Basicamente, transformamos o que chamamos de regras de negócio, ou seja, como a aplicação funcionará no dia a dia. Por exemplo, em um editor de texto, se a pessoa usuária digitar uma sequência de letras, isso deve ser registrado no documento de texto aberto, na página e posição do cursor. Isso é uma regra de negócio implementada no back-end.
O front-end é onde as pessoas usuárias interagem com a aplicação. É a face mais visível do software. No caso do Google Maps, por exemplo, é o mapa com o qual interagimos, os botões e campos onde inserimos informações de origem e destino. O banco de dados é o componente onde armazenamos todos os dados gerados a partir da interação com a pessoa usuária, sejam dados iniciais de cadastro ou dados de uso diário, que permitem à aplicação oferecer uma experiência melhorada conforme as necessidades identificadas.
Com isso, inferimos que os softwares são construídos de modo colaborativo, diferente de uma linha de produção de itens físicos. Existe uma esteira colaborativa, onde as pessoas interagem e trabalham de maneira integrada em equipes multidisciplinares. Algumas pessoas se dedicam à operação diária da aplicação, entendendo os feedbacks dos usuários e monitorando o funcionamento do software, enquanto outras implementam novas funcionalidades, pois o mercado de software é dinâmico. Uma vez que uma aplicação é liberada, trabalhamos constantemente em melhorias e atualizações para mantê-la confiável, segura e com novas funcionalidades que atendam às demandas das pessoas usuárias.
Portanto, os softwares são soluções para demandas das pessoas, construídos para elas. Um exemplo de demanda é pedir comida sem ligar para um restaurante. Antes, era necessário procurar um catálogo telefônico, ligar para o restaurante, fazer o pedido e esperar sem muito feedback. Agora, com a demanda, temos uma solução em forma de sistema web ou mobile, que permite realizar pedidos online, verificar o status do pedido e preparar a mesa ou a bebida para acompanhar a refeição. Assim, a partir de uma demanda, surge uma ideia e se constrói uma solução. Esse é o mundo do software.
O curso Pensamento computacional: fundamentos da computação e lógica de programação possui 211 minutos de vídeos, em um total de 55 atividades. Gostou? Conheça nossos outros cursos de Computação em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.