Developing (Almost) Free Distributed System Labs Using Container-based Technique
From Publication
@inproceedings{10.1145/3393527.3393545, author = {Xu, Zichen and Cheng, Jie and Wang, Yuhao and Rao, Hong}, title = {Developing (Almost) Free Distributed System Labs Using Container-Based Technique}, year = {2020}, isbn = {9781450375344}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3393527.3393545}, doi = {10.1145/3393527.3393545}, abstract = {Developing successful labs is essential to advanced CS courses. As the fast development on novel programming models and system frameworks, our CSE education calls for a collaborative, community-sourced design effort that maximizes the benefit from effective lab practice. However, building one unified lab platform is expensive, while outsourcing lab works to students faces challenges like infrastructure requirements, heterogeneous operating environments, and the desire to incentivize individual work. To address these challenges, we present our recent efforts on developing, deploying, and analyzing up-to-date distributed system labs based on container-based techniques and open source community supports. Our work uses docker containers that provide a light and consistent environment to support fast lab exercise construction and migration. This enables our students host their own labs with a modest laptop or desktop. Further, We provide a machine learning engine that automatically crawls students' homework images and evaluated with the weighted Adaboost algorithm on elected course topics. As such, we allow to build novel and practical distributed computer labs for (almost) free. We deployed and evaluated our work in a continuous three-year course teaching. The results show that our students provide positive feedback on learning and experiencing complex computer system concepts without increasing the complexity of lab setup or assessment.}, booktitle = {Proceedings of the ACM Turing Celebration Conference - China}, pages = {101–106}, numpages = {6}, location = {Hefei, China}, series = {ACM TURC '20} }