Abstract
This chapter focuses on computer science teaching methods that fit especially to be employed in the computer lab, where all learners work on computers (either on the school’s computer in a specific room or on their own laptops). The uniqueness of the computer lab as a learning environment for computer science is explained by the fact that it enables learners to explore their problem-solving strategies, to express their solutions to a given problem, to get feedback regarding to the correctness of their solution and to reflect on it, to develop large projects, to explore new topics, and to deepen their understanding of the nature of the algorithms they develop. The main purpose of the lessons in the MTCS course dedicated to this topic is to expose the students to usages of the computer lab as a learning environment and to let them realize how it may improve their future pupils’ understanding of computer science ideas. One of the main messages of this chapter is that the learning of computer science in the computer lab is not limited to programming tasks; rather, the computer lab can be used in additional pedagogical ways that further enhance learners’ understanding of computer science. Specifically, the following topics are addressed in this chapter: what is a computer lab?, the lab-first teaching approach, visualization and animation, and using online resources in computer science teaching.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Copyright © 2000 by Houghton Mifflin Company, Published by Houghton Mifflin Company.
- 2.
Source: http://en.wikipedia.org/wiki/Software visualization.
- 3.
- 4.
- 5.
Source: http://cs.joensuu.fi/jeliot/
- 6.
- 7.
See TOCE special issue on Initial Learning Environments (November 2010, vol. 10(4)) for a broader discussion of IDEs.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
References
Alqadi BS, Maletic JI (2017) An empirical study of debugging patterns among novices programmers. In: Proceedings of the 2017 ACM SIGCSE technical symposium on computer science education (SIGCSE ‘17). ACM, New York, pp 15–20
Ben-Bassat Levy R, Ben-Ari M (2007) We work so hard and they don’t use it: acceptance of software tools by teachers. In: Proceedings of the 12th annual SIGCSE conference on innovation and technology in computer science education, Dundee, Scotland, UK, pp 246–250
Ben-Bassat Levy R, Ben-Ari M (2008) Perceived behavior control and its influence on the adoption of software tools. In: Proceedings of the 13th annual SIGCSE conference on innovation and technology in computer science education, Madrid, Spain, pp 169–173
Buck JW, Perugini S (2018) An interactive, graphical simulator for teaching operating systems. In: Proceedings of the 50th ACM technical symposium on computer science education, Minneapolis, MN, USA, pp 1290. https://doi.org/10.1145/3287324.3293756
Friedman DP, Felleisen M (1986) The little LISPer. Science Research Associates, Inc. New York
Ilves K, Leinonen J, Hellas A (2018) Supporting self-regulated learning with visualizations in online learning environments. In: Proceedings of the 49th ACM technical symposium on computer science education, Baltimore, Maryland, USA, pp 257–262. https://doi.org/10.1145/3159450.3159509
Knorr EM, Thompson C (2017) In-Lab programming tests in a data structures course in C for non-specialists. In: Proceedings of the 2017 ACM SIGCSE technical symposium on computer science education, Seattle, Washington, USA, pp 339–344. https://doi.org/10.1145/3017680.3017766
Knox D, Wolz U, Joyce D et al (1996) Use of laboratories in computer science education: guidelines for good practice. Rep. of the Work. Group on Comput. Laboratories. Integrating Tech. into C.S.E. 6/96 Barcelona, Spain
Koning E, Adams JC, Hazlett CD (2018) Visualizing classic synchronization problems. In: Proceedings of the 50th ACM technical symposium on computer science education, Minneapolis, MN, USA, pp 1293. https://doi.org/10.1145/3287324.3293708
Lapidot T, Hazzan O (2005) Song debugging: merging content and pedagogy in computer science education. Inroads – SIGCSE Bull 37(4):79–83
Lee MJ (2013) How can a social debugging game effectively teach computer programming concepts? ICER‘13, San Diego CA USA, pp 181–182
Ma J, Nickerson JV (2006) Hands-on, simulated, and remote laboratories: a comparative literature review. ACM Comput Surv 38(3). Article 7
Mohammed M, Shaffer AS, Rodger SH (2018) Using interactive visualization and programmed instruction to teach formal languages. In: Proceedings of the 50th ACM technical symposium on computer science education, Minneapolis, MN, USA, pp 1263. https://doi.org/10.1145/3287324.3293795
Myller N, Bednarik R, Sutinen E et al (2009) Extending the engagement taxonomy: software visualization and collaborative learning. Trans Comput Educ 9(1):1–27
Naps T, Rößling G, Almstrum V et al (2003) Exploring the role of visualization and engagement in computer science education. SIGCSE Bull 35(2):131–152
Nersessian NJ (1991) Conceptual change in science and in science education. In: Matthews MR (ed) History, philosophy, and science teaching. OISE Press, Toronto, pp 133–148
Papert S (1980) Mindstorms: children, computers and powerful ideas. Basic Books Inc., New York
Paul J (2015) Using JFLAP to engage students and improve learning of computer science theory: tutorial presentation. J Comput Sci Coll 31(2):145–148
Paz T (2006). Introduction to computer science in Java, worksheet collection (Hebrew)
Perkins DN, Martin F (1986) Fragile knowledge and neglected strategies in novice programmers. In: Soloway E, Iyengar S (eds) Empirical studies of programmers. Ablex Publishing Co., Norwood, pp 213–229
Petre M (2011) Online Experimentation. ACM Inroads 2(1):18–19
Price B, Baecker R, Small I (1998) An introduction to software visualization. In: Stasko J, Domingue J, Brown M, Price B (eds) Software visualization. MIT Press, Cambridge, MA, pp 3–27
Rodger HS, Wiebe E, Min Lee K, Morgan C, Omar K, Su J (2009) Increasing engagement in automata theory with JFLAP. SIGCSE Bull 41(1):403–407. https://doi.org/10.1145/1539024.1509011
Rössling GJ, Velázquez-Iturbide JÁ (2009) Editorial: program and algorithm visualization in education. ACM Trans on Comput Edu (TOCE) 9(2)
Shaffer C A, Cooper M L, Alon A J D et al (2010) Algorithm visualization: the state of the field, ACM Trans Comput Educ. 9:2–9:22
Spohrer JG, Soloway E (1986) Analyzing the high frequency bugs in novice programs. In: Soloway E, Iyengar S (eds) Empirical studies of programmers. Ablex, Norwood, pp 230–251
Taghavi T, Thompson M, Pimentel AD (2009) Visualization of computer architecture simulation data for system-level design space exploration. In: Bertels K, Dimopoulos N, Silvano C, Wong S (eds) Embedded computer systems: architectures, modeling, and simulation. Lecture Notes in Computer Science, vol 5657. Springer, Berlin/Heidelberg, pp 149–160
Urquiza-Fuentes J, Velázquez-Iturbide JÁ (2009) A survey of successful evaluations of program visualization and algorithm animation systems. ACM Trans Comput Edu (TOCE) 9(2)
Walker HM (2011). A lab-based approach for introductory computing that emphasizes collaboration. In: Proceeding of CSERC ‘11 computer science education research conference, Heerlen, Netherlands, pp 21–31
Yehezkel C (2002) A taxonomy: visualization of computer architecture. SIGCSE Bull 34(3):101–105
Yehezkel C, Ben-Ari M, Dreyfus T (2007) The contribution of visualization to learning computer architecture. Comput Sci Educ 17(2):17–27
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Hazzan, O., Ragonis, N., Lapidot, T. (2020). Lab-Based Teaching. In: Guide to Teaching Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-030-39360-1_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-39360-1_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-39359-5
Online ISBN: 978-3-030-39360-1
eBook Packages: Computer ScienceComputer Science (R0)