# How does Computer Science Education fit into the community (if at all)?

Since we're a relatively new community, I figured it was a good time to ask what people think about computer science education and how it fits into the community.

A couple of relevant points:

1) Several questions so far have been asked from people in our community who are teaching math in the context of computer science. (Full disclosure: I come from this perspective!)

2) CS and Math are definitely related. There are questions that are strictly on the math side, and there are others that are strictly on the CS side--but certainly there is a lot of overlap as well.

3) One way to go would be to make a distinct proposal for a "Computer Science Educators" SE on Area 51. But, because of the overlap, perhaps this isn't the best idea.

What does everyone think?

I think we should make a distinction: theoretical computer science (algorithms, graph theory, automata theory, etc.) and practical computer science (databases (e.g. Oracle, Postgres, MySQL, etc., not theory of databases), design patterns, networking (i.e. how to connect two computers with a cable, not designing a synchronization protocol with some worst-case bounds), and so on).

Theoretical computer science is math. I would gladly see such questions here, as the topic shares much of the same spirit as "pure" math: among others discovering new patterns and proving theorems. There is a huge overlap in teaching topics. All of my (limited) teaching experience consists of working with computer-science crowd, so perhaps I can try answering some of those questions.

Practical computer science is far from math. Most of it consists of good practices and handling human errors. In my opinion this is not a good fit this site, teaching practices vary a lot and majority of common points would fit general education, not mathematical education.

Edit: some clarification.

• While I think it would be unfair to say that practical computer science is not science, it certainly is not math. Mar 17 '14 at 4:48
• This is sort of the opinion I was expecting, and I have no problem with it. I do have a problem with what is effectively "name calling". Especially since much of databases, compilers, networking, and other so-called "practical computer science" fundamentally relies on various forms of math, anyway. Mar 17 '14 at 6:50
• @adamblan For you it's "name calling" because it seems you consider "not being a science" an insult. It is definitely not, I hold those guys in great respect, in fact I believe they, in many cases, do more useful work than the rest of us. Moreover, relying on math is not enough a characteristic for something to be a science, for example biology does not and it is science, while financial institutions do rely and they are not doing science (sometimes they do, but rarely). Mar 17 '14 at 8:47
• I agree that I don't see the purpose of arguing whether practical computer science is a science, and that raising this issue could be construed as unnecessarily combative. The pertinent question is to what extent questions on computer science education can be relevant to a math education audience. The definition of science doesn't enter into it. Mar 17 '14 at 16:32
• @adamblan I've no particular attachment to labels, so I have changed the post, let us not dwell on nonconstructive arguments. Mar 17 '14 at 16:44
• Most of "practical computer science" has a place in other sites here, i.e., Unix&Linux, Stackoverflow, Superuser, Serverfault, DBA, and I'm sure I'm leaving out some. Mar 27 '14 at 19:35

In general, and especially at this early stage, I would vote for erring on the side of inclusiveness.

What this means is: if you would like to post questions on computer science education (especially about the part that overlaps with math), there's nothing stopping you. I imagine some users who disagree might try to close the questions, but I don't see any harm in trying it.

That being said, I think the main obstacle to posting questions about computer science education is that there might not be anyone here who's very knowledgeable about computer science education. So even if your question isn't closed, you might find that you don't get any helpful answers.

In any case, my suggestion would be that you try posting a computer science question, and see how it goes. At the very least, this will generate something specific that we can talk about.

• I agree with your answer. I think, a few people here work at the field of numerics (like I do) and are able to answer some questions or ask some since numerics is usually the course which is most related to computer science. Also, in many school math teachers are the ones who are choosen to teach computer science related courses. But I would also say it has to be somehow related to mathematics. Mar 15 '14 at 22:48
• So, I guess, a related follow-up is: I know (and am a part of) a community of people who teach computer science. If I were to invite them, that would generate an in-flux of computer science questions. My guess is they would relate to teaching introductory programming, perhaps teaching upper level computer science, etc. Before anyone does something like this, I think it's worth a discussion on if it's the right thing to do. I don't want to step on anyone's toes, but I also think the two communities could definitely mutually benefit! Mar 15 '14 at 23:11
• @adamblan That's a thornier question. I would start by posting a few computer science questions to see what the community thinks. If that goes well (meaning the questions aren't closed), it would probably be reasonable to invite some other computer science teachers. It might also make sense to wait on the invitations until this site is slightly more established (e.g. in a week or two, when we reach the public beta). Mar 15 '14 at 23:36
• Yeah, I wasn't going to invite everyone right away for sure. I just wanted to see what various people in the community thought. I could easily see it being a separate stack exchange or part of this one depending on interest and how people feel. Mar 16 '14 at 1:04
• @adamblan Once this site is a little better established, I'm guessing that we could accommodate a small community of computer science educators. If at any point this site becomes overwhelmed with computer science questions, you would be able to branch off to a new site. Mar 16 '14 at 1:13
• I don't see an issue with inviting computer science teachers, but the questions should still fall roughly within the realm of math ed. Mar 17 '14 at 4:49
• @adamblan, I teach CS. And I'd actively close questions that aren't mathemathics related here. Programming? No! Prove that a program is correct? Probably no. Prove some algorithm is correct? Depends. Mar 27 '14 at 19:30

For full disclosure, I have a (not very popular) proposal up on Area 51 for Computer Science Educators templated after this site. I say this just to make sure any biases are clear from the start.

I, personally, think this is a thorny issue. Clearly theoretical computer science is math, and one could rather successfully argue that it's pure, absolute math in a way Physics and Engineering aren't. In that way, questions here on theoretical CS seem on topic.

However, as a matter of tradition, I should point out that there is Stack Exchange precedence for separating them. The Theoretical Computer Science Stack Exchange site exists, and is relatively active despite Math Overflow and Math SE existing. Even though most of those questions would, strictly, probably fit on either. In fact, there are certainly questions on Math SE about DFAs and Graph Theory and all sorts of great things that fit on CS Theory. So they're... on topic and not at the same time?

Another, much weaker, argument is that mathematics people and CS people frequently use different language. For any educator with an interest in going to a specialist CS/Math Education site it shouldn't be a huge deal to code switch. Still, I definitely find that both here and in my every day life math people and CS people can express the same thing in wildly different manners and having a place for people who "think" another way could be beneficial. Of course, a perfectly valid counterargument is that we want a wide range of expert perspectives here, and it's not one I disagree with!

My main concern is the sketchy Venn Diagram between the disciplines. There's an awkward scenario where you can find plenty of interesting, important questions that are off topic here ("What does the research say are good qualities in a first programming language for college students?" "How should I approach design patterns?") But plenty that are (such as the DFA/unreachable state question we had, which works on either). It seems to make sense to throw everything that can be here here, and then make the other site the remainder but it seems a bit sketchy to say "you can talk about teaching databases here, but relational algebra over there; this question goes here if it's about teaching how to write a FSM in Java, but there if it's about teaching DFA/NFA equivalence; concurrent patterns go here; concurrent algebra there" etc etc and it all gets a bit fuzzy and confusing.

I'm not sure there's a great answer. Overall, just like theoretical CS questions are still relatively on topic on Math SE, I vote that questions about teaching theoretical CS belong here. However, whether CS Educators is dead in the water or not (sadly, it looks dead in the water-ish to me as it stands), I do think it's at least a good idea to keep in mind concerns about heavily overlapping disciplines.

• Where exactly does the difference lie between "what is a good programming language to teach to beginners" and "is $df/dx(x)$ better than $f'(x)$ when teaching beginners"? Jun 22 '14 at 16:13

In addition to what you mentioned, there is the idea of teaching math using computer science. Specifically, using programming. There are many examples, one of which is Bootstrap.

There is plenty of relevance there; at the most simple level, programming projects can be great contexts for applying and exploring with math knowledge. The educational opportunities are obvious.

But, more generally, maintaining some overlap means greater membership and possible diversity of ideas. The question "has anybody tried X in classrooms?" (where X is something that is more solidly on the computer science education side, but relevant to mathematical reasoning or mathematical practices) may not yield answers about specific research on X, but it does make the site more valuable if the idea is helpful to educators who might not have thought of it otherwise, or if it gives a researcher an idea for a study.

There is now a Computer Science Educators Stack Exchange and it is currently in beta. I suggest that questions that are more related to computer science education rather than to mathematics education be posted there instead of here.