Trabalho de Conclusão de Curso - UFCG de Kleberson Matheus Cunha Silva Canuto, orientado por Eliane Cristina de Araújo - UFCG.
O Programming Courses é um site que oferece cursos para o aprendizado inicial de programação, mais especificamente na linguagem Python.
O site pode ser acessado a partir do link http://programmingcourses.s3-website-us-east-1.amazonaws.com/.
Para executar localmente, veja os README da API e do Frontend.
É possível realizar o cadastro (Imagem 1) no site e fazer Login (Imagem 2), liberando assim algumas funcionalidades extras, caso o usuário seja administrador, é possível ter acesso à área de administração (Imagens 3 e 4).
Imagem 1 - Cadastro
Imagem 2 - Login
Imagem 3 - Área de administração - Cursos
Imagem 4 - Área de administração - Módulo
A área de desenvolvimento livre (aba Editor) conta com um editor de texto simples, onde é possível escrever um código em Python e executá-lo, informando entrada caso seu programa necessite, para receber a saída no campo "Saída". Caso deseje uma execução mais detalhada, ainda é possível executar o código com o Python Tutor, onde é possível ver como é executado o código passo a passo, sendo possível observar a ordem de execução e as definições e mudanças de variáveis.
Imagem 5 - Área de desenvolvimento
A partir da tela inicial (Imagem 6), caso esteja logado, o usuário consegue acessar cursos (Imagem 7) em Python, cada cursos possui módulos,
Imagem 6 - Tela inicial
Imagem 7 - Curso
O módulo (Imagem 8) em sua essência é um conjunto de materiais teóricos e práticos sobre um assunto de programação. Nele está contido materiais (teóricos), questões e problemas.
Imagem 8 - Módulo
O material é um material teórico sobre um assunto, seu conteúdo pode ser em forma textual (Imagem 9) ou de vídeo (Imagem 10). Além disso, o material pode ser complementar, ou seja, não é essêncial para o módulo, mas pode ser de utilidade em um futuro.
Imagem 9 - Material textual
Imagem 10 - Material em vídeo
Questões (Imagem 11) são perguntas de múltipla escolha para o usuário, de forma a desafiar o conhecimento teórico dele. Caso ele sinta dificuldade, é possível pedir uma dica.
Imagem 11 - Questao
Problemas (Imagem 12) são questões do dia a dia que devem ser resolvidas de forma prática, com um código na linguagem Python, são mostrados na tela exemplos de entrada e saída esperada, facilitando o usuário a entender o problema.
Imagem 12 - Problema
Caso sinta dificuldade em resolver um problema, o usuário pode utilizar o oráculo (Imagem 13), ele serve para validar se uma entrada dá a saída esperada por ele. Em caso do usuário nem saber a saída esperada, é possível ainda executá-lo no modo apenas entrada, onde é necessário informar apenas a entrada, e então a saída para aquela entrada será mostrada na tela.
Imagem 13 - Oraculo
Ao progredir nos cursos, o usuário recebe pontuação, essa pontuação é possível ser vista em um Rank com usuários (aba Ranking) (Imagem 14), onde é possível competir com outros usuários, é válido ressaltar que a pontuação a ser recebida diminuirá conforme as tentativas erradas em questões e problemas. Ainda na aba Ranking, é possível observar as diversas maneiras de pontuar (Imagem 15).
Imagem 14 - Rank de usuários
Imagem 15 - Regras de Pontuacao