I. Introduction
Hands-on learning, such as simulation and experimentation, is important for learning computer science courses to understand the basic theory and technologies of computers, which are used in real systems, not only book knowledge. However, learning computer networks is known to be challenging to conduct hands-on learning due to the need to prepare the learning environment [1]. In addition, the lecture time of introductory computer science (CS) courses is limited time to learn each topic, so networking and security lessons in basic CS courses tends to be internet ethics or vague theoretical discussions.