Hubbert was a geologist working for an oil company. The fact that new discoveries come along, but at an ever slowing pace, was hardly something he wasn't aware of, and isn't a flaw in the theory.
The 50% is "50% of oil in the ground", not "50% of oil that we've discovered". The 100% doesn't move, other than at the pace of geological time frames.
Hubbert's mistake was thinking of oil reserves as all being more or less alike. When we look at the alternative hydrocarbon sources, we see that he was wrong to do so. What we can say about most of the newly-discovered reserves is that vast though they may be, they are much more expensive to extract than the traditional oilfields.
It can be argued that we haven't reached "peak oil" because we haven't used 50% of the world's oil, or it can be argued that we have reached the peak, because pretty much every discovery is in the "harder to extract" category.
This question is easier to ask when you're making well-above-average computer-programmer-level salaries and quadrupling the price of electricity and fuel (or something) and the various manufactured things which depend on that price isn't going to really ding your lifestyle. But given the number of people in this world who make a trivial fraction of that, it gets more complicated.
There's always the Malaysian solution: in Malaysia, electricity prices are low for the first X units per month, then very high above that limit. The limits are set to allow comfort to all regardless of income, and to ensure that the rich folks with their power-hungry air-con units subsidise the rest.
Environmentalists are not saying we're running out of oil. "Peak Oil" does not mean the end of oil. Indeed it's believed to happen when around half the oil has been extracted, and half is still in the ground. The reason production goes down is because the remaining oil gets more and more difficult to extract.
Precisely. The error in the previous definition of peak oil is that it assumed that oil is oil is oil, and therefore the peak was at halfway. By that definition we have not reached the peak. However, if we define the peak as "all the easy stuff's gone", then maybe we are at the peak, or rather the "summit plateau", because all these new sources that people claim show we're not at the peak yet are really rather messy, difficult and expensive to extract. So to cut costs we don't clean up our mess properly. Oil shale is an environmentalist's nightmare not because of the carbon dioxide produced, but because of the massive destruction of natural habitat and poisoning of water courses. We really shouldn't let ourselves rely on it if we're going to just burn it....
I think there's two very different justifications for one or the other.
By contributing to "truly free" software (BSD) you're raising the floor, because it's work that no-one ever needs to repeat again. As such, I consider the LGPL something of a hack: it starts with Stallman's notion of free meaning "never closed", then realises that no-one would use a compiler that doesn't let you make proprietary code (on the grounds that the libraries are GPL code) and hacks it so that it's GPL "but not really".
GPL is useful for "pushing the boundaries". If you've done something new and different, sure, keep control, because something that can just be picked up, rebranded and sold by a marketing company is worth protecting from exploitation.
But most software doesn't push the boundaries. Most software is just the same all stuff in a different suit. The difficulty of modifying existing software is a cost. Restrictions are a cost too. Most GPL software is in effect more expensive than just rewriting from the ground up -- only very high utility-value software isn't (think Linux, OpenOffice). And yet, these too contain many elements that could "raise the floor" -- task schedulers, text renders etc -- that if released under a BSD license could be used everywhere. Someone, some day, will now have to repeat that work.
Try to learn to identify unimportant words from the sentence structure. EG. adverbs are not normally vital to understanding the meaning of a sentence, and the same can often be said of attributive adjectives (ones that sit right next to the noun -- eg "on the green table). Only look up the words you need to know to understand the sentence initially, but when a word you haven't looked up has appeared about 3 or 4 times, you'll start actively wondering what it means -- then it's time to look it up.
Yeah, Slashdot uses carrots, the USA uses sticks (thrown from a sufficient distance by automated machinery that the US is under no risk of even getting a bruise)....
Forgive me if you are one, but I've read that people who have lived in real dictatorships scoff at the accusations of dictatorship in the US. These are people who have come from places where speaking out against the regime results in prison time if not outright execution or disappearance; where entire families of criminals--sometimes crossing generations--are punished for one person's wrongdoing; where trials are conducted in closed court and often without the benefit of a defense attorney; where the military takes a position equal to or higher than the civilian government; and/or where a cult of personality that dwarfs the Obama followers ensures that the people not only obey but worship the current leader, sometimes under formal links to the national deity.
There are certainly issues with the US (and a lot of Western countries), but most of them are a long way from being true dictatorships.
... but sadly getting closer every day. "The true price of freedom is eternal vigilance," and when you see the enemy on the horizon you make steps to warn them off -- you don't wait till they're standing at the gate....
Geneva conventions covers flagged soldiers and non-combatants. These guys were neither.
But they had not illegally entered US territories or bases during a state of war. No, they were at worst domestic criminals in their respective countries (and therefore subject to local domestic law there) or at best innocent nobodies who got kidnapped by a hostile alien military force.
There is no requirement for fair trials for those captured in a war.
Yes there is... it's called the Geneva Convention. Yet the US have said "it doesn't count, because they're not proper soldiers", which surely means civilian law applies... in the country they offended in. Guantanamo is an illegal abomination, recognising neither military nor civilian law.
The hearings should not have been postponed -- the hearings should have been dismissed. If any other prosecutor had been caught looking at confidential defence documents, it would be immediately classified as "mistrial" and the accused would have walked on a technicality.
lol so do you have an easy way to learn vocabulary or not?
Not really, because the logical structure behind vocabulary isn't visible to the learner -- it's the teacher's job to structure it in a way that takes advantage of this logic and teaches the logic to the learner.
The simplest tips I can give are:
Learn vocabulary that is of immediate relevance first, because it only sticks if you use it.
Read full-length novels. By page 150, you'll have encountered most of the vocabulary and phraseology that the author tends to use, and it will repeat again and again and again. The first few chapters will be hard going, but by the end, you should be reading fairly fluently...
At the same time, if you are going to sit back and wait for someone to spoonfeed you all the time, then yeah, you might be able to have fun the entire time you learn things. Otherwise, if you want to progress beyond classes, to where you are teaching yourself things, and learning things no one has ever learned, then you're going to hit roadbloacks, pain, and need to work through hard times to reach your goal of knowledge.
...aaaaand that's what we call "moving the goalposts".
We were talking about learning in schools.
Sootman said "Learning is hard, and not always pleasant." and criticised the idea of trying to make learning fun.
You agreed with him.
My point was that "making learning fun" is a natural consequence of "making teaching better", but that they generally do that the wrong way in modern teaching.
Yes, when you leave the classroom, you're on your own... but the fact that there's no teacher when you're genuinely dealing with new stuff doesn't mean we should be practicing "learning in the absence of a teacher" when there is actually a teacher present -- that would be stupid. Our ability to learn new things is in no small part governed by the amount of similar and/or analogous knowledge we already have. In learning new information, we develop schemata that we can generalise and reuse to learn and remember similarly structured knowledge. The more information and the more skills we learn during our school years, the better our capacity for learning in our adult years. So there's no excuse for teachers not to try to be better teachers each and every day.
No, sometimes if you want to learn something, you need to work. Language learning is a good example, eventually you just have to learn a lot of vocabulary.
Do you say that as a polyglot fluent in 4 adult learned languages, conversationally capable in 3 others and knowing bits and pieces of another half-dozen, and currently working teaching your native language, having also taught 2 of your non-native languages in the past? Because as one of those, I say: yes, you need to learn a lot of vocabulary, but if the course is well structured and well taught, it's surprisingly easy. Sadly my courses aren't brilliantly structured or taught, but I'm working on it.
It's like lifting weights, you feel good after, but while you're doing it, there can be pain.
It's nothing like lifting weights. The pain you feel after lifting weights is caused in no small part by the buildup of lactic acid in the muscles, as an after-effect of extended anaerobic exercise. Many believe that this pain is compounded by the tearing of muscle fibres, although this has not been verified in a lab. Regardless, either the pain or its source triggers the body to rebuild and repair after exercise, making the muscle stronger.
Synaptic reinforcement is physiologically non-analogous. Any strain in the brain is not caused by "working" the appropriate connections, but an inability for the brain to determine what the appropriate connections are. Efficient use of neurones and synaptic pathways is always effortless.
Answer: "Fun" is the sensation experienced when the brain is focused on an absorbing and mentally stimulating task.
Question: What is "learning"?
Answer: Learning is the process of stimulating the brain to develop new connections.
Logically, then, we can conclude that all learning is fun. In fact, learning is the core of all fun. Whether you're barrelling down a steep hill with two planks tied to your feet or choosing a square of marble to stand your carved stylised queen on, you're not just repeating a familiar motion, you're refining your strategies to get better.
What does that mean for education? Simple: if it's boring, it's because the pupil/student isn't learning -- the material's either too easy or too hard.
Unfortunately, most teachers get the fun thing back to front, and try to add external "fun" to the lessons rather than trying to find the internal fun of the subject itself. This leads to the subject taking a back seat, and the actual learning becomes less and less fun, hence less well learned.
Libertarians rely on time to prove their points, which works invariably since we understand how people actually function.
Yes, you understand that people have short attention spans, and by the time you have any results we've forgotten what you were testing, so you can turn round and tell us the market isn't "free" enough.
If you want proof that TRADITIONAL (note that this new instance is quite formal) education is failing, you have only to look at average costs to students and employment results for graduates to find the unvarnished truth.
Unfortunately, you can compare the costs in the US and elsewhere and see that the problem of costs is precisely due to libertarianism. Big private universities who are free to set their costs however the market decides -- now compare that with France where universities are public institutions, and fees are €150-€700 per year. The spiraling costs in the US are the result of a liberalised market.
There are many incremental improvements that can be made to education, and many of them are already in practice elsewhere. "Ripping up the rulebook" often results in "throwing the baby out with the bathwater".
The US system's prime pedagogical problem seems to be the "general education" requirement which results in students taking valueless, irrelevant, first-year level courses throughout their education, rather than really drilling down into their chosen subject. But general ed is generally criticised as being the result of academic ego, with faculties insisting that they were important, so it was originally the choice of the universities to institute it. How does this argue in favour of liberisation then?
This "new" university looks set to fall into the trap of 1960s "discovery learning", which failed miserably... so people just rebranded it "Inquiry Learning"... then "Problem-Based Learning", then "constructivism" and now, in one of its worst incarnations, it's called "connectivism". The idea is that we don't and can't learn from clear and unambiguous information and demonstration, but that we need to find the answers out for ourselves. Sadly, both theoretical and experimental psychology say this is bunk, but the learning guys don't like talking about that...
This particular school looks a lot like the sort of stuff done by Roger Schank, whose catchphrase is "learning by doing". He sets up programmes where students are essentially role-playing a real business, and claims that his students learn better because they're solving real problems. My problem with this is that this "real problems" focus reduces their exposure to the breadth of problems that may be encountered in a genuine environment. One of the characteristics of an operational expert in any field is that they don't evaluate all the possibilities -- they reduce the solution space to rule out any clearly inappropriate strategies, but they also narrow it down to familiar territory. In short, most experts repeat their past solutions. Why is this important? Because if you train someone through "learning by doing", you give them a narrower set of solutions than a student you teach by "learning by academic methods". Your new expert now has tunnel-vision.
The actual distinction is not between 0-based and 1-based, but between end-exclusive and end-inclusive - i.e. [0..n) vs [1..n]. There are some languages which tried to do both at the same time, but the result is the worst of both worlds, and unintuitive to boot - e.g. in BASIC, DIM a(10) actually declares an array of 11 elements, indexed from 0 to 10.
So if your upper bounds tend to be exclusive, then it makes more sense to start counting from zero, so that the length of the array is also its starting bound. And exclusive upper bound is pretty convenient in general because of various associated properties - e.g. the length of the interval is then always upper bound minus lower bound, and upper bound is never less than lower bound (when it's inclusive, it is less for an empty interval). Simply put, [0..n) tends to be more convenient in practice because your code will have fewer +1 and -1 in it.
I would argue that most newcomers to programming would be more comfortable with an ordinal number, which would imply that the first element is 1 and the final element is "len", and so to look at one end or the other as the "actual distinction" would be to ignore the validity of this argument.
I can't think of any technical situation that benefits greatly from the end-exclusive notation. Javascript's array[n]=((whatever)) is generally frowned upon (implement a.append() method instead!) and array[n+1] is functionally identical if the array is 1...n . The tiny performance advantage in the former assumes that you're statistically significantly more likely to append than to access the last element, which seems counter-intuitive to me on the grounds that you normally read values more often than writing them.
But I'd be genuinely interested in hearing of any technical benefits of [0...n), because I'm geeky like that.
You're missing the point. I'll give you a clue: "high-level language". And another: "low-level language". The two have different goals. One is more computer-friendly, the other is (intended to be) either more human-friendly or simply more logically self-complete.
My problem is that I'm generating a huge dataset -- at last count I had over 797,000 items in it -- as permutations of a few dozen atomic items and several dozen combinable rules. Using explicit, clear labelling (for function names, arguments and variables) is good practice, but I keep running out of horizontal screen space even before I include much nesting. It provides a disincentive to me from using clear naming conventions, and also from using parameterised/named function arguments (which are essential, as my codebase is under rapid, frequent revision).
Yes, but here's the thing: Python, regardless of version number, identifies itself to the shell interpreter as a single thing by its shebang string -- "/usr/bin/python". It shouldn't do that.
It's broken design -- if you write something that's not backward compatible, you have to give it a new command so that it's different in the shebang, meaning that when a user runs the script, the computer knows which shell interpreter to use.
Recompiling and non-standard installs work, yes, but they also mean your code is no longer portable, because you're using a non-standard execution mechanism.
If you hate it that much, it'd be trivial to write an application that compiles braces into indentation. The reality is it is more readable, and nicer to write. If you are having problems with whitespace being significant, maybe you should find software that isn't crazy - everything I use handles it fine.
I have two problems with that.
1: There is no reason whatsoever that a code editor couldn't automatically and dynamically handle the indenting. "Human readable code" is basically a myth, because it takes a properly-configured computer to render a series of magnetic polarities into a series of ASCII/Unicode characters and display them on-screen. Any computer recent enough to run something like Python is powerful enough for dynamic code management. I could be writing code with Python-style spacing, and the software could be saving it with braces and no spacing.
2: Python spacing is a right bugger when you have any considerable depth of nesting at all. Yes, I know you should strive to keep functions "shallow", and use subfunctions for the deepest bit, but this isn't efficient, because sometimes the overheads of a function call end up being greater than the execution time of the code inside it. In a language that's already relatively slow due to its interpreted nature, the lack of a stack-free macro function is a pretty serious problem -- it actually leads to me using copy-and-paste duplicated code, which is something I really would rather not do. In fact, I'm seriously considering writing my own pre-processor as it seems like the only way I can keep my code clean while having it run at a reasonable pace....
And you, in turn, realise that when you drill down your C toolchain, you'll eventually find something called "assembler", which hardly classes as having typing of any description. Integers and floats, and that's pretty much your lot... and nothing stopping you from misreading one as the other.
Static and dynamic typing each have their advantages ya know.
Then why not have both?
What interpreted language does have static typing? Static typing is carried out by the compiler, and we don't have a compiler here....
Anyway, the architecture of Python has particular rules about scoping, and you do not know until a function is called what will be in scope at the time. I have my concerns that this is powerful in a "more than enough rope to hang yourself" kind of way, but it's there, it's part of the language, and (yeah) it's mostly a consequence of being an interpreted language....
The 50% of total oil we've extracted was the easy and cheap oil. The remaining 50% is hard to get oil.
Nope. It looks like we've extracted all the cheap and easy oil, but that the remaining hard-to-get oil is more than 50% anyway....
Hubbert was a geologist working for an oil company. The fact that new discoveries come along, but at an ever slowing pace, was hardly something he wasn't aware of, and isn't a flaw in the theory.
The 50% is "50% of oil in the ground", not "50% of oil that we've discovered". The 100% doesn't move, other than at the pace of geological time frames.
Hubbert's mistake was thinking of oil reserves as all being more or less alike. When we look at the alternative hydrocarbon sources, we see that he was wrong to do so. What we can say about most of the newly-discovered reserves is that vast though they may be, they are much more expensive to extract than the traditional oilfields.
It can be argued that we haven't reached "peak oil" because we haven't used 50% of the world's oil, or it can be argued that we have reached the peak, because pretty much every discovery is in the "harder to extract" category.
This question is easier to ask when you're making well-above-average computer-programmer-level salaries and quadrupling the price of electricity and fuel (or something) and the various manufactured things which depend on that price isn't going to really ding your lifestyle. But given the number of people in this world who make a trivial fraction of that, it gets more complicated.
There's always the Malaysian solution: in Malaysia, electricity prices are low for the first X units per month, then very high above that limit. The limits are set to allow comfort to all regardless of income, and to ensure that the rich folks with their power-hungry air-con units subsidise the rest.
Environmentalists are not saying we're running out of oil. "Peak Oil" does not mean the end of oil. Indeed it's believed to happen when around half the oil has been extracted, and half is still in the ground. The reason production goes down is because the remaining oil gets more and more difficult to extract.
Precisely. The error in the previous definition of peak oil is that it assumed that oil is oil is oil, and therefore the peak was at halfway. By that definition we have not reached the peak. However, if we define the peak as "all the easy stuff's gone", then maybe we are at the peak, or rather the "summit plateau", because all these new sources that people claim show we're not at the peak yet are really rather messy, difficult and expensive to extract. So to cut costs we don't clean up our mess properly. Oil shale is an environmentalist's nightmare not because of the carbon dioxide produced, but because of the massive destruction of natural habitat and poisoning of water courses. We really shouldn't let ourselves rely on it if we're going to just burn it....
...but open.
How about just a second-hand Galaxy with HDMI out or something similar?
I think there's two very different justifications for one or the other.
By contributing to "truly free" software (BSD) you're raising the floor, because it's work that no-one ever needs to repeat again. As such, I consider the LGPL something of a hack: it starts with Stallman's notion of free meaning "never closed", then realises that no-one would use a compiler that doesn't let you make proprietary code (on the grounds that the libraries are GPL code) and hacks it so that it's GPL "but not really".
GPL is useful for "pushing the boundaries". If you've done something new and different, sure, keep control, because something that can just be picked up, rebranded and sold by a marketing company is worth protecting from exploitation.
But most software doesn't push the boundaries. Most software is just the same all stuff in a different suit. The difficulty of modifying existing software is a cost. Restrictions are a cost too. Most GPL software is in effect more expensive than just rewriting from the ground up -- only very high utility-value software isn't (think Linux, OpenOffice). And yet, these too contain many elements that could "raise the floor" -- task schedulers, text renders etc -- that if released under a BSD license could be used everywhere. Someone, some day, will now have to repeat that work.
Try to learn to identify unimportant words from the sentence structure. EG. adverbs are not normally vital to understanding the meaning of a sentence, and the same can often be said of attributive adjectives (ones that sit right next to the noun -- eg "on the green table). Only look up the words you need to know to understand the sentence initially, but when a word you haven't looked up has appeared about 3 or 4 times, you'll start actively wondering what it means -- then it's time to look it up.
Yeah, Slashdot uses carrots, the USA uses sticks (thrown from a sufficient distance by automated machinery that the US is under no risk of even getting a bruise)....
Forgive me if you are one, but I've read that people who have lived in real dictatorships scoff at the accusations of dictatorship in the US. These are people who have come from places where speaking out against the regime results in prison time if not outright execution or disappearance; where entire families of criminals--sometimes crossing generations--are punished for one person's wrongdoing; where trials are conducted in closed court and often without the benefit of a defense attorney; where the military takes a position equal to or higher than the civilian government; and/or where a cult of personality that dwarfs the Obama followers ensures that the people not only obey but worship the current leader, sometimes under formal links to the national deity.
There are certainly issues with the US (and a lot of Western countries), but most of them are a long way from being true dictatorships.
... but sadly getting closer every day. "The true price of freedom is eternal vigilance," and when you see the enemy on the horizon you make steps to warn them off -- you don't wait till they're standing at the gate....
Geneva conventions covers flagged soldiers and non-combatants. These guys were neither.
But they had not illegally entered US territories or bases during a state of war. No, they were at worst domestic criminals in their respective countries (and therefore subject to local domestic law there) or at best innocent nobodies who got kidnapped by a hostile alien military force.
There is no requirement for fair trials for those captured in a war.
Yes there is... it's called the Geneva Convention. Yet the US have said "it doesn't count, because they're not proper soldiers", which surely means civilian law applies... in the country they offended in. Guantanamo is an illegal abomination, recognising neither military nor civilian law.
The hearings should not have been postponed -- the hearings should have been dismissed. If any other prosecutor had been caught looking at confidential defence documents, it would be immediately classified as "mistrial" and the accused would have walked on a technicality.
lol so do you have an easy way to learn vocabulary or not?
Not really, because the logical structure behind vocabulary isn't visible to the learner -- it's the teacher's job to structure it in a way that takes advantage of this logic and teaches the logic to the learner.
The simplest tips I can give are:
Learn vocabulary that is of immediate relevance first, because it only sticks if you use it.
Read full-length novels. By page 150, you'll have encountered most of the vocabulary and phraseology that the author tends to use, and it will repeat again and again and again. The first few chapters will be hard going, but by the end, you should be reading fairly fluently...
At the same time, if you are going to sit back and wait for someone to spoonfeed you all the time, then yeah, you might be able to have fun the entire time you learn things. Otherwise, if you want to progress beyond classes, to where you are teaching yourself things, and learning things no one has ever learned, then you're going to hit roadbloacks, pain, and need to work through hard times to reach your goal of knowledge.
...aaaaand that's what we call "moving the goalposts".
We were talking about learning in schools.
Sootman said "Learning is hard, and not always pleasant." and criticised the idea of trying to make learning fun.
You agreed with him.
My point was that "making learning fun" is a natural consequence of "making teaching better", but that they generally do that the wrong way in modern teaching.
Yes, when you leave the classroom, you're on your own... but the fact that there's no teacher when you're genuinely dealing with new stuff doesn't mean we should be practicing "learning in the absence of a teacher" when there is actually a teacher present -- that would be stupid. Our ability to learn new things is in no small part governed by the amount of similar and/or analogous knowledge we already have. In learning new information, we develop schemata that we can generalise and reuse to learn and remember similarly structured knowledge. The more information and the more skills we learn during our school years, the better our capacity for learning in our adult years. So there's no excuse for teachers not to try to be better teachers each and every day.
No, sometimes if you want to learn something, you need to work. Language learning is a good example, eventually you just have to learn a lot of vocabulary.
Do you say that as a polyglot fluent in 4 adult learned languages, conversationally capable in 3 others and knowing bits and pieces of another half-dozen, and currently working teaching your native language, having also taught 2 of your non-native languages in the past? Because as one of those, I say: yes, you need to learn a lot of vocabulary, but if the course is well structured and well taught, it's surprisingly easy. Sadly my courses aren't brilliantly structured or taught, but I'm working on it.
It's like lifting weights, you feel good after, but while you're doing it, there can be pain.
It's nothing like lifting weights. The pain you feel after lifting weights is caused in no small part by the buildup of lactic acid in the muscles, as an after-effect of extended anaerobic exercise. Many believe that this pain is compounded by the tearing of muscle fibres, although this has not been verified in a lab. Regardless, either the pain or its source triggers the body to rebuild and repair after exercise, making the muscle stronger.
Synaptic reinforcement is physiologically non-analogous. Any strain in the brain is not caused by "working" the appropriate connections, but an inability for the brain to determine what the appropriate connections are. Efficient use of neurones and synaptic pathways is always effortless.
Sorry, you're both wrong.
Question: What is fun?
Answer: "Fun" is the sensation experienced when the brain is focused on an absorbing and mentally stimulating task.
Question: What is "learning"?
Answer: Learning is the process of stimulating the brain to develop new connections.
Logically, then, we can conclude that all learning is fun. In fact, learning is the core of all fun. Whether you're barrelling down a steep hill with two planks tied to your feet or choosing a square of marble to stand your carved stylised queen on, you're not just repeating a familiar motion, you're refining your strategies to get better.
What does that mean for education? Simple: if it's boring, it's because the pupil/student isn't learning -- the material's either too easy or too hard.
Unfortunately, most teachers get the fun thing back to front, and try to add external "fun" to the lessons rather than trying to find the internal fun of the subject itself. This leads to the subject taking a back seat, and the actual learning becomes less and less fun, hence less well learned.
Libertarians rely on time to prove their points, which works invariably since we understand how people actually function.
Yes, you understand that people have short attention spans, and by the time you have any results we've forgotten what you were testing, so you can turn round and tell us the market isn't "free" enough.
If you want proof that TRADITIONAL (note that this new instance is quite formal) education is failing, you have only to look at average costs to students and employment results for graduates to find the unvarnished truth.
Unfortunately, you can compare the costs in the US and elsewhere and see that the problem of costs is precisely due to libertarianism. Big private universities who are free to set their costs however the market decides -- now compare that with France where universities are public institutions, and fees are €150-€700 per year. The spiraling costs in the US are the result of a liberalised market.
There are many incremental improvements that can be made to education, and many of them are already in practice elsewhere. "Ripping up the rulebook" often results in "throwing the baby out with the bathwater".
The US system's prime pedagogical problem seems to be the "general education" requirement which results in students taking valueless, irrelevant, first-year level courses throughout their education, rather than really drilling down into their chosen subject. But general ed is generally criticised as being the result of academic ego, with faculties insisting that they were important, so it was originally the choice of the universities to institute it. How does this argue in favour of liberisation then?
This "new" university looks set to fall into the trap of 1960s "discovery learning", which failed miserably... so people just rebranded it "Inquiry Learning"... then "Problem-Based Learning", then "constructivism" and now, in one of its worst incarnations, it's called "connectivism". The idea is that we don't and can't learn from clear and unambiguous information and demonstration, but that we need to find the answers out for ourselves. Sadly, both theoretical and experimental psychology say this is bunk, but the learning guys don't like talking about that...
This particular school looks a lot like the sort of stuff done by Roger Schank, whose catchphrase is "learning by doing". He sets up programmes where students are essentially role-playing a real business, and claims that his students learn better because they're solving real problems. My problem with this is that this "real problems" focus reduces their exposure to the breadth of problems that may be encountered in a genuine environment. One of the characteristics of an operational expert in any field is that they don't evaluate all the possibilities -- they reduce the solution space to rule out any clearly inappropriate strategies, but they also narrow it down to familiar territory. In short, most experts repeat their past solutions. Why is this important? Because if you train someone through "learning by doing", you give them a narrower set of solutions than a student you teach by "learning by academic methods". Your new expert now has tunnel-vision.
The actual distinction is not between 0-based and 1-based, but between end-exclusive and end-inclusive - i.e. [0..n) vs [1..n]. There are some languages which tried to do both at the same time, but the result is the worst of both worlds, and unintuitive to boot - e.g. in BASIC, DIM a(10) actually declares an array of 11 elements, indexed from 0 to 10.
So if your upper bounds tend to be exclusive, then it makes more sense to start counting from zero, so that the length of the array is also its starting bound. And exclusive upper bound is pretty convenient in general because of various associated properties - e.g. the length of the interval is then always upper bound minus lower bound, and upper bound is never less than lower bound (when it's inclusive, it is less for an empty interval). Simply put, [0..n) tends to be more convenient in practice because your code will have fewer +1 and -1 in it.
I would argue that most newcomers to programming would be more comfortable with an ordinal number, which would imply that the first element is 1 and the final element is "len", and so to look at one end or the other as the "actual distinction" would be to ignore the validity of this argument.
I can't think of any technical situation that benefits greatly from the end-exclusive notation. Javascript's array[n]=((whatever)) is generally frowned upon (implement a .append() method instead!) and array[n+1] is functionally identical if the array is 1...n . The tiny performance advantage in the former assumes that you're statistically significantly more likely to append than to access the last element, which seems counter-intuitive to me on the grounds that you normally read values more often than writing them.
But I'd be genuinely interested in hearing of any technical benefits of [0...n), because I'm geeky like that.
You're missing the point. I'll give you a clue: "high-level language". And another: "low-level language". The two have different goals. One is more computer-friendly, the other is (intended to be) either more human-friendly or simply more logically self-complete.
My problem is that I'm generating a huge dataset -- at last count I had over 797,000 items in it -- as permutations of a few dozen atomic items and several dozen combinable rules. Using explicit, clear labelling (for function names, arguments and variables) is good practice, but I keep running out of horizontal screen space even before I include much nesting. It provides a disincentive to me from using clear naming conventions, and also from using parameterised/named function arguments (which are essential, as my codebase is under rapid, frequent revision).
I believe, actual "compile-time-fixed-length arrays" only appeared in C++ and even there their legacy pointerness shows up here and there.
C arrays have their length fixed at compile time too, you know....
Yes, but here's the thing: Python, regardless of version number, identifies itself to the shell interpreter as a single thing by its shebang string -- "/usr/bin/python". It shouldn't do that.
It's broken design -- if you write something that's not backward compatible, you have to give it a new command so that it's different in the shebang, meaning that when a user runs the script, the computer knows which shell interpreter to use.
Recompiling and non-standard installs work, yes, but they also mean your code is no longer portable, because you're using a non-standard execution mechanism.
Guido needs to sort out the shebangs....
If you hate it that much, it'd be trivial to write an application that compiles braces into indentation. The reality is it is more readable, and nicer to write. If you are having problems with whitespace being significant, maybe you should find software that isn't crazy - everything I use handles it fine.
I have two problems with that.
1: There is no reason whatsoever that a code editor couldn't automatically and dynamically handle the indenting. "Human readable code" is basically a myth, because it takes a properly-configured computer to render a series of magnetic polarities into a series of ASCII/Unicode characters and display them on-screen. Any computer recent enough to run something like Python is powerful enough for dynamic code management. I could be writing code with Python-style spacing, and the software could be saving it with braces and no spacing.
2: Python spacing is a right bugger when you have any considerable depth of nesting at all. Yes, I know you should strive to keep functions "shallow", and use subfunctions for the deepest bit, but this isn't efficient, because sometimes the overheads of a function call end up being greater than the execution time of the code inside it. In a language that's already relatively slow due to its interpreted nature, the lack of a stack-free macro function is a pretty serious problem -- it actually leads to me using copy-and-paste duplicated code, which is something I really would rather not do. In fact, I'm seriously considering writing my own pre-processor as it seems like the only way I can keep my code clean while having it run at a reasonable pace....
And you, in turn, realise that when you drill down your C toolchain, you'll eventually find something called "assembler", which hardly classes as having typing of any description. Integers and floats, and that's pretty much your lot... and nothing stopping you from misreading one as the other.
Static and dynamic typing each have their advantages ya know.
Then why not have both?
What interpreted language does have static typing? Static typing is carried out by the compiler, and we don't have a compiler here....
Anyway, the architecture of Python has particular rules about scoping, and you do not know until a function is called what will be in scope at the time. I have my concerns that this is powerful in a "more than enough rope to hang yourself" kind of way, but it's there, it's part of the language, and (yeah) it's mostly a consequence of being an interpreted language....