Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Comment: Re:Wow (Score 2) 291

by bunratty (#49452955) Attached to: Cannabis Smoking Makes Students Less Likely To Pass University Courses

If you include the fact that you never bought it, that's more information that affects the probabilities. It's just like in the Monty Hall problem where revealing a goat behind one door changes the probabilities of what's behind the other doors.

Given the fact that cannabis was recently made legal where you live, you may be 5% less like to pass a class. Given the additional fact that you chose not to use cannabis, you may be 5% more likely to pass a class due to the curve being lowered by those who do smoke.

Comment: Re:Very informative article (Score 1) 71

by bunratty (#49123623) Attached to: Facebook AI Director Discusses Deep Learning, Hype, and the Singularity

When most AI people are talking about artificial intelligence, they are talking about narrow "intelligence". This is why in Russell & Norvig's book they quickly move away from the term "intelligence" and instead speak of "agents" working in a particular "task environment", and whether the agents behave rationally or not. For example, a chess program may be able to win chess games against a grandmaster chess player, so we say this agent is performing rationally within this specific task environment. The chess program is not "intelligent" in the sense that you and I are -- it's an incredibly dumb automaton, as is nearly every computer program. You can see this when it fails miserably when put in any different task environment.

The intelligence that will bring about the singularity is artificial general intelligence, which is the same intelligence that you and I have, that is, the capability of performing well in a very wide variety of environments. This type of agent would be able to reason about how to improve itself and bring about that improvement. Very little AI research these days involves artificial general intelligence, and the progress in this area is slow.

Comment: Re:Correlation and causation again (Score 1) 96

by bunratty (#49093835) Attached to: How Machine Learning Ate Microsoft
I think this is exactly why Andrew Ng started his machine learning Coursera course, because so many programmers in Silicon Valley were applying machine learning techniques without knowing what they're doing. His idea seems to be, "If I can teach the fundamentals of machine learning to thousands of programmers, then these so-called machine learning 'experts' will be seen for who they are." I hope that managers that think they can be armchair data scientists will also be seen for who they are.

Comment: Re:why? (Score 1) 677

by bunratty (#49040223) Attached to: Empirical Study On How C Devs Use Goto In Practice Says "Not Harmful"

The goto statement isn't the issue. The issue is non-structured programming, which includes the use of goto, break, continue, multiple returns from a procedure, exceptions, longjmp, and anything else that interrupts the normal control flow of a program. The idea is that to understand a program, you need to understand all the ways the flow of control can occur. Each time you conditionally break the flow of control, you're potentially doubling the number of ways control could flow through the program, making it potentially exponentially harder to understand and test.

Once a co-worker proudly showed me how he wrote the following construct:
do {
//some code
if (condition) break;
//more code
if (another condition) break;
//yet more code
} while (0);
to avoid goto statements. My reaction is that goto statements would more clearly express the jumps in the control flow. A do-while indicates a loop, but it isn't a loop; it's gotos in disguise.

Some programmers take this idea to an extreme and even write code such as:
int abs(int x) {
int retval;
if (x >= 0) retval = x;
else retval = -x;
return retval;
In this case, multiple return statements would make the code simpler, not harder to understand. Similarly, using exceptions wisely can make code easier to understand, not harder.

The bottom line is that as a general rule it's best not to break the flow of control. But a good programmer will know when it makes sense to do so, and if a goto statement makes sense, it can be the clearest way to express such a break.

Disclaimer: "These opinions are my own, though for a small fee they be yours too." -- Dave Haynie