Re: Why I stop attacking HLA




Herbert Kleebauer wrote:
> randyhyde@xxxxxxxxxxxxx" wrote:
> > Herbert Kleebauer wrote:
>
> > The only problem is that you cannot give substantial assignments during
> > the first couple of weeks because they don't know enough machine
> > instructions to do this. Hence the use of HLL-like control structures
> > during this time period.
>
> Ok, let's get more concrete. Give us an example of an assignment which is
> easier to solve in the first few weeks if you use HLL control structures.

Create a set of "addition", "subtraction", and "multiplication" tables.
Read the value "n" from the user, and produce an n x n table for each
of these problems (using add, sub, and intmul). Based on their
C/Java/Pascal/whatever knowledge, the logic is fairly trivial. With
about four or five machine instructions, a few variable declarations,
and a brief examination of AoA Ch2, they can do this.

>
>
> > for example). You seem to think that students can absorb all this
> > information at once. They cannot.
>
> Even Beth couldn't write more than a few sentences to explain the flags.

Again, you're confusing a discussion of what the flag *are* with a
decent knowlege of how someone would use these flags. Flags are a
foreign concept to most people who've never worked in assembly language
before. Go ahead. Teach a class with 50-100 students in it. See for
youself if a half-hour explanation opens all their eyes.

>
> There are 4 FlipFlops (a FlipFlop is a hardware circuit which can store
> a single bit) which are set or reset by most of the ALU operations. For
> the add/sub instructions the meaning is:

Well, right off the bat you're assuming they know what a flip-flop is.
Big mistake. Oh wait! What's a "bit"? And "Why are we talking about
hardware? This is a software class!" Again, given the appropriate
prerequisite material, sure, students could understand the flags in a
few minutes. However, they don't possess those prerequisites.

>
> Z: set if the result is zero, cleared otherwise

And of what use is that?

> N: set to the most significant bit of the result

What's a "most signficant bit?"
"Why is the most signficant bit special?"
"Why is this bit called the 'N' bit? What does that have to do with
anything?"


> C: set if there is an overflow for unsigned operands, cleared otherwise

What is an overflow?
What is an "unsigned operation?"
What does "set" and "cleared" mean?

> V: set if there is an overflow for signed operands, cleared otherwise

What is the difference between C and V?
What is a "signed operand"?
What is an overflow?


Are you starting to get the picture? The whole purpose of a machine
organization and assembly language course is to *teach* all these
subjects that you're blindly assuming that the student already knows.
And without that prerequisite information, concepts like flags just
don't make much sense.

>
> Now show me, which of the above can't be understood within two
> minutes by someone who was able to pass high school.

Because students don't learn machine organization in high school?


> >
> > It's a completely different programming paradigm for them. You're
>
> Even if somebody knows nothing about programming at all, he understands the
> sentence:
>
> If the C FlipFlop is set continue with program execution at position
> xyz, otherwise execute the next instruction.

HaHaHaHa!

You're assuming they know what a "flip-flop" is.
You're assuming they know what "execution" means.
You're assuming they know what "position xyz" means.
You're assuming they know what an "instruction" is.

You really need to teach an assembly language course at the university
level sometime (or better yet, at the community college level). That
would enlighten you about the incorrect assumptions you're making about
what the students come in knowing.

>
>
> > First
> > you teach them about the flags. *Then* you teach them how the Jcc
> > instructions operate. *Then* you teach them how to construct statements
> > like IF/WHILE/SWITCH/etc using these statements. This process takes a
> > couple weeks *after* they've already learned quite a bit of the
> > instruction set already.
>
> I always thought, 60 seconds are called a minute and not a week.

Again, try teaching a course or two sometime. Then get back to me. If
this stuff could be taught in 60 seconds, believe me I would have done
it.

Bottom line is that you're assuming that students entering a course
have the same knowledge *you* possess *today*. They don't. You'll be
amazed at how many students have this big mental block that causes them
to take weeks to "grok" (understand well) certain concepts. A few
students will pick up the notion of flags and how to use them in a few
minutes, just as you claim. Some students may *never* understand what's
going on. And the average student will take about a week to figure all
this out.

Oh, and do keep in mind that these students *are* taking other courses.
They are *not* devoting their full time and all their attention to
learning assembly language. Some of them even have a life outside their
classes. And very *few* of them are highly motivated to learn assembly.
All these things conspire to reduce progress in the class.

>
>
> > Been there, done that. By the end of the quarter they've not gotten as
> > far as when they've started with a high-level assembler. That's the
> > bottom line.
>
> Maybe that's the fault of the teacher and not of the students.

Easy for you to say. Prove me wrong. Go teach several classes and see
how well you do.
Cheers,
Randy Hyde

.



Relevant Pages

  • Re: HLA Stdlib v2.2 is now available.
    ... But HLA was written so Randy could teach assembly language ... long time to wait) If not all students make the "descent"... ... The first four chapters really aren't about programming. ... various machine instructions that allow them to learn the basic x86 ...
    (alt.lang.asm)
  • Re: Teaching Assembly Language Programming
    ... focusing on learning assembly language. ... distraction for many students: nightly keggers. ... programming projects around the things I wanted the ... The chapter on floating-point instructions would deprecate the use ...
    (alt.lang.asm)
  • Re: HLA v1.86 is now available
    ... because during that first week the students probably don't even ... Let's start with the instructions Evenbit used in his example: ... language course -- they can call a subroutine using syntax that is ... you have no experience teaching students assembly language ...
    (alt.lang.asm)
  • Re: Why I stop attacking HLA
    ... mastering other concepts in assembly language (such as how to do ... students crying about "busy work" and nonsensical assignments because ... instructions, then they're going to be more ... far as when they've started with a high-level assembler. ...
    (alt.lang.asm)
  • Re: Patriotism doesnt belong in our schools
    ... Mexican flags at a local Denver high school: ... Several students were under suspension for ... some of the students skipped classes and took to the ...
    (rec.sport.football.college)