Abstract
Software companies generally adopt code review to identify errors and suggest improvements to code, and share knowledge in the team. Companies assume a pre-knowledge on their engineers to undertake the activity. This could be difficult for freshly graduated students as in an academic environment code review is not often exercised: it is not an individual activity and requires substantial interaction among students, educators, deliverance, and acceptance of feedback, timely actions upon feedback as well as the ability to agree on a solution in the wake of diverse viewpoints. This paper proposes a guideline to code reviewing in a classroom. We report on the lessons learnt after applying the proposed guidelines to a large course in Computer Science. Students’ feedback suggests that the process has been well received with some points to be improved.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Potvin, R., Levenberg, J.: Why Google stores billions of lines of code in a single repository. Commun. ACM 59(7), 78–87 (2016). https://doi.org/10.1145/2854146
Rigby, P.C., Bird, C.: Convergent contemporary software peer review practices. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ser. ESEC/FSE 2013, pp. 202–212. ACM, New York (2013). https://doi.org/10.1145/2491411.2491444
Saeed, S., Zyngier, D.: How motivation influences student engagement: a qualitative case study. J. Educ. Learn. 1(2), 252–267 (2012)
Fagan, M.E.: Design and code inspections to reduce errors in program development. IBM Syst. J. 15(3), 182–211 (1976). http://domino.research.ibm.com/tchjr/journalindex.nsf/495f80c9d0f539778525681e00724804/91d9f4f02fea9d9085256bfa00685ad3?OpenDocument
Bird, C., Bacchelli, A.: Expectations, outcomes, and challenges of modern code review. In: Proceedings of the International Conference on Software Engineering. IEEE, May 2013. https://www.microsoft.com/en-us/research/publication/expectations-outcomes-and-challenges-of-modern-code-review/
Kemerer, C.F., Paulk, M.C.: The impact of design and code reviews on software quality: an empirical study based on PSP data. IEEE Trans. Softw. Eng. 35(4), 534–550 (2009)
Sadowski, C., Söderberg, E., Church, L., Sipko, M., Bacchelli, A.: Modern code review: a case study at Google. In: International Conference on Software Engineering, Software Engineering in Practice Track (2018)
Johnson, P.M.: Reengineering inspection. Commun. ACM 41(2), 49–52 (1998). https://doi.org/10.1145/269012.269020
Github Inc.: Write better code (2020). https://github.com/features/code-review/. Accessed June 2020
Czerwonka, J., Greiler, M., Bird, C., Panjer, L., Coatta, T.: CodeFlow: improving the code review process at Microsoft. Queue 16(5), 81–100 (2018). https://doi.org/10.1145/3291276.3292420
Gerrit: Gerrit Code Review, June 2020. https://www.gerritcodereview.com/. Accessed Apr 2020
Rawat, S.: Getting Started with Review Board. Packt Publishing (2014)
Phacility Inc.: Discuss. Plan. Code. Review. Test. (2020). https://www.phacility.com/phabricator/. Accessed Apr 2020
Tatarchenko, E.: Analysis of performing code review in the classroom. Master’s thesis (2012). http://up.csail.mit.edu/other-pubs/elena-thesis.pdf
Kubincová, Z., Csicsolová, I.: Code review in high school programming. In: 2018 17th International Conference on Information Technology Based Higher Education and Training (ITHET), pp. 1–4 (2018)
Wind, D.K.: Teaching code review to university students, August 2017. https://towardsdatascience.com/teaching-code-review-in-university-courses-using-peer-feedback-5625fe039f2a. Accessed May 2020
Hundhausen, C.D., Agrawal, A., Agarwal, P.: Talking about code: integrating pedagogical code reviews into early computing courses. ACM Trans. Comput. Educ. 13(3), 1–28 (2013). https://doi.org/10.1145/2499947.2499951
Cohen, J.: White paper: 11 proven practices for more effective, efficient peer code review. IBM, Technical report, January 2011. https://www.ibm.com/developerworks/rational/library/11-proven-practices-for-peer-review/index.html
Meyer, B.: Design and code reviews in the age of the internet. Commun. ACM 51(9), 66–71 (2008). https://doi.org/10.1145/1378727.1378744
Stanfield, B.: The Art of Focused Conversation: 100 Ways to Access Group Wisdom in the Workplace. New Society Publishers, Gabriola Island, B.C (2000)
Aslam, H., Brown, J.A.: Affordance theory in game design: a guide toward understanding players. Synth. Lect. Games Comput. Intell. 4(1), 1–111 (2020)
de Carvalho, D., et al.: Teaching programming and design-by-contract. In: Auer, M.E., Tsiatsos, T. (eds.) ICL 2018. AISC, vol. 916, pp. 68–76. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-11932-4_7
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall Inc., Upper Saddle River (1997)
Rivera, V.: Code Review in the classroom, Data (2020). https://github.com/varivera/CodeReview. Accessed Apr 2020
Ng, V., Fai, C.M.: Engaging student learning through peer assessments. In: Proceedings of International Conference on E-Education, E-Business and E-Technology, ser. ICEBT 2017, pp. 30–35. ACM, New York (2017). https://doi.org/10.1145/3141151.3141165
Freeman, S., et al.: Active learning increases student performance in science, engineering, and mathematics. Proc. Natl. Acad. Sci. 111(23), 8410–8415 (2014). https://www.pnas.org/content/111/23/8410
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Rivera, V., Aslam, H., Naumchev, A., de Carvalho, D., Khazeev, M., Mazzara, M. (2020). Towards Code Review Guideline in a Classroom. In: Bruel, JM., Capozucca, A., Mazzara, M., Meyer, B., Naumchev, A., Sadovykh, A. (eds) Frontiers in Software Engineering Education. FISEE 2019. Lecture Notes in Computer Science(), vol 12271. Springer, Cham. https://doi.org/10.1007/978-3-030-57663-9_7
Download citation
DOI: https://doi.org/10.1007/978-3-030-57663-9_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-57662-2
Online ISBN: 978-3-030-57663-9
eBook Packages: Computer ScienceComputer Science (R0)