Become a fan of Slashdot on Facebook


Forgot your password?

Comment a RasPI 0 is no computer just like a lawnmower is (Score 1) 190

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...

Comment Wrong PISA Ranking (Score 1) 213

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!

Comment Don't confuse anthropomorphizing with syntonicity (Score 1) 303

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.

Comment sequential programming mindset (try 64k cores) (Score 1) 449

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:

Comment Computational Thinking Patterns (Score 3, Interesting) 121

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:

Comment AgentCubes online (3D game design/ CS EdWeek) (Score 1) 121

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: Proof that this is simple to do (Fox New 31 TV Anchorman makes a game with AgentCubes): AgentCubes online is used in many schools and has been funded by the National Science Foundation.

Comment AgentCubes online for 3D design + programming (Score 1) 107

Scalable Game Design with AgentCubes online ( 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.

Comment Don't just be reactive, compute the future (Score 1) 294

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:

Submission + - Getting more girls interested in programming (

the agent man writes: A Colorado Public Radio/NPR piece describes a group of computer scientists and educators from the University of Colorado (CU) at Boulder exploring what it takes to get more girls interested in computer science. In spite of many educational efforts the participation of women in computing jobs is still low. The strategy explored by the Scalable Game Design project is to bring a game design based approach into the classroom by training teachers. The CU team's work to get girls interested in computer science is part of a large scale, long-term project to increase engagement among all underserved populations such as low income students, minorities and rural communities. Interestingly, the key to get more girls excited about computer science is not only to come up with more creative "projects" than, say, computing prime numbers, but to have teachers employ pedagogies so that the teacher and the students explore and solve the problems of creating a game together. The project has brought Scalable Game Design to schools across Colorado, as well as internationally and is collecting student-created games in an online arcade.

Submission + - Excite kids to code by focusing less on coding (

the agent man writes: The Hour of Code event taking place December 9-15 has produced a number of tutorials with the goal to excite 10 millions kids to code. It is really interesting to contrast the different pedagogical approaches behind the roughly 30 tutorials. The University of Colorado, Make a 3D Game, Tutorial wants to excite kids to code by focusing less on coding. This pedagogy is based on the idea that coding alone, without non-coding creativity, has a hard time to attract computer science skeptics including a high percentage of girls who think that "programming is hard and boring." Instead, the Make a 3D Game activity has the kids create sharable 3D shapes and 3D worlds in their browsers which then they really want to bring to live — through coding. There is evidence that this strategy works. The article talks about the research exploring how kids get not only excited through game design but that they can later leverage coding skills acquired to make science simulations. Try the activity by yourself or with your kids.

Slashdot Top Deals

Computers can figure out all kinds of problems, except the things in the world that just don't add up.