Domain: mdx.ac.uk
Stories and comments across the archive that link to mdx.ac.uk.
Comments · 24
-
Re:Double tassel ...
I've taught early programming classes and it's very clear that some people have a hard time with abstraction. You know, I can't find a study saying "Rain is wet". That doesn't mean it isn't true. However, I had no trouble finding studies that backed the assertion that some people have a hard time with abstraction. Here's one. You're welcome to find more on Google. It literally took me seconds to find that. I worked very hard with these students and some of the eventually got it or at least were able to convince me the did. Out of a few hundred I only had two that just never could understand abstraction. It was frustrating and I felt I failed them.
-
Re:Double tassel ...
You just want to believe that you're somehow special because you can write computer programs.
Sorry, no. You should be able to smell your own bullshit, because I sure as hell can.
I was told about the double-tassel distribution by no less than three people with PhDs in CS who taught at university, all in my first year of university.
I can cite references, can you?
I have no need to feel myself as being some special little snowflake because I learned how to program. It certainly isn't something which I feel should be restricted to a specific group of people. But I sure as hell believe that in a random group of students you will not see results which follow a bell curve.
I have seen the grade distributions in classes I've marked, been told this by people who taught CS for a very long time, and seen it in classmates.
You can like it or not like it
... I simply don't give a shit. But that it's a real, documented, and oft-referenced thing has been true for decades. Is it 100% indicator? I honestly have no idea, because I've not studied it.But if you think I'm pulling it out of my ass or because I want to feel special
... you're a moron. -
Passion is not the issue
Code.org doesn't have a messaging problem, they've got a core conceptual problem. Trying to teach more people to program, especially by making it part of a core academic curriculum, is amazingly foolish. Anyone that's taken an introductory programming class at a university can tell you it is foolish. Jeff Atwood pointed out this paper seven years ago that expands on this idea. The skinny is that 30-60% of computer science students fail at introductory programming classes and consistently do so despite changes in languages, IDEs, and teaching methodologies. Some students simply could not form mental models needed to be able to program effectively. Keep in mind this was a self-selected group of students, ones who had chosen to take up computer science as a major.
Based on this it seems apparent that if "everyone" was required to take programming courses then a majority of them would simply fail to learn the skill and only pass because schools don't like to fail students. No greater number of students would learn to program and they would have no deeper understanding of how computers or software works. Computer programming is a fine elective and is something that should be available to high school students but it is simply absurd to think that trying to teach everyone to program would lead to everyone magically enriching their lives.
Teaching advanced mathematics to students is unlike teaching programming despite the two being advanced skills. With mathematics there's a consistent domain specific language that can be used. The language of calculus builds on the languages of algebra and geometry which themselves build on simple arithmetic. If someone learns calculus (and continues to use it) it will be applicable for the rest of their lives. The language used for theory is the same one used for applications.
In computer science there's the theoretical topics where "language is an implementation issue" and then more practical topics where the language and platform is paramount. Teaching high school students high level computer science topics isn't going to leave them with practical skills since it is often non-trivial to apply those theoretical concepts (which back practical topics) to a specific language and platform. Teaching more practical programming is going to leave them in a lurch when the school's choice of language and platform doesn't end up the future of the industry. There's thousands if not millions of kids that learned BASIC on Apple ][s and C64s that have not only never used those skills since but have absolutely no conception of how to apply the core concepts learned in this classes to more modern languages and platforms.
If the goal of a programming curriculum is to teach critical thinking, problem solving, or logic there's much better ways to teach those things. Limited school budgets shouldn't be trying to cover programming for everyone. Kids would be much better off being taught how to balance a check book, plan a household budget, and if you want to use computers some basics like don't send naked pictures to your boyfriend or girlfriend because shit stays on the internet forever.. Kids interested in programming will take programming electives and focus in that area. Trying to get everyone to program simply is not going to work and it a waste of time and money that could both be better spent.
-
The policy is deomonstrably idiotic.
http://developers.slashdot.org/story/12/09/16/1631239/can-anyone-become-a-programmer
If you want to dig deeper, here's a page with the link to the 2006 study. Short version: not only can not everybody learn to program effectively, but that there's a simple test to predict if someone could or not without putting them through a year of school:
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/
The overlapping bell curves explain a lot about grade distributions when I went to college. -
Re:There is nothing special about programming
I don't know about sour grapes, since it is a reasonable a priori position, but it is wrong as far as I can tell from the literature.
Abstract. A test was designed that apparently examined a student’s knowledge of assignment
and sequence before a first course in programming but in fact was designed to capture their rea-
soning strategies. An experiment found two distinct populations of students: one could build and
consistently apply a mental model of program execution; the other appeared either unable to build
a model or to apply one consistently. The first group performed very much better in their end-of-
course examination than the second in terms of success or failure. The test does not very accurately
predict levels of performance, but by combining the result of six replications of the experiment,
five in UK and one in Australia. we show that consistency does have a strong effect on success in
early learning to program but background programming experience, on the other hand, has little
or no effect. -
Re:hope we luck out
Why? Because the jurors are not examined. An "expert juror" could decide the case based on a prejudice that is never heard in court, and neither of the sides get the opportunity to challenge. A jury with few preconceptions is good for transparency.
but just what an API is. That can be taught adequately in about two hours.
This is wrong, and provably so. 30% to 60% of CS students never make it pass the first class. Literally, 30-60% of the population can't program. To quote the linked paper "It is as if there are two populations: those who can [program], and those who cannot [program], each with its own independent bell curve."
Statistically speaking your try to teach someone in two weeks which some where around 60% of people literally can't be taught. The authors posit as to why this is, but the important fact is your asking a population to judge something 30 to 60 percent of them will never understand.
-
Re:Double edged sword
Are you truly this ignorant? Germany doesn't treat their workers like shit? Germany's trade surplus is due far more to wage suppression than productivity. Indeed, this fact was pointed out to me initially by a German friend, and then I found tons of places that back it up; here's a quick sampling of references that mention it:
http://www.mdx.ac.uk/Assets/onaran2.pdf
http://www.ilo.org/public/english/bureau/inst/download/akyuz.pdf
http://www.alternet.org/economy/154231/german_economic_striving_at_the_expense_of_workers_and_neighbors_will_backfire
Please mod parent down for talking nonsense. -
Re:Reading, counting to 100 and other difficult ta
FYI, I just discovered that paper a few weeks ago.
http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
As for the GP's claim that:
we were headed for a two-tier society, comprised of people who used computers and people who programmed computers
I can only say, it's really a three-tier society. The people who *programs other people*, the people who programs computers, and the rest.
I write software for a living, but these days I'm actually much more interested in "programming people".
-
Re:WHy are you majoring in CS...
Totally disagree. High school will not be a benefit to the vast majority of people. Either you were born thinking like a computer scientist, or you will never 'get it' at uni; there are very few people who are in between, who can learn how to think in that manner.
Third year CS student here, I had never even thought about majoring in CS until about two weeks before applying to university –I was planning on doing Physics. I had never done anything remotely CS related at school. I'm one of the top students in my class.
Here's a paper http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf. The gist of it is that school is a waste of time for the top students because they already know how to think; university is a waste of time for the bottom students because they'll never get it; and there is a minority who can actually be pushed to learn something, those students who are somewhere in the middle.
-
The main problem is not paradign
I recommend you to read this study about CS education... it mentions that even if you can try changing paradigms, techniques, tools, there is a single factor that students bring on already when starting the course which has more impact on their results than any other change.
I am not saying that every paradigm is the same, only that you're not starting "optimization" of the course at the most relevant problem.
-
On the importance of Generative Models
Computer literacy is distinct from networking which in turn is distinct from programming [as has been said]. Don't try to teach them all at the same time, and only teach two at the same time at the areas where the two overlap.
The rest of my post is about teaching programming specifically, not the other two (although it may also be relevant to system administration).
Teaching generative models is crucial. What does that mean? It means teaching the causal connections; for one, between what the code says and what it does, and for two between what one piece of code does and what another piece of code does.
Three interesting reads:
- ESR's blog: http://esr.ibiblio.org/?p=316
- A study observing students without programming experience answer a test about the semantics of the assignment operation; those who create a model of what assignment does and applies it consistently do better in class than those who don't independent of what the model is (and in particular independent of whether it's the correct model). http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
- "The Mystery of b
:= (b = false)", a study about the importance of being able to simulate in your head what the computer does. http://www.cs.washington.edu/homes/reges/mystery/
No matter which languages and tools you teach, and no matter which problems you make the students apply their tools to, help them obtain a generative model, and help them help themselves obtain a generative model.
As for which tools to teach them, I would recommend python. It allows you to go straight to the meat of the matter without having much in the "this part is magic, you're not supposed to understand this". Also, it supports the teaching of multiple paradigms. Procedural and OO programming are its strengths, but you can definitely teach the ideas of functional programming in it as well--it already likes doing things with lazy lists (called generators), such as map-filter-reduce.
There's also a good book, How To Think Like A Computer Scientist, freely available at
http://www.greenteapress.com/thinkpython/thinkCSpy/html/. Be sure to also look in its parent directories.(There are also other programming paradigms or computational models, such as prolog-style declarative programming, string rewriting systems or cellular automatons; python doesn't lend itself naturally to do those, but it should be simple to write a simple string rewriter; besides, I wouldn't suggest teaching esoteric computation paradigms).
So my vote is Python, How to think like a computer scientist, and a lot of attention to the generative models.
If you need an example of real-world python, I'd suggest the official bittorrent client (it'd also give you a good excuse to talk about networking if you feel like it).
Also, try to take something the students already know how to do and show how they are following an algorithm; make them implement the algorithm. Math should be rich with examples (gaussian elimination, computing derivatives or simplifying expressions), but the examples may also be a bit on the boring side.
-
this was a real eyeopener for me on this subjecthttp://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
so the answer is - it does not matter. Some of them will get it, most of them won't, makes no difference what you do.
-
The Camel has Two Humps
As a starting point, I suggest this (draft) paper, because it's interesting, and short, flippant, and gets you thinking. The Camel has Two Humps
Learning to program is notoriously difficult. A substantial minority of students fails in every introductory programming course in every UK university. Despite heroic academic effort, the proportion has increased rather than decreased over the years. Despite a great deal of research into teaching methods and student responses, we have no idea of the cause.
It has long been suspected that some people have a natural aptitude for programming, but until now there has been no psychological test which could detect it. Programming ability is not known to be correlated with age, with sex, or with educational attainment; nor has it been found to be correlated with any of the aptitudes measured in conventional intelligence or problem-solving-ability tests.
We have found a test for programming aptitude, of which we give details. We can predict success or failure even before students have had any contact with any programming language with very high accuracy, and by testing with the same instrument after a few weeks of exposure, with extreme accuracy. We present experimental evidence to support our claim. We point out that programming teaching is useless for those who are bound to fail and pointless for those who are certain to succeed.
-
Book of Genesis supports Monarchy, not DemocracyThe creation story from the Book of Genesis was historically used to support monarchy and the divine right of kings, far more than democracy and innate human rights. For instance, from Filmer, Patriarcha, or the Natural Right of Kings (1680), the most famous divine right ideologue:
not only Adam, but the succeeding patriarchs had, by right of fatherhood, royal authority over their children.
... [F]or as Adam was lord of his children, so his children under him had a command and power over their own children...
I see not then how the children of Adam, or of any man else, can be free from subjection to their parents. And this subjection of children being the fountain of all regal authority, by the ordination of God himself; it follows that civil power ... in general is by divine institution
http://www.mdx.ac.uk/www/study/xfil.htm/ -
Re:Forget smallpox
It's largepox you should be afraid of.
It is called "smallpox" to distinguish it from the important one -- the one just called "pox". Otherwise known as syphillis.
In the movie "Dangerous Liaisons" Glenn Close's character is ostracized because she is a heartless troublemaker. In the original book she is stricken with "pox", aka syphillis, which was more virulent in those days, and caused horrible sores, and, eventually, general paralysis of the insane.
-
Re:Follow the money...
If you really want to be objective about these issues try to look beyond the smoke and mirrors.
At least, this statement is not incorrect...
A recent study by Arctic researchers showed that the polar ice cap isn't just shrinking in terms of land mass [bbc.co.uk], it's shrinking in terms of depth too [bbc.co.uk], by 4cm a year.
All that water's going somewhere, and that somewhere is the oceans. Global sea levels are rising, and you only have to look at the situation in Tuvalu in the Pacific [bbc.co.uk] or Venice, Italy [veniceinperil.org] to see that the threat of rising tides isn't a myth.
Elementary physics will tell you that the artic ocean ice caps could fully melt without raising the sea level by one centimeter: Whether the artic ocean is in a solid or liquid state does not change the underwater volume (remember Archimedes ?). This is quite fortunate, because otherwise the sea level would drastically change between the northern hemisphere winter and summer, precluding much of the seaside activity many of us enjoy sometimes. The problem with the Venice lagoon has to do with centuries of mishandling the water flows in the local area and nothing to do with global climate changes.
Contrary to popular belief, most serious oceanographers believe that a global warming would rather lower the sea level than raising it: The most influential water tanks that could have an impact on sea level are the antartic and groenland continental ice caps. If those melted then sea level would rise, and vice versa. It happens that those regions have very little precipitations because clouds very seldom go up to these latitudes. Because the area is (and will stay) still very cold, the melting in fact barely compensates the accumulation of water on these continental ice caps. Hence, the ice there is not renewing itself a lot. A global warming would increase the evaporation at the equator, push the clouds at higher latitudes, and augment the precipitations on top of the continental areas. Hence water would keep accumulating on the land, therefore lowering the global sea level. QED.
Now, this is not to say that human-induced climate change is not dangerous and that we should not take drastic measures to limit the various activities (including farting ;-) that could have an impact on climate. It's just that if you read very informed litterature, you'll find that no one can in their earnest say whether or not human activities will or will not have a drastic impact on our planet's ecosystem.
The best seems to try to stay as informed as possible and not let false Cassandras monopolize the discussion. -
Re:"Stealing is stealing"
I'm just looking now. I don't know an online link, I foubnd this in the library, Oxford vs Moss in either 78 or 79. basically some student wandered into oxford universities staff room, photocopies an exam paper and walked off with it. oxford uni took him to court for theft, the judge threw the case out saying that they actually hadn;t lost anything so it wasn;t theft.
this is the only reference I can find off the top of my head. I think you'd have to pop down to the library to find more details.
dave
-
Re:Life yes, but intelligent?
I think it's remarkable how blasé you are about extraterrestrial lifeforms, lowly as the may be. When I was a student this stuff was pure speculation. It wasn't unreasonable, but there simply wasn't good evidence.
Your question makes me wonder what are the requirements for intelligent life? Rapid change? Sexual reproduction? Cataclysmic events in an overall stable system? Ecological diversity? Complexity?
IANAB, but it strikes me our understanding of life is pretty primitive. I can imagine a complex ecosystem growing up around super deep thermal vents and giving rise to intelligent lifeforms, but I couldn't begin to construct an evolutionary model to reliably predict such occurences. Maybe somebody who took a course like this one has some perspective? -
Re:Yah! Stick it to the users!
Give a look at any paper by Sasse, Brostoff and Adams, such as this one, and then re-think your sysadmin I-never-change-my-dictionary-password-but-I-force
Already- all-my-users-to-32-char-monthly-passwords bullshit attitude. /.'ted! Here is the Google's cache. -
Yah! Stick it to the users!
This is so tech-elitist... "The users are the problem!"
Give a look at any paper by Sasse, Brostoff and Adams, such as this one, and then re-think your sysadmin I-never-change-my-dictionary-password-but-I-force- all-my-users-to-32-char-monthly-passwords bullshit attitude.
The answer is not to forget the human aspect. Find a better way to help users generate better passwords, through education and assistance, not automated password rules, and forced password expiry. -
I think I can trust them
Now a team of astrophysicists at Sussex University in England has uncovered a significant flaw in the standard view of how the sun will evolve, with dramatic consequences for the fate of our planet.
I've problem trusting the research results from University major in sussing out sex .
Btw, anyone would tell me why Englishmen had to build University around sex?
(yes, it's a joke, take it easy) -
Re:I'm getting sick and tired...oh yes...
Not portable? WTF are you talking about?? Are you using Microsoft's VM or something?
you make my point for me.
Is this just a matter of opinion (and thus not worth a lot) or do you have anything specific to critique the language on?
check out the thread on inheritance. somebody (a java developer) said it better than i. if you can get hold of a copy of the april 2000 edition of the IEEE Computer journal, then the article "coping with java programming stress" gives an excellent rundown on things that aren't right with java (by experienced java programmers). there's also: this by someone who knows their computer language stuff.
they say it better than i possibly could.
-
Is Java flawed?
You make some excellent points. Most leading experts in the OO field consider Java to be a terribly flawed programming language. For a comprehensive look at the shortcomings of Java, have a look at Professor Harold Thimbleby's famous Java Critique.
-
Java is flawed
Harold Thimbleby of Middlesex University has written a well thought out Critique of Java in which he concludes,
Good programming requires using a good language. The way to understand a language is a good indicator of how well it is designed; ideally, one should be able to learn incrementally, building constructively on past learning. Simple things should be easy, complex things should not conflict with simple things. But with Java, one is always having to revise one's "knowledge" of it as more is learnt.
The problem with a complex language like Java is that so much is unsaid. Sometimes this results in clearer and more compact programs. They don't need to mention garbage collection, and they can't get it wrong. But sometimes it leads to incredible but hidden complexity -- such as the obscure rules for inheritance.
...We started with a quote from Tony Hoare, and we end with one from the same 1980 Turing Award lecture: "I conclude that there are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." The concern about Java is that it is a third way: it looks simple yet is complicated enough to conceal obvious deficiencies.