{'fraction_non_alphanumeric': 0.020226537216828478, 'fraction_numerical': 0.0016181229773462784, 'mean_word_length': 5.247474747474747, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Project-based Learning Experience in a Compilers Course

This paper describes a project-based learning (PBL) experience in a compilers course. In PBL, students play an active goal in learning and professors act like facilitators of knowledge. In PBL, students face authentic and motivating problems that require them to answer to complex questions and develop success skills. We first explain why the majority of projects used in the compilers course are not fit for this teaching strategy. Based on this problem, we propose a project that enables student motivation and sustained inquiry. We describe a one-semester experience with two professors and 40 students. In the experience described, students were asked to work in groups to build a complete compiler for a language designed on their own. Furthermore, we designed different types of classes, such as traditional lectures, time in the lab, group meetings and design discussions to enable student voice, reflection, critical thinking and critique, essential elements of PBL that are commonly not sufficiently addressed in traditional course organizations. The results show that students were highly motivated and capable of identifying which success skills needed improvement.