Lab-Based Teaching

  • Orit HazzanEmail author
  • Tami Lapidot
  • Noa Ragonis


This chapter focuses on computer science teaching methods that fit especially to be employed in the computer lab. 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 aim of the lessons in the MTCS course that are 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 the Internet in the teaching of computer science.


Computer Science Learning Environment Software Visualization Teaching Situation Algorithm Visualization 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Ben-Bassat Levy R, Ben-Ari M (2007) We work so hard and they don’t use it: Acceptance of software tools by teachers. Proc. of the 12th Annu. SIGCSE Conf. on Innov. and Technol. in Comput. Sci. Educ., Dundee, Scotland, UK; 246–250Google Scholar
  2. Ben-Bassat Levy R, Ben-Ari M (2008) Perceived behavior control and its influence on the adoption of software tools. Proc. of the 13th Annu. SIGCSE Conf. on Innov. and Technol. in Comput. Sci. Educ., Madrid, Spain: 169–173Google Scholar
  3. Friedman D P, Felleisen M (1986) The little LISPer. Science Research Associates, IncGoogle Scholar
  4. 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, SpainGoogle Scholar
  5. Lapidot T, Hazzan O (2005) Song debugging: Merging content and pedagogy in Computer Science education. Inroads – the SIGCSE Bull. 37(4): 79–83CrossRefGoogle Scholar
  6. Ma J, Nickerson J V (2006) Hands-on, simulated, and remote laboratories: A comparative literature review. ACM Comput. Surv. 38(3), Article 7Google Scholar
  7. Myller N, Bednarik R, Sutinen E et al (2009) Extending the engagement taxonomy: Software visualization and collaborative learning. Trans. Comput. Educ 1(9): 1–27CrossRefGoogle Scholar
  8. 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–152CrossRefGoogle Scholar
  9. Nersessian N J (1991) Conceptual change in science and in science education. In Matthews M R (ed.). History, philosophy, and science teaching. OISE Press, Toronto, Canada, 133–148Google Scholar
  10. Papert S (1980) Mindstorms: Children, computers and powerful ideas. Basic Books IncGoogle Scholar
  11. Paz T (2006). Introduction to computer science in Java, worksheet collection (Hebrew)Google Scholar
  12. Perkins D N, Martin F (1986) Fragile knowledge and neglected strategies in novice programmers. In Soloway E, Iyengar S. (eds.). Empir. Stud. of Program. Norwood, NJ: Ablex Publishing Co.: 213–229Google Scholar
  13. Price B, Baecker R, Small I (1998) An introduction to software visualization. In Stasko J, Domingue J, Brown, M, Price B (eds). Softw. Vis.: 3–27, Cambridge, MA: MIT PressGoogle Scholar
  14. Rössling G J, Velázquez-Iturbide J Á (2009) Editorial: Program and algorithm visualization in education. ACM Trans. on Comput. Edu. (TOCE) 9(2)Google Scholar
  15. Shaffer C A, Cooper M L, Alon A J D et al (2010) Algorithm visualization: The state of the field, ACM Trans. on Comput. Educ. 9:2–9:22Google Scholar
  16. Spohrer J G, Soloway E (1986) Analyzing the high frequency bugs in novice programs. In Soloway E, Iyengar S (eds.) Empir. Stud. of Program., Norwood, NJ: Ablex: 230–251Google Scholar
  17. Taghavi T, Thompson M, Pimentel A D (2009) Visualization of computer architecture simulation data for system-level design space exploration. embedded computer systems: Architectures, modeling, and simulation. Lect. Notes in Comput. Sci., Vol. 5657/2009: 149–160Google Scholar
  18. Urquiza-Fuentes J, Velázquez-Iturbide J Á (2009) A survey of successful evaluations of program visualization and algorithm animation systems. ACM Trans. on Comput. Edu. (TOCE) 9(2)Google Scholar
  19. Yehezkel C, Ben-Ari M, Dreyfus T (2007) The contribution of visualization to learning computer architecture. Comput. Sci. Educ 2(17):17–27Google Scholar
  20. Yehezkel C (2002) A taxonomy: Visualization of computer architecture. SIGCSE Bull 34(3):101–105CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2011

Authors and Affiliations

  1. 1.Dept. Education in Technology & ScienceTechnion - Israel Institute of TechnologyHaifaIsrael
  2. 2.Computer Science Studies, School of EducationBeit Berl CollegeDoar Beit BerlIsrael

Personalised recommendations