Um sistema inteligente de tutoria para aprendizado de programação em C, desenvolvido com IA pedagógica (Google Gemini) e integrando o método PROVAR para resolução estruturada de problemas.
- Método PROVAR Completo: Sistema estruturado em 6 etapas (Problema, Requisitos, Ordenar, Verter, Analisar, Revisar)
- Exemplo Interativo: Tutorial passo a passo mostrando como aplicar o método PROVAR na prática
- IA Pedagógica Avançada: Identifica o TIPO de erro do aluno (conceitual, lógico ou sintático) e personaliza o feedback
- Análise de Planejamento: Verifica se o aluno entendeu o problema antes de codificar
- Análise de Código: Feedback detalhado com perguntas socráticas para guiar o aprendizado
- Chat Contextual: Conversa sobre dúvidas mantendo histórico da conversa
- Progressão Adaptativa: Sistema REDO/REINFORCE/PROCEED baseado no domínio demonstrado
- Sistema de Progresso: Tracking visual por tópico (0-100%)
- Geração Personalizada: Exercícios adaptados ao nível e necessidade
- Trilha de Estudos: Organização por urgência (P1 e P2)
- Backend: Node.js + Express
- IA: Google Gemini 2.5 Flash (com prompts pedagógicos otimizados)
- Frontend: HTML5 + CSS3 + JavaScript (Vanilla)
- Estilização: Tailwind CSS
- Markdown: Showdown.js
- Deploy: Render
- Node.js (versão 18 ou superior)
- NPM ou Yarn
- Chave de API do Google Gemini
- Clone o repositório:
git clone https://github.com/seu-usuario/tutor-inteligente-c.git
cd tutor-inteligente-c- Instale as dependências:
npm install- Configure as variáveis de ambiente:
# Crie um arquivo .env na raiz do projeto
echo "GEMINI_API_KEY=sua_chave_aqui" > .env- Execute o servidor:
npm start- Acesse a aplicação:
http://localhost:3000
- Acesse Google AI Studio
- Faça login com sua conta Google
- Crie uma nova API Key
- Adicione a chave no arquivo
.env:
GEMINI_API_KEY=AIzaSyAquiVaiSuaChaveCompleta123456789
- Veja um problema sendo resolvido passo a passo
- Entenda como aplicar cada etapa do PROVAR
- Use as dicas pedagógicas para fixar o conceito
- Escolha um tópico de programação
- Clique em "Praticar" para gerar um exercício personalizado
- Exercícios são adaptados ao seu nível
- P (Problema): Leia e compreenda o enunciado
- R (Requisitos): Liste entradas, saídas, variáveis E tipos (tudo junto!)
- O (Ordenar): Escreva o algoritmo em português, passo a passo
- V (Verter): Traduza para código C
- A (Analisar): Teste com exemplos
- R (Revisar): Corrija erros encontrados
- Clique em "Analisar Plano" antes de codificar
- A IA verifica se você está pronto para codificar
- Receba feedback específico sobre o que melhorar
- Escreva o código baseado no seu planejamento
- Clique em "Analisar Código"
- A IA identifica:
- 🧠 Erro Conceitual: Você não entendeu o problema
- 🔀 Erro Lógico: Implementação incorreta (recebe perguntas socráticas)
- ⚙️ Erro Sintático: Correção direta da sintaxe
- Use o chat para esclarecer dúvidas sobre o feedback
- A IA mantém contexto da conversa
- Receba explicações didáticas e exemplos
- Visualize seu domínio de cada tópico (0-100%)
- Identifique pontos fracos
- Celebre suas conquistas! 🎉
tutor-inteligente-c/
├── public/
│ ├── index.html # Interface principal (ATUALIZADA)
│ └── desespero.html # Página motivacional
├── server.js # Servidor Express (ATUALIZADO)
├── package.json # Dependências
├── .env.example # Exemplo de configuração
├── .gitignore # Arquivos ignorados
└── README.md # Este arquivo
O método PROVAR é uma abordagem estruturada para resolução de problemas de programação, baseada em referenciais pedagógicos como Forbellone & Eberspächer e Ascencio & Campos:
Leia cuidadosamente TODO o enunciado. Grife palavras-chave e identifique o objetivo.
Identifique TUDO junto, antes de começar o algoritmo:
- Entradas: O que o programa vai ler? (tipo e quantidade)
- Saídas: O que o programa vai imprimir? (formato)
- Variáveis: Quais variáveis serão necessárias? (nome e tipo)
- Restrições: Quais são as regras e condições?
Escreva o algoritmo em PORTUGUÊS PURO, passo a passo:
- ❌ Evite: "se numero mod 2 igual 0" (C disfarçado)
- ✅ Use: "Se o número é divisível por 2"
Traduza seu algoritmo para código C:
- Use nomes de variáveis descritivos
- Siga a ordem dos passos que você definiu
- Mantenha o código organizado
Teste seu código com diferentes casos:
- Casos normais
- Casos limite (zero, negativo, máximo)
- Casos especiais
Corrija erros encontrados:
- Verifique se compila sem erros
- Verifique se a saída está correta
- Melhore a clareza do código se necessário
A IA verifica cada etapa do PROVAR:
✅ Compreendeu o problema?
✅ Identificou todas as entradas, saídas, variáveis e tipos?
✅ Algoritmo está em português claro?
✅ Código C segue o algoritmo?
✅ Testou com exemplos?
Tipo 1: Erro Conceitual 🧠
- O aluno não entendeu o problema
- Ação: Volta ao PROVAR (etapa R - Requisitos)
- Feedback: "Vamos revisar o planejamento!"
Tipo 2: Erro Lógico 🔀
- O aluno entendeu mas implementou errado
- Ação: Perguntas socráticas
- Feedback: "Observe sua condição do while. Quando i=5, ela será verdadeira ou falsa?"
Tipo 3: Erro Sintático ⚙️
- O aluno sabe a lógica mas errou a sintaxe
- Ação: Correção direta
- Feedback: "Falta o & antes de 'numero' no scanf. Deve ser:
scanf("%d", &numero);"
REDO 🔴
- Erros conceituais graves
- Volta ao planejamento
REINFORCE 🟡
- Erros pontuais
- Pratica exercício similar
PROCEED 🟢
- Código correto!
- Avança para nível maior
- Conecte seu repositório GitHub ao Render
- Configure as variáveis de ambiente:
GEMINI_API_KEY: Sua chave da API do GeminiNODE_ENV: production
- Deploy automático a cada push no GitHub
O servidor inclui endpoint /health para monitoramento:
curl https://seu-app.onrender.com/health# Instalar dependências
npm install
# Configurar .env
echo "GEMINI_API_KEY=sua_chave" > .env
# Executar servidor
npm start
# Acessar no navegador
http://localhost:3000- Compile e teste códigos C diretamente no navegador
- Use
!gcc arquivo.c -o programa && ./programanas células - Acesse: colab.research.google.com
- GCC:
sudo apt install gcc(Linux) ou MinGW (Windows) - IDE: VS Code com extensão C/C++
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
- 🎨 Melhorias na UI/UX
- 🤖 Otimização dos prompts pedagógicos
- 📚 Novos exemplos PROVAR
- 🧪 Testes automatizados
- 🌐 Internacionalização
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Gabriel Hando - @gabrielhando
- Google Gemini: Pela API de IA generativa
- Forbellone & Eberspächer: Pela base pedagógica do método
- Ascencio & Campos: Pelos referenciais de ensino de programação
- Comunidade: Por feedback e sugestões de melhoria
✨ Novo Método PROVAR:
- Substituição do método LEPEBES pelo PROVAR
- Baseado em referenciais pedagógicos (Forbellone, Ascencio)
- Integração de dados (entradas, saídas, variáveis e tipos) em uma única etapa
- Exemplo interativo atualizado com o novo método
🔧 Melhorias Técnicas:
- Prompts da IA atualizados para o método PROVAR
- Interface redesenhada para o novo fluxo
- Documentação completamente revisada
✨ Novidades Pedagógicas:
- Exemplo LEPEBES interativo com tutorial passo a passo
- IA identifica tipo de erro (conceitual/lógico/sintático)
- Feedback personalizado com perguntas socráticas
- Prompts pedagógicos otimizados
🔧 Melhorias Técnicas:
- Análise de planejamento mais rigorosa
- Validação detalhada de cada etapa
- Sistema de progressão mais inteligente (REDO/REINFORCE/PROCEED)
- Interface modernizada com gradientes
- Lançamento inicial
- Método LEPEBES básico
- Geração de exercícios
- Análise de código
- Autoplay do vídeo pode ser bloqueado por alguns navegadores (mostra poster da Britney)
- Timeout em exercícios muito complexos (limite de 45s)
- Sempre preencha o PROVAR completo antes de codificar
- Use o exemplo interativo se for sua primeira vez
- Analise o plano antes de escrever código
- Leia o feedback com atenção - a IA faz perguntas para te guiar
- Use o chat para esclarecer dúvidas específicas
- Compile e teste no Google Colab
- Suporte a múltiplas linguagens (Python, Java)
- Sistema de gamificação com badges
- Desafios diários
- Modo competitivo (ranking)
- Integração com GitHub para salvar códigos
- App mobile
- Modo offline
O método PROVAR foi desenvolvido com base em referenciais pedagógicos consagrados no ensino de lógica de programação:
- Forbellone & Eberspächer - "Lógica de Programação"
- Ascencio & Campos - "Fundamentos da Programação de Computadores"
- Polya - "How to Solve It" (Stanford/Princeton)
A principal diferença do PROVAR é a integração dos dados (entradas, saídas, variáveis e tipos) em uma única etapa (R - Requisitos), ANTES de escrever o algoritmo. Isso segue a abordagem do "dicionário de dados" recomendada por Forbellone.
PROVAR = Problema → Requisitos → Ordenar → Verter → Analisar → Revisar
⭐ Se este projeto te ajudou, não esqueça de dar uma estrela! ⭐
#PROVAR #ProgramaçãoComMétodo #TutorInteligente 🎓💻