It depends if I have corroborating information.
Normally, it means that they are lacking some very fundamental piece to their learning. The last class I taught that this happened in had a particularly poor Data Structures teacher and so didn't understand Hashes/Dicts/Associative Lists and how to use them.
Yeah, that assignment didn't go well for about 30% of the class. I had to back up and teach that piece.
However, my first assignment ALWAYS has 40+% failure rate. And my assignment is: "Here are the directions to: set up Eclipse, set up Mercurial, type in this program, compile it, run it, and check it in so I can run the automated tester on it."
I literally give people a document with every single step documented. I'm not joking. We're talking a single print statement that prints "Hello, World!".
40%+ always fail. It's almost invariant. Nothing I do can budge that number. I want to bang my head off the desk at the office hours just before and after that assignment.
On assignments where literally every step was documented, my students would still often not know what to do, because they had missed something small but crucial.
After reading “The Design of Everyday Things”, I’ve come to design things based on the assumption that people don’t read. Even when their sole task is to read, they just don’t.
I write compilers, and producing good error messages is a crucial part. But as it turns out, the best predictor of a programmer’s ability to notice and correct an error is not good error-message text—it’s accurate and precise source locations.
I believe a part of this is training not to read the error message text, by years of error message text not worth reading.
I certainly wouldn't go so far as to say that this accounts for all (or even most) of the effect, though.
You're right - I was taught for a long time that the compiler will usually say something like "unexpected ':'" - which is in most cases absolutely useless.
In essence, computer logic and the monkey hind brain don't mix...
I find that those are the same people who tend to write content-free walls of text. No wonder they only read the upper-left-hand corner of e-mails, that's the only part of what they write that's worth reading.
We have an App (of debatable quality) where we made screenshots with big red circles so people know which button to push, as many do not read the button's label.
Sure, I also misread email. Easy enough to say "sorry, my fault" and fix the problem.
EDIT: As this might sound very negative: the whole situation is more like "collective creativity", rather than stupidity. I'm often astonished on how people think and what there reasoning is. Ways of thinking I'd never imagined. And no matter how absurd, there's always some logic reasoning.
I agree. If that is the problem, I will happily walk the student through the setup--even at any point in the semester. If a computer craps out, I will help the student recover from the repository--I don't expect them to be able to do that. It does also happen, rarely, that I have to actually help a student set up their computer because they have some weird issue. I do not consider failing at setting up your environment to be a failure of the class. Schedule some time with me and we'll go through it together.
HOWEVER, this is generally not the problem, oddly. They get that set up pretty much fine.
The first problem is: System.out.println("Hello, World!");
I WARN people over and over. I am automated testing this. Computer output must be EXACT. The comma, space, capitalization, and exclamation point ARE NOT OPTIONAL. Debugging is about noticing details, and if you can't match this, you're not going to find the actually subtle bugs later in your own code. Really, this is the only functional line in the program--I'm not joking about this.
The second problem is: "But I didn't know I could check this before the assignment date." Um, I have a website set up for the class--did you check it for the past two weeks that it has been running? I have pointed this page out and put it on screen at both beginning and end of class for the past 4 lectures. The anonymized login ID's have a Red X for a failure and a Green + for success. I also have the intensity modulated properly so that those who are red/green color blind are able to tell as well.
I have just learned that I'm going to have to politely smile at all the excuses and whining after that first assignment and tell people repeatedly that I'm not budging on this. After the first couple of students, the rest get the message.
We've done programming long enough that this is ingrained to a very deep degree, but for them, it still looks like english.
Anecdote: I had a college instructor who thought it was reasonable to write a TCP-IP program from scratch without reference using Winsock2. I'm sure he could do it, and I could probably do it now, but as a student, not so much.
Heh, you are basically battling a lifetime of built up muscle memory when it comes to that.
I always make sure that my first assignment is due before the drop deadline. I don't make that first assignment worth a lot of points, but it sets the tone for the rest of the class--"If you can't do this, you're in for a rough time in my class." Anyone who stays even if they bomb that first assignment knows what they are getting into.
*Best as in most learning happens to the majority of students.
They haven't learned to quiet it yet.
And some probably just gave their last full measure of devotion somewhere along the way; they just couldn't for some inscrutable reason.
I learned it less than Cary did. Every time I read this, I calculate what it'd really cost per kid and get pretty sad; it would be a pittance.
http://carymillsap.blogspot.com/2011/01/axiomatic-approach-t...
The teachers themselves are pretty bad as well. Java is alrightish, but not in a course called 'Systems Programming' where we talk about paging! And the list goes on...
Now, when I hear about students that learn what array or loop is on C++... I imagine how they start call themselves "C++ developers" after graduation, and it's even more terrifying.
But it was just an example that despite needing some crucial knowledge students just don't care and do not bother to learn themselves. (Even if told)
If my freshman year college professors are to be believed, this happens because undergrad is but an entrance exam for postgrad. 300 CS students come into freshman year. Only 30 can make it into postgrad 4 years later.
Do the maths.
(the stats have improved since the bologna system, now 60 people get into postgrad after 3 years)
I would argue that barring a conspiracy of some kind that the designer has made a mistake in either in the preparation of the exam or the preparation of the students. Others might argue that students may be lazy or aren't maximizing the use of their time. I hear similar arguments about users now that I'm in IT but I've always felt that it is the designer's problem if "no one can use it right."