Many universities are now offering software engineering an undergraduate level emphasizing knowledge point. However, some enterprise managers reflected that education ignore hands-on ability training, and claimed that there is the isolation between teaching and practice. This paper presents the design of a Software Engineering course (sixth semester in network engineering) at University of Jinan for undergraduate Software Engineering students that uses virtualization technology to teach them project-driven learning-by-doing software development process. We present our motivation, challenges encountered, pedagogical goals and approaches, findings (both positive experiences and negative lessons). Our motivation was to teach project-driven Software Engineering using virtualization technology. The course also aims to develop entrepreneurial skills needed for software engineering graduates to better prepare them for the software industry. Billing models of virtualization help pupils and instructors find the cost of the experiment. In pay-as-you-go manner, two labs and three step-by-step projects (single project, pair project, and team project) are designed to help the students to complete the assignment excitedly. We conduct some detailed surveys and present the results of student responses. The assessment process designed for this course is illustrated. The paper also shows that learning-by-doing method correlates with the characteristics of different projects, which has resulted in a successful experience as reported by students in an end of a semester survey.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.