Jump to content
IGNORED

An observation


Willsy

Recommended Posts

Today, assembly language programming is an advanced topic that one normally doesn't encounter unless one was on an advanced degree in computer science or processor design.

 

In my day, we taught it to school children.

 

http://www.usborne.com/catalogue/feature-page/computer-and-coding-books.aspx

 

All the above books, written in the 80s are now available for free download. All of them are masterpieces. An equivalent simply does not exist today.

Edited by Willsy
  • Like 8
Link to comment
Share on other sites

I've often referred back to 80s computer books for inspiration in my programming classes (I don't recall seeing the Usborne books here in the US, but we had similar books for the computers that were popular here). I have to introduce my students to the binary and hexadecimal number systems, among other computing fundamentals, and I find that the older books are about the last ones that were written to explain these fundamental concepts to general audiences, so they're a great source of analogies and examples that are more accessible to novices than the dry coverage you'd see in a college textbook.

 

To give two examples: there was a book series called "The Visible Computer" (I have the Apple ][ version) which used an analogy about the telephone system to explain the relationship between binary and hex, and why hex is more convenient to use with computers than decimal, and I still use it in my classes today. I also like Michael Crichton's "Electronic Life", which is especially insightful and prescient for a book about computers written in 1983.

Link to comment
Share on other sites

Each generation has its own needs. There is really little need to do assembly language programming nowadays given the vast amounts of cheap memory available and the ever speedier processors. Furthermore, the design of the latter has gotten quite complex with multiple caches, cores and whatnot, so I presume assembly programming is likely much more complex now than back in the days of the 8bits...

That said, I think there is still value in teaching kids about microprocessor concepts at the very least, because for the majority of them a CPU might just as well be a magic box.

  • Like 1
Link to comment
Share on other sites

Today, assembly language programming is an advanced topic that one normally doesn't encounter unless one was on an advanced degree in computer science or processor design.

 

In my day, we taught it to school children.

 

 

We are teaching MIPS assembler in our introductory courses at the University. This is, by the way, quite a nice looking assembly language, I have to admit.

Link to comment
Share on other sites

 

 

We are teaching MIPS assembler in our introductory courses at the University. This is, by the way, quite a nice looking assembly language, I have to admit.

 

Same. I learned MIPS, and compiled Spim on my Solaris machine to play with it at home. ISTR there is a Spim for Windows.

 

We had an assignment which I thought was pretty awesome. We each picked one of a few scenarios provided by the instructor. Our program had to utilize all pipelines and if we stalled any of the pipelines we failed the assignment. I seriously enjoyed that assignment.

Link to comment
Share on other sites

I think the situation is different today, but not worse or lacking in any way.

 

Children tinkering with computers no longer need to do programming in order to be creative with them. In fact, it's very hard to program something yourself that gives a sense of accomplishment. Moving a sprite in assembly on the TI 99 was something, but today you look at your sprite and you look at Candy Crush and why bother?

 

IMHO the tinkerers (and I'm using this term in the most positive way) of today are attracted more to Arduino and the like, which offer far more unexplored opportunities to inquiring minds who lack any formal training -- yet.

Link to comment
Share on other sites

 

IMHO the tinkerers (and I'm using this term in the most positive way) of today are attracted more to Arduino and the like, which offer far more unexplored opportunities to inquiring minds who lack any formal training -- yet.

 

 

You are absolutely correct here. These microcontrollers are the new frontier :)

Link to comment
Share on other sites

That said, I think there is still value in teaching kids about microprocessor concepts at the very least, because for the majority of them a CPU might just as well be a magic box.

 

+1 to this.

 

My 13 year old daughter has taken programming classes in Java & Python. I've encouraged her, and her instructor tells me she's taking to it. Last month, she asked me: "I understand programming, but how do computers really work? What's really going on in there?" She wasn't being arrogant about having any kind of mastery at code, she was simply saying she gets the code-compile-run thing. What she was asking was, how does it really work under the hood?

 

It seemed to me that the best way to answer that question was to get her as close to machine instructions as possible, and the best way to do that is with Assembly.

 

I dug up my copy of ES/AS, and the Molesworth book, re-learned enough Assembler to do useful things, and started putting together a series of lessons to help her answer that question. My objective isn't to teach her assembly, or teach her computer architectures, but to give her a hands-on and non-theoretical answer to her question.

 

What's been great is being able to take the Listing generated by the assembler and showing her in memory where every instruction is, how code and memory co-mingle, and how the CPU steps through it. I've got a second (non-working) TI console that I opened up so we can visualize step-by-step the CPU interacting with memory and handing control over to things like the 9918A.

 

What I hope I've done is given her exposure to how substantial and tedious the grunt work going on in all those chips and circuitry really is. And, conversely, how much they scale: we're creating little 100 line assembly language programs, but CPU speed is measured in millions of instructions per second. It isn't too much a leap of her imagination to see how many CPU instructions her Java and Python code translates into, and how it all comes down to one thing: math.

 

Of course, it would be dishonest of me not to admit that it's been fun to code in assembly language again - and for a purpose! It's really satisfying to think at machine level again. Plus, I'm able to write my code using Notepad++, compile it with the Classic99 simulator (which IMHO is pretty good) and quickly debug, and in the process churn out a number of code riffs very quickly. Still, we transfer the code over to the 99/4A - nothing like running it on the real thing.

  • Like 5
Link to comment
Share on other sites

Did you know the number of Assembly Language Programmers in the USA has been in short decline for 20 years now?

 

This is why most are from other nations especially India. America focuses on C and other Languages and pretty much ignores Machine Language and Assembly.

 

Back in 2007 MIPS and other processors were taught at MIT, not only x86 Assembly is taught. The USA has fewer Assembly programmers then other nations.

 

This problem is caused by wages and education market no longer on the pulse of what Business needs.

  • Like 1
Link to comment
Share on other sites

I wish my kids would have an interest in computers, besides playing Minecraft with them. I've tried to get them to code in Scratch (https://scratch.mit.edu) but they're just not the geeks that I was at that age.

I've gotten them little electronics kits and taught them to solder. I've even had them play with Snap Circuits http://www.snapcircuits.netand Lego Mindstorms robotics kits, but they can take it or leave it.

They just don't have the geek gene - I would have gone nuts for these things, had they existed in the 70s

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...