Computer Sciences NOGUCHI YasuhiroAssociate Professor
Research Outline
The research topics of our laboratory are intelligent educational systems, learning support for programming and software design skills, analysis of learning activities, and second language learning support. We considered it important to introduce the research results to the actual educational field, obtain evaluations and feedback, and conduct activities that will lead to further improvements. We are developing more effective learning methods and techniques through evaluation not only in school education settings but also in skill education settings for working technicians and businesspeople.
Learning Analytics based on Learners’ Coding Activities in Programing Exercise
The trial-and-error process by which learners solve problems is crucial in programming exercises. However, in actual practice, potential impasse learners are sometimes left in a predicament in proceeding with the designated task, which results in these learners’ disengagement. Recently, in addition to face-to-face, online and on-demand exercises are becoming increasingly common in combinations. It has become challenging for teachers and teaching assistants to observe learners’ exercise situations inside and/or outside the classroom.
In this research project, we are developing a tutoring support system with learners’ impasse detection, assuming that impasse detection automatically collects learners’ coding activities in their assignment and analyzes them to identify their current progress and struggling problems. In addition, throughout the exercise, the system analyz learners’ knowledge and skill map allows teachers to handle which learning items are being understood and which are not by learners, which can lead to appropriate handling of the exercise and improvement of the learning content.

Self-Review Skill Enhancement based on Natural Language Translation from Learners’ Design Models
In general, college students enrolled in computer science courses are provided software design classes and exercises. In cross-reviewing exercises, learners create their own design models based on the requirement specifications provided for a sample application. Next, the learners review each other’s model and provide feedback to the model creator. Then, the learners update their own model using the feedback, and improve their comprehension in creating software design models. This method works well in cases where the reviewers are experienced students or teaching assistants who have experienced the modeling and/or reviewing techniques previously. However, beginner learners, who make up most of the participants in the class and exercises, often cannot work as effectively as such experienced reviewers. These learners should be encouraged by strengthening their understanding of the models.
In this research project, we propose a self-review supporting environment that provides learners with feedback, generated by translating their Unified Modeling Language (UML) class diagrams into natural language descriptions. This enables beginner learners to recognize discrepancies between what they would like to describe on their class diagrams and what they actually describe on their class diagrams by comparing them in natural language. We believe that improving their understanding of their models is the first step towards becoming good modelers and reviewers for software design, becoming to learn for the design skills from the cross-reviewing activities.

Learning Support for Program Design Skill Improvement based on Component Testability Perspective
It is important to understand and improve the component structure of your program, whether it is a good design, and, if not, what is wrong with it. However, unlike ordinary programming exercises, where they can evaluate the function of their edited code by executing and observing the results, novice learners cannot judge whether a design is good or bad. We believe that one of the reasons why design exercises are more difficult for novice learners than programming exercises is that there is little feedback on the quality of the results (can be obtained autonomously by learners). Therefore, in this study, we focus on the testability of software modules and propose a mechanism to provide feedback to learners based on whether the module to be tested satisfies the design elements that enable automated testing.

We created a web system that enables the analysis – improvement of exercises, breaking down the analysis – improvement steps in detail, and automatically providing feedback from the learner’s choices at each step. Improving the design to an automatically testable design requires the use of object-oriented design ideas, and we are also looking to contribute to the promotion of the understanding of object-oriented design and implementation.

As a result of this research, a prototype system and learning content are available: C language testability design learning contents, Java language testability design learning contents, and design improvement learning contents using mocks.
Learning Support for Comprehension of Function, Behaviors and Structure of Software Component
A common problem among novice programmers is that they might understand the conceptual description of an algorithm but get stuck when trying to implement it in a program. Many learners learn to program through trial and error; however, why? Is there a way to learn more explicitly by linking conceptual-level and implementation-level understanding in a more explicit manner?
In this research project, we realize a system that supports programming learning by visualizing in real time the function, structure, and behavior of programs developed by programming learners themselves, based on the viewpoint of skilled programmers. In addition, skilled programmers (those who can program) can analyze the development target by switching the scope of attention and the level of abstraction according to the development status and obstacles; however, novice programmers often stumble in the exercise stage because they cannot do this, so it is necessary to assist them appropriately. We are conducting research to reduce the number of people who stumble and give up while learning programming.
NOGUCHI YasuhiroAssociate Professor
Field of Expertise
Intelligent Tutoring System, Computer Science Education, Learning Analytics
