Governments all over the world are actively developing and enhancing computing and IT education across a very wide age range ranging from pre-school all the way through to technical training college level, university level and beyond. Studying computing and IT is a lifelong process. Technology is changing and evolving at an ever increasing pace. Economic, industrial and social development is becoming ever more closely tied in with mastering and exploiting developments in computing and IT.
Designing , Developing and Deploying (D3) a computing and IT curriculum is a complex task. As well as developing the curriculum itself there is, in its early stages (i.e. now) the challenging task of supporting and nurturing those who will be teaching in this area. This is especially true of non-specialists who will form the majority of those teaching computing to younger children and teenagers.
I first came across the Little Man Computer when writing and teaching a first year introduction to computing course at UMUC (University of Maryland University College) , a distance learning college similar to the Open University in the UK. The set book for this course was Irv Englander’s “The Architecture of Computer Hardware and Systems Software: An Information Technology Approach”. The students on this course mostly came from those working for local and federal US Government agencies as well as those from the armed forces. Mostly they came from backgrounds where attendance at an “Ivy League University” was beyond their wildest dreams because of the great costs involved in studying at such institutions. It was a joy and a privilege to work with these students many of whom were quite outstanding and able.
This, “little book”, is written in the hope that it will be of help to as many students, parents, home educators and teachers as possible. Making sense of computer instruction sets and writing code in assembler is far from easy. These days assembly language programming is taught less and less, even though it does have a role to play in the development of embedded systems such as the ever increasing number of such systems being developed as “things” for the “Internet of Things”. Writing assembly language programs requires being able to formulate and structure these problems at a higher level, before coming up with the final assembly language code. Thus simply learning about the Little Man Computer and “his” inner workings is not enough. It is also necessary to think about (and to teach thinking about) how the problem is to be tackled, starting off with thinking about a problem at a high level and then gradually breaking it down into a more detailed design using techniques such as hierarchical decomposition, pseudo code and flow charting. These topics are explored in this book.
Obviously teachers and instructors will have to adapt the various topics covered in this book to the needs of their students, and students using this book will need to focus on those topics that they are having problems with.
I hope that this book will be of use to both A Level and College/University Undergraduate Level teachers as well as to students struggling with “the mysteries of Little Man Computer (LMC) assembly language programming. My other hope is that this book will also serve as a “stepping stone” to real world assembly language programming.
Planned follow on books in this series of include:
- Atmel AVR 8 Assembly Language Programming.
- 8051 Assembly Language Programming.
- ARM Cortex M0, M3 and M4 Assembly Language Programming.
- PIC10, PIC12, PIC16 and PIC18 Assembler Language Programming.
- PIC24 and dsPIC Assembler Language Programming.
- PIC32 MIPS Assembly Languge Programming.