<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Emanuel Betcel</title>
    <description>The latest articles on DEV Community by Emanuel Betcel (@ebetcel).</description>
    <link>https://dev.to/ebetcel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F748641%2F32e70c2f-da97-4cd1-8b13-82bc3ded8323.jpeg</url>
      <title>DEV Community: Emanuel Betcel</title>
      <link>https://dev.to/ebetcel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ebetcel"/>
    <language>en</language>
    <item>
      <title>Aplicando boas práticas de programação em Data Science</title>
      <dc:creator>Emanuel Betcel</dc:creator>
      <pubDate>Thu, 19 May 2022 13:01:13 +0000</pubDate>
      <link>https://dev.to/ebetcel/aplicando-boas-praticas-de-programacao-em-data-science-1f18</link>
      <guid>https://dev.to/ebetcel/aplicando-boas-praticas-de-programacao-em-data-science-1f18</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Este post é referente a uma atividade da disciplina de MLOPS ministrada pelo professor Ivanovitch Silva na Universidade Federal do Rio Grande do Norte. O objetivo desde projeto consiste em continuar a apresentação sobre outras habilidades relacionadas com o código limpo, nomeadamente: captura e manipulação de erros, testes, registros (logging). O código do que foi feito está disponível no &lt;a href="https://github.com/eBetcel/analise-dolar-presidentes"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Análise valor Dólar Real por Presidentes
&lt;/h2&gt;

&lt;p&gt;Nesse projeto desenvolvemos uma visualização baseada no curso &lt;a href="//www.dataquest.io"&gt;Storytelling Data Visualization on Exchange Rates&lt;/a&gt;. Nela selecionamos o valor Dólar-Real de 1996 até maio de 2022, apontando as crises que ocorreram ao longo do tempo e também os presidentes no período.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dados
&lt;/h2&gt;

&lt;p&gt;Os dados do Dólar foram coletados no Portal Brasileiro de Dados Abertos e as informações destacadas foram coletadas na Wikipedia.&lt;br&gt;
O data set com os dados possue informações do valor que o dólar foi fechado em cada dia, contudo para melhorar a visualização optamos por fazer a média mensal desses valores e suavizamos o gráfico utlizando o método &lt;code&gt;rolling(3)&lt;/code&gt;. Após isso selecionamos os períodos dos presidentes que foram:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fernando Henrique Cardoso de 01/1995 até 01/2003;&lt;/li&gt;
&lt;li&gt;Lula                      de 01/2003 até 01/2011;&lt;/li&gt;
&lt;li&gt;Dilma Rousseff            de 01/2011 até 08/2016;&lt;/li&gt;
&lt;li&gt;Michel Temer              de 08/2016 até 01/2019;&lt;/li&gt;
&lt;li&gt;Jair Bolsonaro            de 01/2019 até 05/2022.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Visualização
&lt;/h2&gt;

&lt;p&gt;A visualização consiste em gráficos de linhas que representam o valor do dólar temporalmente, eles são divididos em cores cada cor se refere ao presidente daquele período, alguns presidentes possuem pouco tempo de mandato o que acabou dificultando a organização da figura. Além dissos a figura dispõe de algumas linhas verticais e cada cor representa o início de uma crise no Brasil de acordo com &lt;a href="https://pt.wikipedia.org/wiki/Lista_de_crises_econ%C3%B4micas_no_Brasil"&gt;Lista de crises econômicas no Brasil&lt;/a&gt;. Abaixo você pode ver o resultado que obtivemos:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UhgizucQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q6c8irdafikuw24cdup7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UhgizucQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q6c8irdafikuw24cdup7.jpg" alt="Image description" width="880" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Script .py e guia de estilo PEP8
&lt;/h2&gt;

&lt;p&gt;Após finalizar o Jupyter Notebook que gerava o gráfico, convertemos o arquivo .ipynb em um script .py e utilizamos o autopep8 para adequação às diretrizes de estilo do PEP8 em conjunto com o Pylint, analisador de código.&lt;/p&gt;

&lt;p&gt;A instalação do autopep8 pode ser feita através do pip, preferencialmente em um ambiente virtual:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ pip install --upgrade autopep8&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Para modificar um arquivo o comando é:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ autopep8 --in-place --aggressive --aggressive &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;De forma similar, instalamos e executamos o pylint:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ pip install pylint --upgrade&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ pylint &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;E seguimos as recomendações do linter como documentação de módulos e funções, melhorando o estilo e nomes de variáveis até obter a nota 10 no código.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modularização, captura e manipulação de erros, testes e logging
&lt;/h2&gt;

&lt;p&gt;Nesta parte do projeto tivemos como objetivo inserir boas práticas de engenharia de software. Começamos modularizando quebrando algumas partes do código em funções, inserimos captura de erros com blocos de try/except e utilizamos o logging para fazer registros. Fizemos uma pequena função de teste para simular um caso de teste apenas para demonstração, todavia o ideal para casos reais era a criação de arquivos de testes no pytest.&lt;/p&gt;

&lt;p&gt;Exemplo de código:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4hrN2bKM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ao9g3nu5k6j9wb0yaqoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4hrN2bKM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ao9g3nu5k6j9wb0yaqoa.png" alt="Image description" width="838" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy
&lt;/h2&gt;

&lt;p&gt;Por fim, foi utilizado o Streamlit para construir o data app que gera o gráfico. Esta biblioteca tem como objetivo transformar scripts em web apps sem requisitar experiência de frontend.&lt;/p&gt;

&lt;p&gt;Instalamos e executamos com&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ pip install streamlit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ streamlit run app.py&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Assim, concluímos o projeto transformando um jupyter notebook, que podemos considerar como um protótipo, em um web app compartilhável que pode ser hospedado em qualquer plataforma como Heroku, AWS etc.&lt;/p&gt;

</description>
      <category>mlops</category>
      <category>cleancode</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Usando linhas de comando para navegar por diretórios e manipular arquivos</title>
      <dc:creator>Emanuel Betcel</dc:creator>
      <pubDate>Mon, 25 Apr 2022 03:57:19 +0000</pubDate>
      <link>https://dev.to/ebetcel/usando-linhas-de-comando-para-navegar-por-diretorios-e-manipular-arquivos-44ih</link>
      <guid>https://dev.to/ebetcel/usando-linhas-de-comando-para-navegar-por-diretorios-e-manipular-arquivos-44ih</guid>
      <description>&lt;p&gt;Um dos primeiros desafios apresentados ao começar a utilizar o terminal do Linux é como realizar coisas básicas que já estamos completamente acostumados a fazer pela interface gráfica. Criar um arquivo de texto, navegar para uma pasta específica, mover ou copiar um arquivo são exemplos clássicos de iniciantes da poderosa ferramenta de linha de comando.&lt;/p&gt;

&lt;p&gt;Este curto artigo tem como objetivo mostrar os primeiros passos e ajudar no entendimento de alguns comandos básicos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Se encontrando
&lt;/h2&gt;

&lt;p&gt;Definitivamente o primeiro comando que devemos utilizar é o &lt;code&gt;ls&lt;/code&gt;, com ele podemos listar todos os arquivos e pastas de onde estamos (sim, o terminal vai rastrear a nossa navegação de forma parecida à interface gráfica e o comando &lt;code&gt;pwd&lt;/code&gt; permite visualizar o caminho completo da posição atual na árvore de diretórios). &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--929KEtZw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywhcw06dxdttu3sm7uy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--929KEtZw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywhcw06dxdttu3sm7uy7.png" alt="Image description" width="880" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao utilizar o &lt;code&gt;ls&lt;/code&gt; é possível ver pastas da home, como o Desktop, Documents, Downloads etc. Para listar todos os arquivos em qualquer uma dessas pastas, basta passar o nome da pasta como um &lt;strong&gt;argumento&lt;/strong&gt;, como, por exemplo &lt;code&gt;ls Downloads&lt;/code&gt;, e assim listar todos os arquivos dessa pasta. Além de argumentos, esses comandos também podem conter &lt;em&gt;flags&lt;/em&gt;, que são basicamente opções e são precedidas de hífens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Navegando
&lt;/h2&gt;

&lt;p&gt;Para acessar uma pasta basta utilizar o comando &lt;code&gt;cd&lt;/code&gt; seguido do nome da pasta que queremos acessar. Para isso, feche e abra um novo terminal, e tente acessar o desktop com &lt;code&gt;cd Desktop&lt;/code&gt;. Caso você queira voltar, o equivalente a apertar no botão da seta pra esquerda no topo de uma janela, basta executar &lt;code&gt;cd ..&lt;/code&gt; e irá retornar uma pasta no seu caminho.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando pastas e arquivos
&lt;/h2&gt;

&lt;p&gt;O comando para criar uma pasta é &lt;code&gt;mkdir&lt;/code&gt; seguido do nome que desejamos dar (Atenção aos caracteres especiais e a utilizar uma contrabarra ao adicionar um espaço). Podemos ver no exemplo abaixo como criar e acessar uma página.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W-IymM5y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ugy2jjfrqesj24j5uduo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W-IymM5y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ugy2jjfrqesj24j5uduo.png" alt="Image description" width="667" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;De forma semelhante, podemos encurtar com o comando &lt;code&gt;mkcd&lt;/code&gt;, que é basicamente um atalho que faz as duas coisas.&lt;/p&gt;

&lt;p&gt;Agora, para criar um arquivo vazio basta utilizar o comando &lt;code&gt;touch&lt;/code&gt;, para criar um arquivo python, por exemplo, basta utilizar &lt;code&gt;touch script.py&lt;/code&gt;.&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ygAA7hHc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ox1xqcg5m33b5xxj4gip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ygAA7hHc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ox1xqcg5m33b5xxj4gip.png" alt="Image description" width="675" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deletando
&lt;/h2&gt;

&lt;p&gt;Para remover o arquivo que acabamos de criar basta utilizar o comando &lt;code&gt;rm&lt;/code&gt; seguido do nome do arquivo. Então, basta estar na pasta que o arquivo está e executar &lt;code&gt;rm script.py&lt;/code&gt;. Podemos listar os arquivos e ver se ele ainda se encontra lá.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r68zjgkt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rrv0ovyh5zj0nca1mwc5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r68zjgkt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rrv0ovyh5zj0nca1mwc5.png" alt="Image description" width="645" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, para remover a pasta que acabamos de criar, vamos voltar para o diretório onde a criamos com o comando &lt;code&gt;cd ..&lt;/code&gt; e tentar remover utilizando &lt;code&gt;rm pagina&lt;/code&gt;. Logo podemos perceber que é impresso um erro na tela indicando que não podemos remover por ser um diretório.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q_SGfsHQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kltno00xo7r666k09wtd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_SGfsHQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kltno00xo7r666k09wtd.png" alt="Image description" width="722" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Investigando como resolver esse problema, podemos consultar o manual de uso do &lt;code&gt;rm&lt;/code&gt; com o comando &lt;code&gt;man rm&lt;/code&gt;. Lá se encontra o nome, como utilizar, a descrição do que o comando faz e as opções que temos ao executá-lo, o comando man é muito útil e podemos utilizar com basicamente qualquer outro comando. Nas opções, é possível ver que, ao utilizar a flag &lt;code&gt;-r&lt;/code&gt;, podemos deletar uma pasta e &lt;strong&gt;tudo o que estiver dentro dela&lt;/strong&gt; de forma recursiva.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dhzilENu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0mxv37lzivvneo1yj4xd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dhzilENu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0mxv37lzivvneo1yj4xd.png" alt="Image description" width="880" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão e próximos passos
&lt;/h2&gt;

&lt;p&gt;A jornada para aprender a utilizar o terminal com proficiência é realativamente longa, mas é possível ir incrementando aos poucos o portfólio do que conseguimos fazer com ele. À medida que nos familiarizamos com o terminal, preferimos utilizar comandos que se adequem perfeitamente às nossas necessidades para resolver problemas e pode ser muito útil para desenvolvedores de software.&lt;/p&gt;

&lt;p&gt;Muita coisa não foi abordada aqui mas que merece uma exploração futura, como: Mover e modificar arquivos, o conceito e gerenciamento de permissões, como executar programas pelo terminal, transmissão de input e output, como utilizar &lt;em&gt;regex&lt;/em&gt; para ampliar as capacidades. A lista é bem grande. Dessa forma, finalizo o artigo com uma lista de alguns outros comandos mais básicos para os primeiros passos nessa jornada.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DTrkFVY9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m88pvfn6lkyyw4evkia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DTrkFVY9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m88pvfn6lkyyw4evkia.png" alt="Image description" width="850" height="632"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.researchgate.net/profile/Li-Guo-4/publication/327422883/figure/tbl1/AS:669839723081731@1536713643856/List-of-basic-Linux-commands.png"&gt;https://www.researchgate.net/profile/Li-Guo-4/publication/327422883/figure/tbl1/AS:669839723081731@1536713643856/List-of-basic-Linux-commands.png&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cli</category>
      <category>unix</category>
      <category>linux</category>
      <category>mlops</category>
    </item>
    <item>
      <title>Análise de Desempenho e Aprendizado em ITP (Introdução às técnicas de programação).</title>
      <dc:creator>Emanuel Betcel</dc:creator>
      <pubDate>Tue, 09 Nov 2021 11:51:36 +0000</pubDate>
      <link>https://dev.to/ebetcel/analise-de-desempenho-e-aprendizado-em-itp-introducao-as-tecnicas-de-programacao-11kd</link>
      <guid>https://dev.to/ebetcel/analise-de-desempenho-e-aprendizado-em-itp-introducao-as-tecnicas-de-programacao-11kd</guid>
      <description>&lt;h6&gt;
  
  
  Escrito por Catarina de Oliveira, Emanuel Betcel, Giovanna Karla, Pedro Victor e Tiago Oliveira.
&lt;/h6&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;O Bacharelado em Tecnologia da Informação da UFRN, que possui cerca de 2 mil alunos matriculados, é um curso de computação com uma grade curricular bastante flexível, permitindo ao aluno trilhar vários caminhos em áreas de BioInformática, Engenharia de Software, Ciência da Computação e outras. Todavia, as matérias obrigatórias iniciais acabam sendo um grande empecilho e acabam por represar muitos alunos, causando muita evasão e prejudicando a formação de profissionais tão requisitados para o momento.&lt;br&gt;
O currículo básico de programação para o curso é dado pelas matérias de Pensamento Computacional, Introdução às Técnicas de Programação, Linguagem de Programação I e Linguagem de Programação II, nessa ordem. A disciplina de ITP tem a peculiaridade de ser a primeira em que os alunos programam um projeto, utiliza a linguagem C e aborda conteúdos mais complexos de programação, como recursão, structs e gerenciamento de memória.&lt;/p&gt;

&lt;h2&gt;
  
  
  ITP antes vs ITP hoje
&lt;/h2&gt;

&lt;p&gt;Devido à pandemia, a forma como a matéria de ITP é rodada foi bastante modificada,  fazendo uso de sala de aula invertida e avaliação continuada, com exercícios frequentes realizados na plataforma LOP de desafios de programação.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MQSMN-Ng--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4f71sp1hlfv130u1ktt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MQSMN-Ng--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4f71sp1hlfv130u1ktt.jpg" alt="Image description" width="880" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tipos e base de dados disponíveis
&lt;/h2&gt;

&lt;p&gt;A fonte de dados apresentada pelo professor Eduardo Aranha na discussão do tema é em formato de planilha retirada do SIGAA. Contendo dados qualitativos, quantitativos, categóricos e discretos. Onde teremos acesso a dados do desempenho do rendimento de notas semestrais de um ou mais alunos, para podermos analisar e poder encontrar problemáticas e seus padrões.&lt;/p&gt;

&lt;p&gt;As bases vêm dos &lt;a href="https://dados.ufrn.br/"&gt;dados abertos da UFRN&lt;/a&gt;  e também foram extraídos da plataforma de resolução de exercícios. A identificação dos alunos é hasheada para proteção individual dos dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que se busca alcançar no projeto
&lt;/h2&gt;

&lt;p&gt;Acreditamos que a partir desse estudo e levando em consideração todos os resultados que iremos obter, vamos poder ajudar os docentes a entenderem melhores formas de abordar a forma que a disciplina de Introdução às Técnicas de Programação é ministrada.  Uma vez tendo em mãos os resultados, poderíamos de alguma forma responder alguns questionamentos, como por exemplo, se no formato remoto os alunos conseguem ter um desempenho melhor em relação às outras turmas que passaram ou passarão por ITP de forma presencial. Outro ponto que desejamos alcançar é saber se, no formato remoto, as turmas terminam a disciplina de forma mais homogênea, ou seja, de forma mais igual, levando em consideração que o desempenho médio no trabalho final nas turmas remotas é melhor. Esse é um questionamento importante, pois levando em consideração que existe uma variação de semestres  como por exemplo um ser mais fácil que o outro, poderia impactar nos resultados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sugestões feitas pelo professor Julio, idealizador do estudo:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WoIemR8Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f59zbxgbrm8ugx8vkzky.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WoIemR8Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f59zbxgbrm8ugx8vkzky.jpg" alt="Image description" width="880" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gDr_VwFD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9y01f8x9saonoi2ipmw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gDr_VwFD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9y01f8x9saonoi2ipmw.jpg" alt="Image description" width="880" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Possíveis técnicas que podem ser aplicadas e entregáveis
&lt;/h2&gt;

&lt;p&gt;A partir das bases fornecidas pelo professor é recomendado que se inicie com o tratamento dos dados, extraindo, padronizando e carregando essas planilhas em um banco ou um DataFrame as a DataBase. Em seguida, recomenda-se que seja feita uma análise exploratória dos dados, permitindo uma visão mais geral e descritiva. Também seria interessante utilizar modelos de regressão linear para tentar prever as notas dos alunos. No âmbito da visualização de dados, seria interessante criar dashboards interativos de maneira a facilitar a comunicação do que foi discutido e trabalho neste projeto.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>learninganalytics</category>
    </item>
  </channel>
</rss>
