Abstract
Many people are first exposed to code through web development, yet little is known about the barriers beginners face in these formative experiences. In this article, we describe a study of undergraduate students enrolled in an introductory web development course taken by both computing majors and general education students. Using data collected during the initial weeks of the course, we investigate the nature of the syntax errors they make when learning HTML and CSS, and how they resolve them. This is accomplished through the deployment of openHTML, a lightweight web-based code editor that logs user activity. Our analysis reveals that nearly all students made syntax errors that remained unresolved in their assessments, and that these errors continued weeks into the course. Approximately 20% of these errors related to the relatively complex system of rules that dictates when it is valid for HTML elements to be nested in one another. On the other hand, 35% of errors related to the relatively simple tag syntax determining how HTML elements are nested. We also find that validation played a key role in resolving errors: While the majority of unresolved errors were present in untested code, nearly all of the errors that were detected through validation were eventually corrected. We conclude with a discussion of our findings and their implications for computing education.
- A. Biemiller. 1977. Relationships between oral reading rates for letters, words, and simple text in the development of reading achievement. Read. Res. Q. 13, 2 (1977), 223--253.Google ScholarCross Ref
- A. F. Blackwell. 2002. First steps in programming: A rationale for attention investment models. In Proceedings of the IEEE Symposia on Human-Centric Computing Languages and Environments. 2--10. Google ScholarDigital Library
- J. Brandt, P. J. Guo, J. Lewenstein, M. Dontcheva, and S. R. Klemmer. 2009. Two studies of opportunistic programming: Interleaving web foraging, learning, and writing code. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 1589--1598. Google ScholarDigital Library
- K. Brennan and M. Resnick. 2012. New frameworks for studying and assessing the development of computational thinking. In Proceedings of the Annual Meeting of the American Educational Research Association. 1--25.Google Scholar
- P. Chandler and J. Sweller. 1996. Cognitive load while learning to use a computer program. Appl. Cognitive Psych. 10, 151--170.Google ScholarCross Ref
- R. Connolly. 2011. Awakening Rip Van Winkle: Modernizing the computer science web curriculum. In Proceedings of the Annual Conference on Innovation and Technology in Computer Science Education. 18--22. Google ScholarDigital Library
- C. L. Corritore and S. Wiedenbeck. 1991. What do novices learn during program comprehension? Int. J. Hum.-Comput. Int. 3, 2 (1991), 199--222.Google ScholarCross Ref
- A. Désilets, S. Paquet, and N. G. Vinson. 2005. Are wikis usable? In WikiSym. 3--15. Google ScholarDigital Library
- B. Dorn and M. Guzdial. 2010a. Learning on the job: Characterizing the programming knowledge and learning strategies of web designers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 703--712. Google ScholarDigital Library
- B. Dorn and M. Guzdial. 2010b. Discovering computing: Perspectives of web designers. In Proceedings of the International Computing Education Research Workshop. 23--29. Google ScholarDigital Library
- B. Du Boulay. 1986. Some difficulties of learning to program. J Educ. Comput. Res. 2, 1 (1986), 57--73.Google ScholarCross Ref
- T. Felke-Morris. 2011. Basics of Web Design: HTML5 and CSS3. Addison-Wesley, Boston, MA. Google ScholarDigital Library
- S. Fincher, J. Tenenberg, and A. Robins. 2011. Research design: Necessary bricolage. In Proceedings of the International Computing Education Research Workshop. 1--6. Google ScholarDigital Library
- B. Hartmann, D. MacDougall, J. Brandt, and S. R. Klemmer. 2010. What would other programmers do? Suggesting solutions to error messages. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 1019--1028. Google ScholarDigital Library
- M. C. Jadud. 2006. Methods and tools for exploring novice compilation behaviour. In Proceedings of the International Computing Education Research Workshop. 73--84. Google ScholarDigital Library
- F. Klassner. 2000. Can web development courses avoid obsolescence? In Proceedings of the Annual Conference on Innovation and Technology in Computer Science Education. 77--80. Google ScholarDigital Library
- B. B. L. Lim. 1998. Teaching web development technologies in CI/IS curricula. In Proceedings of the ACM Technical Symposium on Computer Science Education. 107--111. Google ScholarDigital Library
- R. Mercuri, N. Herrmann, and J. Popyack. 1998. Using HTML and JavaScript in introductory programming courses. In Proceedings of the SIGCSE Technical Symposium on Computer Science Education. 176--180. Google ScholarDigital Library
- C. S. Miller, L. Perkovic, and A. Settle. 2010. File references, trees, and computational thinking. In Proceedings of the Annual Conference on Innovation and Technology in Computer Science Education. 132--136. Google ScholarDigital Library
- M. Nienaltowski, M. Pedroni, and B. Meyer. 2007. Compiler error messages: What can help novices? In Proceedings of the SIGCSE Technical Symposium on Computer Science Education. 168--172. Google ScholarDigital Library
- S. Papert and I. Harel. 1991. Situating Constructionism. In Constructionism. S. Papert and I. Harel (Eds.). Ablex Publishing Corporation, 1--13.Google Scholar
- T. H. Park and S. Wiedenbeck. 2011. Learning web development: Challenges at an earlier stage of computing education. In Proceedings of the International Computing Education Research Workshop. 125--132. Google ScholarDigital Library
- T. H. Park, R. M. Magee, S. Wiedenbeck, and A. Forte. 2013a. Children as webmakers: Designing a web editor for beginners. In Proceedings of the Conference on Interaction Design and Children. 419--422. Google ScholarDigital Library
- T. H. Park, A. Saxena, S. Jagannath, S. Wiedenbeck, and A. Forte. 2013b. Towards a taxonomy of errors in HTML and CSS. In Proceedings of the International Computing Education Research Workshop. 75--82. Google ScholarDigital Library
- R. D. Pea, E. Soloway, and J. C. Spohrer. 1987. The buggy path to the development of programming expertise. Focus on Learning Problems in Mathematics 9, 1 (1987), 5--30.Google Scholar
- J. Rasmussen. 1983. Skills, rules, and knowledge; Signals, signs, and symbols, and other distinctions in human performance models. IEEE Trans. Syst., Man, Cybern. 13, 3 (1983), 257--266.Google ScholarCross Ref
- D. Reed. 2001. Rethinking CS0 with JavaScript. In Proceedings of the SIGCSE Technical Symposium on Computer Science Education. 100--104. Google ScholarDigital Library
- M. B. Rosson, J. F. Ballin, and H. Nash. 2004. Everyday programming: Challenges and opportunities for informal web development. In Proceedings of the Symposium on Visual Languages and Human-Centric Computing. 123--130. Google ScholarDigital Library
- M. B. Rosson, J. F. Ballin, and J. Rode. 2005. Who, what, and how: A survey of informal and professional web developers. In Proceedings of the Symposium on Visual Languages and Human-Centric Computing. 199--206. Google ScholarDigital Library
- J. C. Spohrer and E. Soloway. 1986. Novice mistakes: Are the folk wisdoms correct? Commun. ACM 29, 7 (1986), 624--632. Google ScholarDigital Library
- K. Sridharan. 2004. A course on web languages and web-based applications. IEEE Trans. Educ. 47, 2 (2004), 254--260. Google ScholarDigital Library
- A. Stefik and S. Siebert. 2013. An empirical investigation into programming language syntax. ACM Trans. Comput. Educ. 13, 4 (2013), 1--40. Google ScholarDigital Library
- K. Treu. 2002. To teach the unteachable class: An experimental course in web-based application design. In Proceedings of the SIGCSE Technical Symposium on Computer Science Education. 201--205. Google ScholarDigital Library
- E. L. Walker and L. Browne. 1999. Teaching web development with limited resources. In Proceedings of the SIGCSE Technical Symposium on Computer Science Education. 12--16. Google ScholarDigital Library
- Y. D. Wang and N. Zahadat. 2009. Teaching web development in the Web 2.0 era. In Proceedings of the ACM Special Interest Group for Information Technology Education. 80--86. Google ScholarDigital Library
- C. Watson, F. W. B. Li, and J. L. Godwin. 2014. No tests required: Comparing traditional and dynamic predictors of programming success. In Proceedings of the ACM Technical Symposium on Computer Science Education. ACM, New York, New York, 469--474. Google ScholarDigital Library
- S. Wiedenbeck. 2005. Factors affecting the success of non-majors in learning to program. In Proceedings of the International Computing Education Research Workshop. 13--24. Google ScholarDigital Library
- World Wide Web Consortium. 2014. Why Validate? Retrieved from http://validator.w3.org/docs/why.html.Google Scholar
Index Terms
- An Analysis of HTML and CSS Syntax Errors in a Web Development Course
Recommendations
Towards a taxonomy of errors in HTML and CSS
ICER '13: Proceedings of the ninth annual international ACM conference on International computing education researchAs part of a larger research agenda to explore web development as a context for learning computational literacy skills, we investigate errors people make while writing code in HTML and CSS. We report on a lab-based study in which 20 participants were ...
Comments