The better question would be: If CS were taught in as many classes as English in K-12, what would 12th grade English look like?
To address the question posed, though, I would posit that 12th grade CS would not benefit substantially. Very advanced CS relies on topics from math and other areas which can only be developed gradually. There's no point in teaching efficient algorithms for Newton's Method or Runge-Kutta to a student who hasn't even had entry level calculus.
I would advocate more teaching of CS in elementary education not for the virtues of CS, but for the structure it brings to much else that is taught at that level. Teaching principles of logic in English or Science, and then putting those principles into practice with a simple program would help to reinforce what's already being taught.
class student extends DidntPayAttention
implements IForgot, Entitled, CantSpell, Unaccountable {
public void learnCS(InputStream education) {
int pagesInTextbook = education.available();
while (0 < pagesInTextbook) {
education.skip(pagesInTextbook);
AmericanIdol.open();
Twitter.send('@kidAcrossRoom','omg rofl did u see Amaricun Idal');
}
};
I don't think it would look that different than what 12th grade CS already looks like. Maybe a project class that could follow the data structures course already taught in some schools?
To address the question posed, though, I would posit that 12th grade CS would not benefit substantially. Very advanced CS relies on topics from math and other areas which can only be developed gradually. There's no point in teaching efficient algorithms for Newton's Method or Runge-Kutta to a student who hasn't even had entry level calculus.
I would advocate more teaching of CS in elementary education not for the virtues of CS, but for the structure it brings to much else that is taught at that level. Teaching principles of logic in English or Science, and then putting those principles into practice with a simple program would help to reinforce what's already being taught.