It started innocently enough as Twitter conversations are want to do. Eric Williams, a school superintendent in Virginia, posted a tweet about computer science and linked to an article about teaching HTML as important for internet literacy.
As Internet conversations (in 140 characters or less especially) often do we went into a little bit of a different direction – that of discussing if HTML was or was not computer science. It may have been my fault with this Tweet. Please pretend not to notice the typo.
In any case Eric brought up the confusion about what is and is not computer science and that is an important question. Mike Zamansky, computer science educator from New York’s Stuyvesant high school, added his two bits with this Tweet linking to an article on why HTML is not a programming language.
And off we go in another tangent because while programming is an important part of computer science it isn’t the end all and be all of it either. People often do think that programming is computer science rather than a part of computer science. (I doubt Mike is in that category but it is important that HTML is not a programming language.)
So circling back to the beginning. Yes there is a lot of confusion and disagreement over what computer science is and is not. The Computer Science Curricula 2013
(CS2013) (Ironman v1.0 draft is now available here. ) for undergraduate computer science education runs some 376 pages describing what should go into a computer science curriculum. Though no one expects anyone to learn it all in just four years of university education.
HTML is not listed as a required topic anywhere. In fact it shows up only in an elective area as one of several web programming languages as HTML5 along with CSS, PHP and others. So clearly, according to the ACM/IEEE CS2013 (full disclosure – I’m on the task force), a university can have a solid computer science curriculum without teaching HTML.
That’s at the university level so what does that mean for high schools? Well that depends on what the purpose of your curriculum is. Web development and design is a critical skill and knowledge set today. If you are a career/technical school one could reasonably argue that you had better be preparing students for web design and programming. In my opinion a solid understanding of HTML, HTML 5, CSS and more is critical there.
If you are preparing students to further academic student in computer science HTML, CSS etc. is still useful but it is hardly as one person suggested in Twitter as important as arrays. I do think students should have some exposure to markup languages as a topic though. What markup language they use can vary from XML (for SQL and databases for example), XAML (for Windows 8 and Windows Phone development), HTML for the web or any of several other widely used markup languages. The concept is important and becoming more so all the time.
Does web development belong in the computer science department in a high school? Probably. Can you have a solid academic computer science program without HTML and web development? I would say yes. The field is huge and programming is a lot more important (today) than web development using HTML.
That being said a course that included more than just HTML and CSS with some real code behind the front end could be a powerful and unarguably “real computer science” course. Including HTML/web development as part of a larger computer science course (as the Exploring Computer Science curriculum does) can make the course more relevant and useful to more students. There is no question that web fluency includes HTML and that we need a lot more web fluency in our population.
And oh yes, real computer science should be required for all high school students. In fact starting in high school is really too late. We should start earlier.