Everybody is entitled to an opinion but in science, including computer science education, there can be evidence that some things really do work. In the context of the Scalable Game Design project we have explored and evaluated a strategy for teacher professional development. As far as I can tell this is the largest study of its kind:
Abstract: An educated citizenry that participates in and contributes to Science Technology Engineering and Mathematics innovation in the 21st century will require broad literacy and skills in computer science. School systems will need to give increased attention to opportunities for students to engage in computational thinking and ways to promote a deeper understanding of how technologies and software are used as design tools. However, K-12 students in the United States are facing a pipeline for computer science education that is broken. In response to this problem we have developed the Scalable Game Design curriculum based on a strategy to integrate computer science education into the regular school curriculum. This strategy includes opportunities for students to design and program games and Science Technology Engineering and Mathematics simulations. An approach called Computational Thinking Pattern Analysis has been developed to measure and correlate computational thinking skills relevant to game design and simulations. Results from a study with over 10,000 students demonstrate rapid adoption of this curriculum by teachers from multiple disciplines, high student motivation, high levels of participation by women and interest regardless of demographic background.
If you read a recent report by Google exploring why women are not interested in participating in computing you see that the top two adjectives describing their perception are "hard" and "boring." However, there is good news: with the right kind of tools (Computational Thinking Tools instead of cumbersome coding tools) and the right kind of domain orientation one can transform “Hard and Boring” into “Accessible and Exciting"
https://sgd.cs.colorado.edu/wi...
NSF is a US government foundation supporting science through grants. They are NOT developing anything nor are they patenting anything. NSF is funding organizations, mostly universities, but has a clear disclaimer statement: "Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."
The original article does not make any such claims and indeed states "a research project funded by the National Science Foundation" - the poster, EditorDavid, should have been a bit more careful.
Congratulations to owning a - probably one inch thick - laptop computer that is so old that it can directly connect to an antique East European video projector.
Oh what crazy irony. Jason obviously does not understand what coding even is. His example:
My kids can come in here and decide to make a device where if my son squeezes his teddy he will send me a tweet to say, ‘I love you.’ Or if you walk through a laser tripwire it will set off an alarm. It interacts with actual hardware, actual code and all it requires is a squeeze, a drag-and-drop and a little imagination.”
This is - guess what - CODING. When you do this: IF press(teddy) THEN say('I love you') using drag and drop it is called coding! I should know with AgentSheets we started drag and drop programming 20 years ago. Happy programming.
If you want to drive around in town get a car. Don't buy a lawnmower and extend it into a car-like thing. The thing you build would not be pretty, practical and probably not even, in the end, very cheap. If you want to learn how to build a car - maybe - get a lawnmower...
The article suggest that "Only far eastern countries such as Singapore and China outperform the Nordic nation in the influential Programme for International Student Assessment (PISA) rankings."
NOT true! This is based on the much older PISA study. According to the new one Lichtenstein and Switzerland are ranked before Finnland. Get your facts straight!
new wallpaper settings in just 2 years...
on
Xfce 4.12 Released
·
· Score: 0
Yeah... If this is really true that highlights include new wallpaper settings after only 2 years of "hard work" than I really must have this!
When Dijkstra suggested that "It [anthropomorphizing] invites the programmer to identify himself with the execution of the program" he was a bit confused about the notion of anthropomorphization. To attribute human behaviors to objects, i.e., to anthropomorphize, is very different from projecting oneself into an object. Papert called this projection, e.g. to program a virtual or physical turtle, body syntonicity. There certainly is evidence that this can be a useful thing to do to write or debug programs.
I fail to see the relevance of the example provided by the recent article for or against OO. The code in both cases is essentially the same. Just because there is no explicit class teacher does not mean that example #1 is not OO. There are really cases in which OO does lead towards certain implementation approaches that are inefficient or overly complex for no good reason. Search for "Antiobjects" to find some examples where OO would suggest to put certain behavior into a certain classes in ways that may result in very complex code. The Antiobject approach, in contrast, can lead to a very simple solution. The two approach are not only different in terms of perspective and where the code really goes but in terms of actual code. An example would be to compare a concurrent search, e.g., multiple ghost tracking down a pac-man. In the traditional OO approach one would be tempted to put the complex, e.g., A*-based "AI" into the ghosts. In the antiobject approach one would put the tracking code into the background, e.g., the tiles and walls of a maze to implement, say, a Collaborative Diffusion approach. The collaborative diffusion approach is not only trivial to implement but also results in sophisticated collaboration patterns that would be much more difficult to match with approaches flavored by traditional OO design.
I was lucky enough to gather some parallel programming experience on the Connection Machine CM2, a 64k CPU (yes that is 65536 CPUs), 12 dimensional hypercube, a long time ago. The CM2 ultimately failed but we did get many great insights into parallel programming. At the time it was just not feasible for low cost, on your desktop, computing. It is NO problem to keep massive numbers of cores busy doing interesting computing. OK, the 12 dimensions are less clear on how to use them. At any rate, to claim that there is no need for 100 cores or more is really small minded because unlike the time when silly "the world does not need more than 5 computer" kinds of comments were made we already have evidence that there are powerful ways to employ massive parallel computing that can use thousands or even millions of cores.
Just because we are being caught in a sequential programming mindset does not mean that there is no room for parallel programming. If you are looking at a two dimensional array of data and think of a nested loop you ARE caught in a sequential programming mindset. Additionally, famous people, including Dijkstra, have poopooed some algorithms that are inefficient when execute sequentially to the point where researcher, or programmers, are not even looking any more for good parallel execution. Take bubble sort. Not sure it was Dijkstra but somebody suggested to forbid it. Yes, on a sequential computer bubble sort is indeed inefficient but guess what. If communication does matter and if you are using a massively parallel architecture (i.e., not 4 cores) bubble sort becomes quite efficient because you only need to talk to your data neighbors. Likewise there are AI algorithms that can be shown to be behave really well when conceptualized and executed in parallel. Collaborative Diffusion is an example:
http://www.cs.colorado.edu/~ra...
Computational Thinking Patterns is a framework to explore and describe game play in ways that is independent from programming language. These patterns are based in phenomenology. These patterns are used in the Scalable Game Design project and mentioned by teachers are one of the most important abstractions that help student to analyze and build games. The same patterns are used to also build STEM simulations. Through theses patterns there is transfer from game design to STEM simulation building:
http://sgd.cs.colorado.edu/wik...
AgentCubes online features an hour of code tutorial that allows you to make a 3D game in a browser. This is the first 3D browser based programming environment and includes making your own 3D shapes. The CS EdWeek / hour of code tutorial is about a 3D Frogger game but you can build a huge spectrum of games ranging from simple 1980 arcade style games to sophisticated AI SIMS-like games:
http://sgd.cs.colorado.edu/wik...
Proof that this is simple to do (Fox New 31 TV Anchorman makes a game with AgentCubes):
http://kdvr.com/2013/12/10/kid...
AgentCubes online is used in many schools and has been funded by the National Science Foundation.
Scalable Game Design with AgentCubes online (http://scalablegamedesign.cs.colorado.edu https://www.agentcubesonline.c... fits the bill as it allows your daughter to create 3D worlds similar to Minecraft but includes the ability to design her own shapes and program them.
In live programming an attempt is made to reduce the time between a program change and the ability to wittness consequences of this change. In the good old days, with punched cards, this was not a pretty picture as it could take a long time to get to that point. With Conversational Programming, which is a special kind of live programming, we try to go one step further and compute of the program you are writing. A simple version of Conversational Programming has been added to AgentCubes online. You can play with this as part of one of the hour of code tutorials: http://hourofcode.com/ac
how about trying the University of Colorado Hour of Code activity instead to allowing them to create any program and not just a fill in the blank coding exercise?
http://hourofcode.com/ac
Perhaps, before you make these kinds of statements, you should actually look at the research of the University of Colorado including studies showing that kids can leverage the MEASURABLE skills they got from game design to science simulation building.
There is quite a body of literature suggesting that Logo is not that easy. More importantly, however, we can show that, with the right combination of tools (e.g., AgentSheet and AgentCubes), curricula (e.g., Scalable Game Design) and pedagogy, teachers with 0 CS background can trained to teach kids programming as early as first grade. Here is an example of a 4th grade class: https://www.youtube.com/watch?v=5FSbA_YMsNE&feature=player_embedded
I just like to clarify that the trade off between programming and natural languages (or music) suggested by the title of the WIRED article does NOT reflect the goals of the Scalable Game Design curriculum discussed in the article. In fact, we have many language arts and foreign language teachers participate in the Scalable Game Design project. They find that the idea of game design is a great way to 1) motivate language arts (e.g., the notion of nouns, verbs etc. as design tools for object-oriented programming) and to 2) employ the idea of game design as a cultural bridge used in foreign language learning.
Of course there is no point in coercing people into things that they do not want to do. The problem with CS is that, particularly with girls, it has a strong negative perception, e.g., "programming is hard and boring". Our data suggest, however, when introduced to CS in a certain way (with the right tools, curriculum and pedagogy) a very large percentage of students (boys and girls) changes their minds. The strategy is to expose them once in very compelling way. If they don't like it - no problem.
low pay for teaching is mostly a US phenomenon. There are many countries where teachers, including elementary school teachers, are earning quite well.
... and assemble the chair. That will be a much more interesting AI benchmark.
Everybody is entitled to an opinion but in science, including computer science education, there can be evidence that some things really do work. In the context of the Scalable Game Design project we have explored and evaluated a strategy for teacher professional development. As far as I can tell this is the largest study of its kind:
https://sgd.cs.colorado.edu/wiki/images/4/41/TOCE_2015_Repenning.pdf
Abstract: An educated citizenry that participates in and contributes to Science Technology Engineering and Mathematics innovation in the 21st century will require broad literacy and skills in computer science. School systems will need to give increased attention to opportunities for students to engage in computational thinking and ways to promote a deeper understanding of how technologies and software are used as design tools. However, K-12 students in the United States are facing a pipeline for computer science education that is broken. In response to this problem we have developed the Scalable Game Design curriculum based on a strategy to integrate computer science education into the regular school curriculum. This strategy includes opportunities for students to design and program games and Science Technology Engineering and Mathematics simulations. An approach called Computational Thinking Pattern Analysis has been developed to measure and correlate computational thinking skills relevant to game design and simulations. Results from a study with over 10,000 students demonstrate rapid adoption of this curriculum by teachers from multiple disciplines, high student motivation, high levels of participation by women and interest regardless of demographic background.
If you read a recent report by Google exploring why women are not interested in participating in computing you see that the top two adjectives describing their perception are "hard" and "boring." However, there is good news: with the right kind of tools (Computational Thinking Tools instead of cumbersome coding tools) and the right kind of domain orientation one can transform “Hard and Boring” into “Accessible and Exciting" https://sgd.cs.colorado.edu/wi...
yes, what could possibly be more exciting than turning on and off an LED.
NSF is a US government foundation supporting science through grants. They are NOT developing anything nor are they patenting anything. NSF is funding organizations, mostly universities, but has a clear disclaimer statement: "Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."
The original article does not make any such claims and indeed states "a research project funded by the National Science Foundation" - the poster, EditorDavid, should have been a bit more careful.
Congratulations to owning a - probably one inch thick - laptop computer that is so old that it can directly connect to an antique East European video projector.
Oh what crazy irony. Jason obviously does not understand what coding even is. His example:
My kids can come in here and decide to make a device where if my son squeezes his teddy he will send me a tweet to say, ‘I love you.’ Or if you walk through a laser tripwire it will set off an alarm. It interacts with actual hardware, actual code and all it requires is a squeeze, a drag-and-drop and a little imagination.”
This is - guess what - CODING. When you do this: IF press(teddy) THEN say('I love you') using drag and drop it is called coding! I should know with AgentSheets we started drag and drop programming 20 years ago. Happy programming.
If you want to drive around in town get a car. Don't buy a lawnmower and extend it into a car-like thing. The thing you build would not be pretty, practical and probably not even, in the end, very cheap. If you want to learn how to build a car - maybe - get a lawnmower...
The article suggest that "Only far eastern countries such as Singapore and China outperform the Nordic nation in the influential Programme for International Student Assessment (PISA) rankings."
NOT true! This is based on the much older PISA study. According to the new one Lichtenstein and Switzerland are ranked before Finnland. Get your facts straight!
Yeah... If this is really true that highlights include new wallpaper settings after only 2 years of "hard work" than I really must have this!
still available from the CS Ed week: http://sgd.cs.colorado.edu/wik...
When Dijkstra suggested that "It [anthropomorphizing] invites the programmer to identify himself with the execution of the program" he was a bit confused about the notion of anthropomorphization. To attribute human behaviors to objects, i.e., to anthropomorphize, is very different from projecting oneself into an object. Papert called this projection, e.g. to program a virtual or physical turtle, body syntonicity. There certainly is evidence that this can be a useful thing to do to write or debug programs.
I fail to see the relevance of the example provided by the recent article for or against OO. The code in both cases is essentially the same. Just because there is no explicit class teacher does not mean that example #1 is not OO. There are really cases in which OO does lead towards certain implementation approaches that are inefficient or overly complex for no good reason. Search for "Antiobjects" to find some examples where OO would suggest to put certain behavior into a certain classes in ways that may result in very complex code. The Antiobject approach, in contrast, can lead to a very simple solution. The two approach are not only different in terms of perspective and where the code really goes but in terms of actual code. An example would be to compare a concurrent search, e.g., multiple ghost tracking down a pac-man. In the traditional OO approach one would be tempted to put the complex, e.g., A*-based "AI" into the ghosts. In the antiobject approach one would put the tracking code into the background, e.g., the tiles and walls of a maze to implement, say, a Collaborative Diffusion approach. The collaborative diffusion approach is not only trivial to implement but also results in sophisticated collaboration patterns that would be much more difficult to match with approaches flavored by traditional OO design.
I was lucky enough to gather some parallel programming experience on the Connection Machine CM2, a 64k CPU (yes that is 65536 CPUs), 12 dimensional hypercube, a long time ago. The CM2 ultimately failed but we did get many great insights into parallel programming. At the time it was just not feasible for low cost, on your desktop, computing. It is NO problem to keep massive numbers of cores busy doing interesting computing. OK, the 12 dimensions are less clear on how to use them. At any rate, to claim that there is no need for 100 cores or more is really small minded because unlike the time when silly "the world does not need more than 5 computer" kinds of comments were made we already have evidence that there are powerful ways to employ massive parallel computing that can use thousands or even millions of cores.
Just because we are being caught in a sequential programming mindset does not mean that there is no room for parallel programming. If you are looking at a two dimensional array of data and think of a nested loop you ARE caught in a sequential programming mindset. Additionally, famous people, including Dijkstra, have poopooed some algorithms that are inefficient when execute sequentially to the point where researcher, or programmers, are not even looking any more for good parallel execution. Take bubble sort. Not sure it was Dijkstra but somebody suggested to forbid it. Yes, on a sequential computer bubble sort is indeed inefficient but guess what. If communication does matter and if you are using a massively parallel architecture (i.e., not 4 cores) bubble sort becomes quite efficient because you only need to talk to your data neighbors. Likewise there are AI algorithms that can be shown to be behave really well when conceptualized and executed in parallel. Collaborative Diffusion is an example: http://www.cs.colorado.edu/~ra...
Computational Thinking Patterns is a framework to explore and describe game play in ways that is independent from programming language. These patterns are based in phenomenology. These patterns are used in the Scalable Game Design project and mentioned by teachers are one of the most important abstractions that help student to analyze and build games. The same patterns are used to also build STEM simulations. Through theses patterns there is transfer from game design to STEM simulation building: http://sgd.cs.colorado.edu/wik...
AgentCubes online features an hour of code tutorial that allows you to make a 3D game in a browser. This is the first 3D browser based programming environment and includes making your own 3D shapes. The CS EdWeek / hour of code tutorial is about a 3D Frogger game but you can build a huge spectrum of games ranging from simple 1980 arcade style games to sophisticated AI SIMS-like games: http://sgd.cs.colorado.edu/wik... Proof that this is simple to do (Fox New 31 TV Anchorman makes a game with AgentCubes): http://kdvr.com/2013/12/10/kid... AgentCubes online is used in many schools and has been funded by the National Science Foundation.
Scalable Game Design with AgentCubes online (http://scalablegamedesign.cs.colorado.edu https://www.agentcubesonline.c... fits the bill as it allows your daughter to create 3D worlds similar to Minecraft but includes the ability to design her own shapes and program them.
not much to conclude with 2 data points.
In live programming an attempt is made to reduce the time between a program change and the ability to wittness consequences of this change. In the good old days, with punched cards, this was not a pretty picture as it could take a long time to get to that point. With Conversational Programming, which is a special kind of live programming, we try to go one step further and compute of the program you are writing. A simple version of Conversational Programming has been added to AgentCubes online. You can play with this as part of one of the hour of code tutorials: http://hourofcode.com/ac
how about trying the University of Colorado Hour of Code activity instead to allowing them to create any program and not just a fill in the blank coding exercise? http://hourofcode.com/ac
Perhaps, before you make these kinds of statements, you should actually look at the research of the University of Colorado including studies showing that kids can leverage the MEASURABLE skills they got from game design to science simulation building.
... should it not be able to answer that question itself?
There is quite a body of literature suggesting that Logo is not that easy. More importantly, however, we can show that, with the right combination of tools (e.g., AgentSheet and AgentCubes), curricula (e.g., Scalable Game Design) and pedagogy, teachers with 0 CS background can trained to teach kids programming as early as first grade. Here is an example of a 4th grade class: https://www.youtube.com/watch?v=5FSbA_YMsNE&feature=player_embedded
I just like to clarify that the trade off between programming and natural languages (or music) suggested by the title of the WIRED article does NOT reflect the goals of the Scalable Game Design curriculum discussed in the article. In fact, we have many language arts and foreign language teachers participate in the Scalable Game Design project. They find that the idea of game design is a great way to 1) motivate language arts (e.g., the notion of nouns, verbs etc. as design tools for object-oriented programming) and to 2) employ the idea of game design as a cultural bridge used in foreign language learning.
Here is link to some videos showing teachers and students including a video on how to use game design in Spanish classes: http://scalablegamedesign.cs.colorado.edu/wiki/Videos
Full disclosure: I am directing the Scalable Game Design project
Of course there is no point in coercing people into things that they do not want to do. The problem with CS is that, particularly with girls, it has a strong negative perception, e.g., "programming is hard and boring". Our data suggest, however, when introduced to CS in a certain way (with the right tools, curriculum and pedagogy) a very large percentage of students (boys and girls) changes their minds. The strategy is to expose them once in very compelling way. If they don't like it - no problem.