Artificial Intelligence (AI) has become a popular area of Computer Science (CS), both within and outside of academia. AI can reference a large variety of different topics, including Machine Learning (ML) to Knowledge Representation and Reasoning (KRR), both of which are incorporated in this dissertation research.
One of the major challenges of AI is its inexplicability. Especially in more complex systems with self-learned concepts, explaining the behavior of an AI system is typically infeasible at best. Furthermore, defining the concept of explainability in AI provides its own set of issues. As discussed in the paper by Doshi-Velez and Kim, interpretability (i.e. explainability) of AI is a difficult concept to define and implement, yet has a high value in certain use cases. One of these cases is “Scientific Understanding” or the pursuit of knowledge . This dissertation will focus on the pursuit of knowledge for the purpose of software development, particularly, for novice developers. These developers understand the application logic but are not trained in programming with complex and detailed syntax. These developers include professionals in non-CS disciplines and young students in K-12 classes. We have developed a tool called Visual IoT and Robotics Programming Language Environment (VIPLE) that can help novice developers to develop software without learning complex syntax first. The explainable AI is used in developing the auto-grader of code written in VIPLE.
Computer science education is an increasingly vital area of study with various challenges that increase the difficulty level for new students resulting in higher attrition rates. As part of an effort to resolve this issue, a new visual programming language environment was developed for this research, the Visual IoT and Robotics Programming Language Environment (VIPLE). VIPLE is based on computational thinking and flowchart, which reduces the needs of memorization of detailed syntax in text-based programming languages. VIPLE has been used at Arizona State University (ASU)in multiple years and sections of FSE100 as well as in universities worldwide. Another major issue with teaching large programming classes is the potential lack of qualified teaching assistants to grade and offer insight to a student’s programs at a level beyond output analysis.
In this dissertation, I propose a novel framework for performing semantic autograding, which analyzes student programs at a semantic level to help students learn with additional and systematic help. A general autograder is not practical for general programming languages, due to the flexibility of semantics. A practical autograder is possible in VIPLE, because of its simplified syntax and restricted options of semantics. The design of this autograder is based on the concept of theorem provers. To achieve this goal, I employ a modified version of Pi-Calculus to represent VIPLE programsandHoare Logic to formalize program requirements. By building on the inference rules of Pi-Calculus and Hoare Logic, I am able to construct a theorem prover that can perform automated semantic analysis. Furthermore, building on this theorem prover enables me to develop a self-learning algorithm that can learn the conditions for a program’s correctness according to a given solution program.
De Luca, Gennaro. Arizona State University, ProQuest Dissertations Publishing, 2020. 27548231.