Using the Altair Clone in the classroom

General discussions related to the Altair 8800 Clone

Using the Altair Clone in the classroom

Postby pngwen » July 13th, 2016, 11:25 am

Hi everyone! This is my first post, so I thought I would introduce myself and let you know what I am planning to do with my clone. My name is Bob Lowe, and I'm a professor of computer science at Maryville College. I'm going to be using my clone to teach my students about computer architecture. I chose this because it gives them a very up close view of what's going on inside the machine. Also, as there will likely only be one of these machines on campus, they will have to think more closely about their code as they will have more limited time to try it out.

My architecture course is really geared toward teaching them how computers are designed and organized. As part of the course, they will have to engineer their own instruction set and then implement that design using gate-level logic. In the past, I've always had them play with a couple of different machine languages in simulation, but this year they will have a physical machine to play with. Actually, I'm planning on having them do three physical machines. They will be getting hands on experience with the Intel 8080 on my Altair Clone, Z80 on their TI-83+/84+ calculators, MOS 6502 on an Apple 1 simulator, ARM via qemu, and then a little x86 at the end as a lead-in to my operating systems course.

I'll have them write basically the same suite of programs on all of these machines, though usually with a little bit of modification to pick up the flavor of the hardware they are using. For the 8080, z80, and 6502 they will write out assembly by hand and then work out the machine language. For ARM and x86, they will be using the gnu assembler. I've always done this in the past, but now I have a chance for them to really work with octal and binary via the switches on my clone!

If you would like to try them yourself, my suite of programs, as adapted for the Altair, are as follows:
  1. Count from 0 to 255 in binary over and over again. Display the numbers on the high order address bus lights. (Timing for visibility of course!)
  2. Fill all of the RAM following your program code with the number 42. BONUS: FIll all of RAM, including your program space, with 42.
  3. Write a program which sorts an array of bytes using any sorting algorithm of your choice.
  4. Create a four function calculator using the sense switches and the high order address bus lights. The two most significant bits of the sense switch words are the operator (00 - Add, 01 - Subtract, 10 - Multiply, 11 - Divide). The next three bits are the left operand, and the final three are the right operand.

That last one will be fun for them. I'm not going to draw attention to the fact that the 8080 has no multiply instruction. (I've done the same with z80 programming in the past, it's always a startling moment for them!) I'm also going to give them the chance to write a more elaborate program on the altair as an option for their final project. Of course, I will keep the machine set up in my office so they can play with it any time they wish!
pngwen
 
Posts: 13
Joined: July 7th, 2016, 9:57 am

Re: Using the Altair Clone in the classroom

Postby AltairClone » July 13th, 2016, 6:54 pm

Sounds like a great class!

Mike
AltairClone
Site Admin
 
Posts: 291
Joined: April 5th, 2013, 10:55 am

Re: Using the Altair Clone in the classroom

Postby pngwen » September 14th, 2016, 2:50 pm

So far this class is going really well! I've given the class their first Altair assignment. You can see the course page over at https://cs.maryvillecollege.edu/wiki/Architecture/fall2016

Also, I've noticed that the altair picks up chalk, but it comes clean easily. At the end of my lectures, the Altair Clone has been as dusted as I am!
IMG_20160912_152219.jpg


Of course the students are loving this. Here's one of my Juniors entering a program during class (he gave me permission to upload his picture here). I was giving a lecture on basic program operations (you can see that on the blackboards in the back), and we wrote a program that counts to 10 and then halts. The program is on the projector, and Tristin is entering the hand assembled machine code into the machine.

IMG_20160914_150539.jpg


On another note, when I was describing machine cycles and timing last week, the Altair really helped the class understand it. I loaded a few instructions, and then I single stepped through them. Talking through the status lights and address bus lights really helped my class grasp the full instruction cycle!
pngwen
 
Posts: 13
Joined: July 7th, 2016, 9:57 am

Re: Using the Altair Clone in the classroom

Postby AltairClone » September 14th, 2016, 9:20 pm

This would be such a fun class!

Here's my code for filling all of RAM (including the program itself) with 42 (2Ah):

Code: Select all

I decided to remove this code so your students can't find it :)

AltairClone
Site Admin
 
Posts: 291
Joined: April 5th, 2013, 10:55 am

Re: Using the Altair Clone in the classroom

Postby toml_12953 » September 15th, 2016, 4:05 am

pngwen wrote:So far this class is going really well! I've given the class their first Altair assignment. You can see the course page over at https://cs.maryvillecollege.edu/wiki/Architecture/fall2016


Where were you when I was in high school? Actually, there were no microcomputers back then but you sound like the kind of teacher who would've inspired me!

Tom L
toml_12953
 
Posts: 115
Joined: June 7th, 2013, 12:54 pm

Re: Using the Altair Clone in the classroom

Postby mail@gabrielegan.com » September 19th, 2016, 11:25 am

If you ever make a distance-learning version of this course, I'd love to take it. It looks superb. Lucky Tennesseeans.
mail@gabrielegan.com
 
Posts: 74
Joined: October 11th, 2014, 8:12 am

Re: Using the Altair Clone in the classroom

Postby JNZ » September 21st, 2016, 4:12 pm

I would've loved this when I was in college--and I would've done hours of research on my own to ensure that I could dominate the machine.

You should consider recording one of your lectures and putting it up online as open courseware.
JNZ
 
Posts: 32
Joined: March 13th, 2015, 1:13 pm

Re: Using the Altair Clone in the classroom

Postby pngwen » January 24th, 2017, 4:07 pm

I was playing with my Clone today and I realized I never posted a followup. The semester is over, and my architecture class is completed. I am pleased to report that the Altair Clone, as a learning aid, was an unqualified success! It factored in to my discussions of buses, CPU state, and machine code. The students all got a real kick out of programming it too! I noticed they picked up assembly faster than my previous group of students, and they had a good time exploring other processors as a result. I also saw a vastly improved performance in designing their own processor. Having this computer they can interact with at this level really gave them a clear picture of what a computer really is.

Some of my students really got into writing the programs. In fact one of them even opted to use chalk on my table top to help him map out his code!
IMG_20161004_172754.jpg


This machine is definitely going to become part of my regular teaching activities. Also, I have to say that the build quality is great. My clone has endured a semester of having its switches flipped by 10 frustrated 19 year olds, and it's still going strong! I am contemplating using my clone in my next class, which is operating systems. My students will be writing a UNIX-Like OS for the x86, and I thought I may follow along with them and produce a UNIX-Like microkernel for the 8080. (With all the problems that go with it!)

I'm still just toying with that idea. I'll let you all know if I do start writing an OS for this thing!

Oh yeah, I almost forgot. Mike, I enjoyed your program submissions. My students got a kick out of seeing some code written by the the clone's creator!
pngwen
 
Posts: 13
Joined: July 7th, 2016, 9:57 am

Re: Using the Altair Clone in the classroom

Postby AltairClone » January 26th, 2017, 7:59 pm

This is great to hear! I always imagined the hands-on "energy" the Clone could give to learning computer architecture and assembly language programming would make for a fun and productive classroom. Glad to hear it has done that for your students :)
Mike
AltairClone
Site Admin
 
Posts: 291
Joined: April 5th, 2013, 10:55 am


Return to General Discussions

Who is online

Users browsing this forum: No registered users and 1 guest

cron