Compiler design is a course that discusses ideas used in construction of programming language compilers. Students learn how a program written in high level programming language and designed for humans understanding is systematically converted into low level assembly language understood by machines. We propose and implement a Case-based and Project-based Learning environment for teaching important Compiler design concepts (CPLC) to B.Tech third year students of a Delhi University (India) college. A case is a text that describes a real-life situation providing information but not solution. Previous research shows that case-based teaching helps students to apply the principles discussed in the class for solving complex practical problems. We divide one main project into sub-projects to give to students in order to enhance their practical experience of designing a compiler. To measure the effectiveness of case-based discussions, students complete a survey on their perceptions of benefits of case-based learning. The survey is analyzed using frequency distribution and chi square test of association. The results of the survey show that case-based teaching of compiler concepts does enhance students skills of learning, critical thinking, engagement, communication skills and team work.
: We make our dataset publicly available on GitHub https: github.com Divya-Kundra Case-Based-Teaching . GitHub is becoming popular as a platform for researchers and scientists to share, update and maintain their dataset as well as code http: www.nature.com news democratic-databases-science-on-github-1.20719 . We believe that sharing our dataset will further facilitate research on case-based teaching in computer science and in particular on compilers design course and can be used to explore new research problems and hypothesis. Due to limited space in the paper, we briefly describe only two case-studies, however, we make all the case-studies publicly available through the GitHub repository. : The study presented in this paper is an extended version of our short paper accepted in T4E 2016 (The Eighth IEEE International Conference on Technology for Education) by the same authors @cite_1 . Due to the limited four page limit of the T4E 2016 paper, several aspects of our study are not covered which are now described in detail in this paper. The objective of this paper is to provide a complete and detailed analysis of our work through arXiv open access https: arxiv.org .
@cite_1
2574057444
Compiler design is a course that discusses ideas used in construction of programming language compilers. Students learn how a program written in high level programming language and designed for humans understanding is systematically converted into low level assembly language understood by machines. We propose and implement a Case-based and Project-based Learning environment for teaching important Compiler design concepts (CPLC) to B.Tech third year students of a Delhi University (India) college. A case is a text that describes a reallife situation providing information but not solution. Previous research shows that case-based teaching helps students to apply the principles discussed in the class for solving complex practical problems. We divide one main project into sub-projects to give to students in order to enhance their practical experience of designing a compiler. To measure the effectiveness of case-based discussions, students complete a survey on their perceptions of benefits of case-based learning. The survey is analyzed using frequency distribution and chi square test of association. The results of the survey show that case-based teaching of compiler concepts does enhance students skills of learning, critical thinking, engagement, communication skills and team work.