Re:ACM Urges Obama To Include Computer Science in k-12 Educa...
by gaius on Friday December 26, 2008 @04:41PM
(#410439)
We had this discussion on another thread and concluded that Java's a very bad introduction to programming. To understand even Hello, World requires an enormous amount upfront:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
What's a class? Why does the name of my class have to be the same as the name of the file (and why do I have to rename it on the disk if I change it?) What's "public", "static" and "void" mean? What's an array? What're arguments? Why is String capitalized when main isn't? What is this System business, why can't I just print? Why do I have a semicolon on the end of that line?If you want to teach people you've got to start from the freedom of using a suitable language, which means to all practical purposes LOGO, BASIC or Scheme.
10 PRINT "HELLO, WORLD!"
Or (display "Hello, world!")
Re:ACM Urges Obama To Include Computer Science in k-12 Educa...
by jackowayed on Friday December 26, 2008 @04:54PM
(#410457)
that could well be the case, but do you think that schools around the nation will be able to find great programming teachers that understand teaching programming?
I've taught basic programming to a lot of people, and I find that the problem is on the other side:
Teaching programming is something that not everyone understands, and learning from those who just don't understand teaching programming is a monumental task.
Students come in with different views of the world - some of them have the metaphorical analogies in place to understand scope and curly brackets as "boundaries" or "bags", others don't. Explain it to them.