Saci – ainda outro ambiente para o ensino de programação
Resumo
Este artigo apresenta um sistema integrado para o ensino e aprendizagem de programação de computadores. O sistema, chamado Saci, compreende um subsistema de gerência de usuários, um subsistema de gerência de aulas, e o ambiente de aprendizagem propriamente dito, implementado como um aplicativo Web de página única. O ambiente de aprendizagem incorpora ferramentas para visualização do conteúdo da aula (vídeo, documentos de apoio), edição do programa-fonte, execução e verificação da correção do programa, além de ferramentas de ajuda ao aluno. Após o carregamento de uma “aula”, pré-montada por um professor, no navegador Web de um aluno, todo o processamento ocorre no navegador, não sendo necessária nenhuma configuração ou instalação no computador do aluno. Um primeiro curso utilizando o sistema Saci, de introdução `a programação de computadores usando Javascript, foi disponibilizado na página da Olimpíada Brasileira de Informática em meados de marc¸o.
Referências
Begel, A. (1996). LogoBlocks: a graphical programming language for interacting with the world. Electrical Engineering and Computer Science Department, MIT, Boston, MA. Retrieved from http://research.microsoft.com/en-us/um/people/abegel/mit/begelaup. pdf.
Chaves, J. M. O., Castro, F. A., Rommel, W. L., A., L. M. V., and Ferreira, K. H. A. (2013). Mojo: Uma ferramenta de aux´ılio `a elaboração, submiss˜ao e correção de atividades em disciplinas de programação. In Proceedings of the XXI WEI – Workshop sobre Educação em Informática, pages 402–407.
CodeChef (2015). Codechef for schools. http://www.codechef.com/school.
CodeOrg (2015). Codeorg.com. http://code.org.
Gomes, C. C., S., L. D. H., Ribeiro, R. P., Almeida, E. S., and Brito, P. H. S. (2011). Uma proposta para auxiliar alunos e professores no ensino de programação: O ambiente aiip. In Proceedings of the XIX WEI – Workshop sobre Educação em Informática.
Gray, J., Abelson, H.,Wolber, D., and Friend, M. (2012). Teaching cs principles with app inventor. In Proceedings of the 50th ACM Annual Southeast Regional Conference.
Haverbeke, M. (2015). Codemirror. http://codemirror.net.
jQWidgets (2015). jqwidgets. http://jqwidgets.com.
Kelleher, C. and Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys, 37(2):83–137.
KhanAcademy (2015). Khan academy computer science. http://www.khanacademy.org/computing/computer-programming.
Maloney, J., Peppler, K., Kafai, B., Y., Resnick, M., , and Rusk, N. (2008). Programming by choice: urban youth learning programming with Scratch. ACM SIGCSE Bulletin, 40(1):367–371.
Noschang, L. F., Pelz, F., Jesus, E. A. J., and Raabe, A. (2014). Portugol studio: Uma ide para iniciantes em programação. In Proceedings of the XXII WEI - Workshop sobre Educação em Computação, pages 1287–1296.
Papert, S. (1980). Mindstorms: children, computers, and powerful ideas. Basic Books.
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., and Kafai, Y. (2009). Scratch: programming for all. Communications of the ACM, 52(11):60–67.
Tonin, N. A., Ferreira, C. E., and Bez, J. L. (2013). Uri online judge academic: A tool for professors. In Proceedings of the International Conference on Advanced ICT, volume 1, pages 763–766.
Verdú, E., Reguereas, L. M., Verdú, M. J., Leal, J. P., Castro, J. P., and Queirós, R. (2011). A distributed system for learning programming on-line. Computers & Education, 58:1–10.