Introductory Computer Science Course by Adopting Many Programming Languages
Resumo
Teaching programming logic by means of a single Programming Language (PL) may lead the whole process to a particular syntax and specific libraries. In order to let every student choose their preferred PL we have developed a method that includes didactic material in many PLs by means of notebooks in Colab. We created a filter that generates Lecture Notes in different combinations of PLs from these notebooks. Moreover, each student can choose different PLs to practice with exercises and send their solutions as programming codes, which are individualized because of the parametric questions generated with MCTest+Moodle+VPL. Herewith we present our method, which is easily adaptable, validated with 5 remote classes comprising a total of 221 students, whose average pass rate was 90%.
Referências
Dingle, A. and Zander, C. (2000). Assessing the ripple effect of cs1 language choice. Consortium for Computing Sciences in Colleges, 16(2):85–93.
Géron, A. (2019). Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow: Concepts, tools, and techniques to build intelligent systems. O’Reilly Media.
Jw, T. (1977). Exploratory data analysis. Reading: Addison-Wesley.
Knuth, D. E. (1984). Literate programming. The Computer Journal, 27(2):97–111.
Lowry, R. (2014). Concepts and applications of inferential statistics. http://vassarstats.net/textbook. [Online; accessed 19-July-2021].
Neves, R. and Zampirolli, F. (2017). Processando a Informação: um livro pra ́tico de programação independente de linguagem. EDUFABC.
Rodríguez del Pino, J. and et al. (2010). VPL: laboratorio virtual de programacio'n para moodle. In Jornadas de Ensenãnza Universitaria de la Informática, pages 429–435.
Rodríguez-del Pino, J. and et al. (2012). A virtual programming lab for moodle with automatic assessment and anti-plagiarism features. CSCE.
Sorva, J., Karavirta, V., and Malmi, L. (2013). A review of generic program visualization systems for introductory programming education. ACM Trans. Comput. Educ., 13(4).
Thiébaut, D. (2015). Automatic evaluation of computer programs using moodle’s virtual programming lab (vpl) plug-in. J. Comput. Sci. Coll., 30(6):145–151.
Wainer, J. and Xavier, E. (2018). A controlled experiment on python vs c for an introductory programming course: Students’ outcomes. ACM Trans. on Comp. Edu., 18:1–16.
Zampirolli, F., Borovina Josko, J., Venero, M., Kobayashi, G., Fraga, F., Goya, D., and Savegnago, H. (2021). An experience of automated assessment in a large-scale introduction programming course. Computer Applications in Engineering Education.
Zampirolli, F., Pisani, P., Josko, J., Kobayashi, G., Fraga, F., Goya, D., and Savegnago, H. (2020). Parameterized and automated assessment on an introductory programming course. In Anais do XXXI SBIE, pages 1573–1582. SBC.