University Code Refactoring Practice-Driven Curriculum Instructed by Industry Professionals

As software design and development is engineering technology and art, the design and coding capabilities of software engineers require continuous development and practice. After learning the basic concepts of computers, students need to constantly practice so as to design and develop excellent systems. To assist university teachers to develop software design and code quality curriculums, the authors propose a code refactoring practice-driven curriculum taught by professionals for the university students based on the code refactoring practice case developed for junior engineers. The curriculum uses teacher teaching, student sharing, and teacher summaries, combined with the student's code, through the study and discussion of "refactoring" book, to verify students' object-oriented design ability and coding ability, and help students master and improve the corresponding ability. Firstly, in the guided class, the teacher takes simple cases as examples to guide students to view poor quality code problems, explain the basic principles and common approaches of refactoring. Teacher proposes the reading guide for the Refactoring book for students in preparation for the sharing class. Secondly, in the sharing class, students share one or more knowledge points after reading the book based on their code, and summarize the problems in the code, and introduce the reasons and specific steps to improve the code using each refactoring method. Students can ask relevant questions and advise classroom participants on issues to be aware of in future design and development. Finally, in the summarization class, the teacher summarizes the students' strength and weakness in understanding the object-oriented design and refactoring methods and proposes future goals. This poster emphasizes that the success of this curriculum depends on the teaching ability of the professional and proposes the criteria for selecting the teacher includes profound engineering experience, passion for education, and teaching capabilities. Based on the design and teaching experience of previous coding refactoring curriculum, the first author hopes to cooperate with university teachers to use the excellent engineering practice methodology and pedagogical ideas to inspire and guide students to understand concepts and polish their skills. Together, the authors can make full use of engineering practice and university education concepts to provide a better practical curriculum for university students' software development.