1. Introdução

   Serão listadas na obra as premissas do desenvolvimento e da adaptação de uma ferramenta digital muito conhecida na atualidade - o Chatbot – para uma forma de transmissão de conteúdo didático, mais especificadamente, da linguagem de programação Python. Assim, com base na apuração destas informações, serão estruturadas funcionalidades inovadoras para a solução das adversidades levantadas.

   Este documento estará repleto de dados que sustentarão o propósito, o contexto e a visão geral do produto em questão para assim, garantir o total entendimento do projeto.

1.1 Propósito

   O objetivo deste artigo será definir o problema, os perfis das partes interessadas e do usuário, o campo de negócio no qual a iniciativa será inserida, além de requisitos, recursos e especificações do sistema em pauta.

1.2 Escopo

   De maneira sucinta, a problemática que tentaremos solucionar com este trabalho estará diretamente conectada à área pedagógica. A tecnologia desenvolvida facilitará o processo de aprendizagem de iniciantes principalmente e terá como destino não só o corpo discente como também os profissionais e as instituições de ensino responsáveis por lecionar disciplinas de introdução à linguagens de programação. Tais pontos serão devidamente explorados neste documento de visão.

   Em seguida, as informações técnicas do programa também serão bem delineadas e atualizadas caso seja necessário durante o processo de criação do sistema.

1.3 Definições, acrônimos e abreviações

   Estarão listadas neste tópico definições, acrônimos e abreviações para garantir uma maior proximidade para com o leitor e o público interessado no projeto.

Chatbot: programa de software que estabelece uma interação automática com o usuário, sem a necessidade de um indivíduo presente na ferramenta.

Online Judge são corretores automatizados para correção de problemas e desafios de programação, é esperado que seja enviado um arquivo ou trecho de código para o corretor, e ele retorne uma correção simples dizendo se o código passou pelo seu crivo de aceitação ou falhou de alguma forma e de qual forma.

API: Application Programming Interface. Em português significa Interface de Programação de Aplicações. São formas de integrar sistemas.

1.4 Referências

1.5 Visão Geral

   Desta forma, a ideia principal deste documento de visão é fornecer de maneira objetiva e organizada os assuntos que tangem à problemática inicial.

   As informações serão organizadas em tópicos referentes aos seguintes temas, como modelos de exemplo: o contexto da tecnologia no meio pedagógico, o detalhamento dos perfis interessados, as funcionalidades principais da ferramenta a ser produzida bem como característica técnicas do produto.

2. Posicionamento

2.1 Oportunidade de Negócios

   O programa concebido pela equipe de desenvolvimento desempenha a função de superar os obstáculos encontrados no processo de aprendizagem comumente defasado e engessado no presente momento. Com o intuito de introduzir uma metodologia de ensino alternativa e dinâmica, em um formato inovador, o projeto foi criado justamente com um direcionamento ao professor, às instituições de educação e ao principal beneficente: o aluno. Plataformas digitais educacionais também são alvos quando se trata do campo empreendedor.

2.2 Instrução do Problema

   Como foi dito anteriormente, devido ao ultrapassado modelo de aprendizado frequentemente encontrado em diversas instituições juntamente à grande dificuldade do público acadêmico em absorver conteúdos de programação, a ideia de um auxílio educacional tomou forma e foi desenvolvida pela equipe. Assim, o projeto foi construído com a finalidade de sanar os transtornos da comunidade acadêmica em geral, que sofre com a falta de dinamismo e fluidez em sala de aula.

   Ao tratar estes impasses dentro de classe, com o uso de ferramentas tecnológicas, seria enfim possível uma melhor qualificação do lecionando e garantiria também um maior interesse da parte de outros profissionais de diferentes áreas, engrandecendo, dessa forma, projetos futuros.

Tipo Descrição
Problema Dificuldades encontradas no ensino atualmente.
Afeta Campo acadêmico geral, tanto alunos quanto professores e corporações de educação que não alcançam êxito em suas funções.
Impactos Formação de excelentes profissionais para o mercado de trabalho, estimular o interesse de especialistas de outras áreas na programação.
Solução O programa fornecerá diferentes funcionalidades para o usuário, como respostas automáticas para indagações do usuário, ajuda com sintaxe, pesquisa direta no StackOverflow, entre outros serviços.

2.3 Instrução de Posição do produto

   Como um dispositivo alternativo de aprendizado, a Aix Bot apresenta auxílio ao usuário ao demonstrar as funcionalidades de amparo em sintaxe da linguagem, explicação quanto a dúvidas na disciplina e pesquisas diretas no StackOverflow.

   Com essas utilidades, o aplicativo alcança uma posição inovadora na categoria de programas didáticos para entidades de aprendizado, sejam elas presenciais ou não.

3. Descrições da Parte Interessada e do Usuário

  Neste tópico serão descritos os perfis da parte interessada e do usuário. Ademais, serão abordados também serviços que apresentam-se como concorrência para o nosso produto.

3.1 Demográficos de Mercado

  Nos últimos anos, a quantidade de programadores cresceu substancialmente, principalmente devido ao grande sucesso da área no mercado de trabalho. Além disso, diversas disciplinas necessitam da interação de noções básicas do setor de software, de linguagens de programação, em especial.

  Uma das linguagens mais utilizadas atualmente é o Python. Desde a sua concepção, houve um grande crescimento em seu uso devido a variedade de aplicações da linguagem. Porém, aprender a programar para muitos discentes aparenta ser um imenso empecilho. Na Universidade de Brasília vários alunos se sentem desmotivados a programar e em diversos casos isso pode ser intensificado por dificuldades em aprender a linguagem em si.

  Desse modo, a Aix surge como uma ferramenta não só de aprendizado, mas também de motivação para os iniciantes em software. Assim, esperamos conseguir um êxito na formação de excelentes profissionais sem que seja necessário custos absurdos para que o serviço seja oferecido.

3.2 Resumo da parte interessada

  Instituições de ensino, professores interessados em alternativas para o processo de ensino, assim como empresas comerciais, se adaptam aos avanços tecnológicos existentes de modo a tornar seus dependentes mais aptos as necessidades cotidianas. Umas das possíveis adaptações atuais é o ensino dinâmico de uma linguagem de programação, como o Python, aos seus funcionários e estudantes.

3.3 Resumo do usuário

   O alvo beneficiário principal do nosso projeto são pessoas iniciantes no aprendizado da linguagem de programação Python, funcionários de empresas e estudantes que estão entrando na área de tecnologia, usuários da plataforma Jupyter que focam no desenvolvimento em Python e profissionais autônomos que desejam aumentar seus conhecimentos.

3.4 Ambiente do Usuário

   A esfera de ação do projeto se encontra atualmente no aplicativo social denominado Telegram. O objetivo da equipe é deixar o programa disponível tanto na rede supracitada, quanto no ambiente Jupyter, visando uma maior acessibilidade do usuário. Este, por sua vez, será capaz de acessar os serviços da Aix enquanto estuda na sua mesa de trabalho ou em qualquer lugar que estiver pelo seu celular. Tal característica garante o maior alcance da ferramenta e consequentemente um maior sucesso desta.

   Dessa forma, no momento atual, é necessário para o usuário apenas um dispositivo eletrônico apropriado para acessar o aplicativo Telegram.

3.5 Perfis das Partes Interessadas

Tabela 1. Representante, descrição, tipo e responsabilidades da parte interessada

Representante Descrição Tipo Responsabilidades
Entidades de ensino. Instituições físicas, empresas privadas, professores, plataformas digitais. Guias intelectuais para aprendizes da linguagem de programação Python. Garantir a conquista da formação de seus pupilos no conteúdo em questão e buscar alternativas que fogem ao estilo engessado de transmitir conhecimento. Inovar ao ensinar para alcançar o objetivo final.

Tabela 2. Critérios de sucesso, envolvimento e entregas da parte interessada

Critérios de Sucesso Envolvimento Entregas
Maior adesão ao serviço da parte interessada, graças aos bons resultados alcançados através de programas inovadores de ensino e grandes profissionais que podem ser formados por estas entidades que darão nome a essas instituições. Revisor de requisitos. Confere se é abordado no projeto todos os temas que a entidade busca propagar aos usuários, todo o conteúdo necessário para o pupilo em determinado período. Em caso de ausência de algum tema, contacta a equipe para que o tópico seja implementado. Entregas adicionais que podem ser requeridas pela parte interessada serão os temas não abordados pela equipe mas que carecem na hora da revisão da parte interessada. Conteúdos relacionados ao estudo da linguagem Python.

3.6 Perfis do Usuário

Tabela 1. Representante, descrição, tipo e responsabilidades do usuário

Representante Descrição Tipo Responsabilidades
Indivíduos interessados em linguagem de programação Python. Estudantes de cursos da computação, alunos de outras áreas interessados na interdisciplinariedade, profissionais autônomos. Usuários informais que apresentam um nível baixo ou intermediário de conhecimento sobre Python. Além de usar com responsabilidade o programa, tentando respeitar ao máximo a língua portuguesa mesmo que de forma coloquial, o usuário deve relatar qualquer problema técnico encontrado à parte interessada, para que esta alerte a equipe de desenvolvimento, que resolverá o problema.

Tabela 2. Critérios de sucesso, envolvimento e entregas do usuário

Critérios de Sucesso Envolvimento Entregas
Reconhecimento pelo usuário de noções básicas da linguagem, identificação pelo beneficente de capítulos recorrentes de conteúdos bibliográficos, capacidade de solucionar problemas propostos pela Aix e outros demais empecilhos. Construtor das dúvidas e receptor de conhecimento. Dialoga com o simulador de maneira informal e envia interrogações para que assim o chatbot retorne uma explicação correspondente. As entregas do usuário são as dúvidas enviadas que deverão ser elaboradas por ele durante o processo de aprendizagem.

3.7 Principais Necessidades da Parte Interessada e do Usuário

Tabela 1. Necessidades da Parte Interessada

Necessidade Prioridade Solução Atual Solução Proposta
Uma ferramenta que auxilie no ensino de Python Ser acessível Cursos de qualificação, livros e documentações Uma forma flexível, confiável e menos trabalhosa de auxílio ao estudante

Tabela 2. Necessidades do Usuário

Necessidade Prioridade Solução Atual Solução Proposta
Tirar dúvidas de programação Ser rápido e claro Pesquisar por fóruns, livros e documentações Permitir que o usuário converse com o bot e esclareça suas dúvidas

3.8 Alternativas e Concorrência

  • Stack Overflow
    • É um website para perguntas e respostas sobre tópicos de programação, onde, através do registro, é possível votar em questões e respostas mais ou menos úteis.

drawing

  • Udemy
    • Se trata de uma plataforma de cursos online. Alguns cursos permitem que os alunos comentem dúvidas e essas são respondidas pelos professores e/ou outros alunos.

drawing

4. Visão Geral do Produto

4.1 Perspectiva do Produto

   O produto se difere dos demais do mercado por ser capaz de reconhecer a dúvida do aluno através de frases escritas de acordo com o português usual e retornar ao usuário respostas do conteúdo de Python em um formato fluído, criativo e habilidoso. De modo que após reconhecido, o questionamento será esclarecido de forma imediata com a utilização de respostas dinâmicas, redirecionamento de links, e recursos visuais.

4.2 Resumo das capacidades

   As capacidades do produto vão de encontro com as necessidades do aluno recém-ingresso no curso de Engenharia de Software ou do estudante que deseja aprender a programar, ambos começando por entender os elementos fundamentais da prática da programação. Assim, a Aix Bot será capaz de tirar dúvidas relacionadas a esta realidade dos seus usuários, incluindo dúvidas de sintaxe relacionadas à linguagem Python. Por fim, todos esses recursos foram pensados para que o Bot seja capaz de estar sempre auxiliando o utilizador no tocante a programação básica.

4.3 Custo e precificação

   O produto não possui custos além dos relacionados a equipe de desenvolvimento e gerenciamento, não serão necessários nenhum serviço ou licença de terceiros pagos.

5. Recursos do Produto

5.1 Ajuda com sintaxe

   O usuário poderá tirar dúvidas de sintaxe da linguagem Python por meio do Bot.

5.2 Respostas de Dúvidas

   O Bot irá responder as dúvidas do aluno sobre a linguagem Python.

5.3 Ajudar o usuário com exemplos

   Caso o usuário não tenha entendido como pretendia, ou gostaria de visualizar uma aplicação do que foi explicado, um exemplo pode ser solicitado.

   O usuário pode solicitar por conteúdo extra, será fornecido o link de algum site com informação confiável e didática.

   O usuário pode solicitar por exercícios para que seja fixado o que foi aprendido. Serão retornados 3 links de exercícios a serem resolvidos por meio do juiz online URI, referentes ao conteúdo solicitado.

5.6 Oferecer desafios e correção deles oferecidos pelo UVa Online Judge

   O usuário pode solicitar por desafios relacionados ao conteúdo que ele está aprendendo. Serão retornados links para desafios de diferentes níveis sobre o conteúdo escolhido, o usuário poderá logar em uma conta para assim conseguir usar a feature de correção feita pelo Online Judge e receberá um feedback do bot.

5.7 Permitir que o usuário pesquise no StackOverflow

   O usuário poderá solicitar uma pesquisa. Será feita uma requisição com a API do site StackOverflow que retornará cerca de cinco links com dúvidas semelhantes que foram esclarecidas.

6. Restrições

  • AIX é um bot que deverá funcionar juntamente ao ambiente web Jupyter Notebook e com o mensageiro Telegram.
  • O bot deverá estar disponível até Julho de 2019.
  • Para utilizar o bot será necessário um computador com sistema operacional Linux, Windows ou MacOS utilizando o ambiente Jupyter ou algum dispositivo com a versão mais atual do mensageiro Telegram.

7. Atributos do Recurso

7.1 Status

Tabela 3: Status de um recurso.

Status Descrição
Em análise Recurso que foi desenvolvido, mas será checado se seus critérios de aprovação foram atendidos
Aprovado Recurso que teve sucesso na análise, porém não está em produção
Em produção Recurso em produção, incorporado ao código-fonte do servidor.

7.2 Benefício

Tabela 4: Prioridade do benefício.

Prioridade Descrição
Crítico Recurso essencial. A falha da implementação de um recurso crítico acarreta, além da ausência do benefício dele, também acarreta numa falha crítica ou que o sistema não atenderá o cliente
Importante Recursos importantes para a eficácia e eficiência do sistema para a maioria dos aplicativos. As funções não podem ser facilmente fornecidas de alguma outra maneira. Omitir um recurso importante pode afetar a satisfação do cliente ou do usuário, ou até mesmo a receita. No entanto, a liberação não será atrasada porque um recurso importante não foi incluído.
Útil Os recursos que são úteis em menos aplicativos típicos, são usados menos frequentemente, ou podem corresponder às soluções alternativas razoavelmente eficientes. Nenhuma receita significativa ou impacto na satisfação do cliente poderá ser esperada se tal item não for incluído em uma liberação.