O Propósito do Projeto
O AlgoSimulator nasceu de uma necessidade latente no ensino de Ciência da Computação e Engenharia de Software: a carência de um ambiente de testes acessível, moderno e estruturado para o aprendizado de algoritmos. O projeto foi desenvolvido para permitir a execução e a depuração de lógicas de programação de forma totalmente gratuita e baseada na web, reduzindo as barreiras de entrada para novos estudantes.
Historicamente, o ensino de lógica no Brasil foi fortemente apoiado em ferramentas clássicas de pseudocódigo. No entanto, muitas dessas ferramentas tornaram-se defasadas, exigindo instalações complexas em ambientes desktop e utilizando sintaxes que se distanciam das linguagens de mercado contemporâneas.
Evolução Sintática e Paradigmática
Para estreitar a lacuna entre o ambiente de aprendizado e o mercado de trabalho, o AlgoSimulator introduz uma sintaxe transicional. O exemplo mais notório é a substituição do clássico operador de atribuição de setas (<-) pelo operador de igualdade (=).
Embora a seta seja semanticamente rica em fluxogramas, o uso do = prepara visual e mecanicamente o estudante para a transição imediata a linguagens como C, Python, Java e JavaScript. Da mesma forma, adotamos o == para operadores de comparação, mitigando o clássico erro de sintaxe que iniciantes enfrentam ao migrar para a programação real.
Visualização de Memória e Controle de Fluxo
Uma das maiores abstrações enfrentadas pelos estudantes é compreender o que ocorre "por baixo dos panos" durante a execução de um código. Inspirado pela arquitetura de computadores, o simulador quebra a "caixa preta" do processamento.
— Baseado nos conceitos de Andrew S. Tanenbaum em "Organização Estruturada de Computadores"
Ao fornecer uma visualização em tempo real da Memória RAM (Pilha/Stack e Heap), o aluno não apenas vê o output (resultado na tela preta), mas compreende como as variáveis (inteiros, vetores e ponteiros) nascem, assumem valores e são destruídas ao longo do escopo de execução da máquina virtual da IDE.
Referências e Literaturas Base
A arquitetura do interpretador e as funcionalidades oferecidas por esta aplicação foram fortemente inspiradas em bibliografias basilares da Ciência da Computação:
- Tanenbaum, A. S. - Organização Estruturada de Computadores: Referência fundamental para o design da visualização de endereços de memória (hexadecimais), ponteiros e a diferença entre Stack (Pilha) e Heap (Alocação Dinâmica).
- Cormen, T. H. et al. - Algoritmos: Teoria e Prática: Base teórica para a estrutura da biblioteca de testes, abrangendo desde laços iterativos simples até problemas de recursividade e ordenação.
- Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. - Compiladores: Princípios, Técnicas e Ferramentas (O Livro do Dragão): Literatura essencial para o desenvolvimento do motor sintático (Parser) e da árvore de execução (AST) que converte o texto do pseudocódigo em instruções executáveis pelo Python no backend.