As we continue through our public beta phase, site definition remains rather important. The decisions made in the next few weeks will guide the site for a long time to come. They will also help us when it is time to Make the help center more helpful.
As Computer Science educators there are many things to deal with, or issues as they are sometimes labeled. Some directly relate to the subject matter of computer science. Others relate to the way the classroom is managed. There are even issues that don't relate specifically to computer science or the classroom. Many of the problems encountered outside the scope of the subject matter itself are common to most educators, regardless of the subject matter, and may, or may not, be modified by the subjects taught.
As I perceive this site within the whole of the Stack Exchange network, it is a resource for Computer Science educators, but not the resource. It should not aim to be the one true and correct source for all things any CS instructor needs to know. Rather, it should fill in some of the gaps left by existing communities in the Stack Exchange network. Some of the communities that exist, which a CS instructor could use are: (If I missed a good one, let me know, or edit it in.)
- Specific issues with computer software, hardware or networking (including the operating system when things don't work anymore)
- Specific programming problems
- Software algorithms
- Coding techniques
- Software development tools
Computer Science Stack Exchange - Useful for theoretical questions about:
- algorithms, models of computation
- programming language semantics, formal methods
- computer architecture, networks
- machine learning, artificial intelligence, knowledge representation, natural language processing
- vision, graphics
Code Review Stack Exchange - Useful for working samples of program code that you plan to use for your class and want a review relative to:
- Best practices and design pattern usage
- Security issues
- Correctness in unanticipated cases
When, however the issue deals with presenting the material to the students, that's where we shine. That's what makes this site a unique, and useful, part of the Stack Exchange network.
What none of those sites, and with the possible exceptions of Academia and Mathematics Educators, none of the rest of the network sites address, are the issues outside our subject matter that instructors have to address. Things like:
- Classroom management
- Environment of the classroom
- Educational "Best Practices"
- Curriculum and lesson development
- Intra-institutional and interdepartmental relations
- Parent-teacher relations
- Student engagement
- and more that don't come to mind, but will be encountered eventually
In deciding what is "on-topic" for our site we will have to draw some lines that might be uncomfortable, as it could result in questions that have no home on the Stack Exchange network. As well, there will likely be issues that CS educators have to deal with that are just so far from our core as to be "off-topic," in spite of our personal wishes.
For questions that directly relate to the subject, Computer Science, the lines are not quite so hard to find. If it is about teaching, either presentation, explanation to the students, lesson ideas, etc., then it probably is on-topic. If it's about explaining to the instructor about what the theory is, or how something works, that's probably better on one of the sites above. A recent example of this is probably How to teach random number generator algorithms?
Similarly, though a bit tougher, is whether or not the subject is computer science, or is it only computer related? Teaching number theory, while useful, if not important, in some cases, probably is not on-topic here. How to use a software, as a user, such as Office products and web browsers, or how to send email, draw graphics, and orgainize files, isn't computer science, it's computer literacy. What about mail-merge or macros in Word? I don't know. Maybe it comes down to how much it's "theory" and how much it's "usage". Do we draw the line that says Excel macros are out, VB scripts in Excel are in? Again, I don't know. I can speculate, however, that the father we drift from "computer science" toward "information technologies" and "computer literacy", the more diluted the site will become, and the less effective it will be for it's envisioned purpose.
For questions that relate to conducting the class, things get a lot murkier. Classroom management, something every instructor has to address on a daily basis, is a solid gray zone of complications. How to deal with out-of-norm students can depend on why, and how, they are out-of-norm. The misbehaving student is a discipline issue, and not for here. The over/under achiever might be for here. The overachiever, if challenged with advance material might become a class asset, or he might become a discipline problem all his own. Some questions that fall in this group are:
Classroom Management, heavily CS related
Classroom Management, not specifically CS related
How to explain to the Dean what it is that you really teach seems on-topic, while explaining why you need to upgrade the classroom's computers, or raise the budget, seems off-topic. How to integrate GitHub into student projects, or use it for lesson plans and project materials seems good. How to set up a GitHub repository, how to do push, pull, commit, etc. on GitHub doesn't seem like it's appropriate for here.
To tie it all together, and cut it into pieces, I think part of what I see happening is that things are being accepted, or rejected, based on personal responses similar to "I would like to know that too," and "we don't do that here," or "that's the way everyone else in my district does it." There are going to be some things that our users have to do, that just are not related to the site. The middle school instructor that has to be "hall monitor" for 1 period each day is still a CS educator, but how to deal with the school bully just isn't a question that fits here. Same thing applies to budget requests, writing quarterly reviews, and who knows what else some of us have to endure, just to have the privilege of teaching computer science to students that may not listen.
In between the subject matter we teach and the management of the classrooms lies a range of potential topics (with current sample questions):
Tools and software
Methods and objectives, possibly indirect relation to CS
Institutional and Extra-curricular issues
Lastly, to travel full circle, I'll return to the subject matter. Deciding what subjects to consider as "Computer Science" for this site does not need to be tied to any other organisation, or other Stack Exchange site. If Computer Science Stack Exchange chooses to accept as on-topic something that we do not, or they reject something as off-topic that we want to consider on-topic, that is acceptable. This is our site, not an annex of that site. Similarly, merely because the CS department, or the one CS instructor, of a school, or district teaches a given subject does not make it a CS subject. For years reproductive education was taught by the athletics department, yet most people would not classify that as an athletics, or sports, subject. In that line, an example of a recent question that "sounds" like it fits, but does not, is While giving an introduction to the Internet, should I talk about the risks?.
For most of the examples given, I am not saying they are good or bad, high-quality or low-quality, or even "on-topic" or "off-topic". I merely use them as examples of current questions that apply to a certain category, and that can be used to discuss what, or how much, is going to be considered on-topic as we move forward.