Online Computer Architecture and Assembly Language Introduction

Online Computer Architecture and Assembly Language Introduction


[music] Hi, and welcome to the computer architecture
and assembly language course on Ecampus at Oregon State University. My name is Paul Paulson, it really is. Over the years my signature has evolved to
Paul2son. I mention this so that you will recognize
my signature in emails, etcetera. For nearly 30 years I have taught just about
every computer course under the sun, from programming in several languages to computer
networking and advanced operating systems. I have taught in the New York Suny system
in places like Malaysia, Taiwan, Japan, and a decade here at OSU. After all these years teaching all these courses
in all these places, what is my absolute favorite course to teach? This one—Architecture and Assembly language. It has always turned out to be an amazing
journey. Many students are baffled at first because
the course content is so very different from topics covered in other courses, and assembly
language programming can seem like the very heart of darkness, but I really think that
by the time you complete this course the lights will be on and you will have a much deeper
understanding of why it is important. The main theme of CS 271 is how computers
work. I have often heard students, and even professors,
say one doesn’t need to know how a computer works to be able to use it, to program it,
etcetera. In fact, some important and respected computer
scientists have said that “Computer science is no more about computers than astronomy
is about telescopes.” This quote is often attributed to Edwsger
Dijkstra, Paul Abelston, and others, and there is certainly some truth in the idea. The prevailing analogy is that you don’t
need to know how engines, transmissions, and so forth work to be able to drive a car. Unless, of course, you pilot a 1948 MGTC like
I do. Or perhaps you are seeking a deeper understanding
of how machines work, specifically the machine you have chosen as the focal point of your
profession. [door opening] But be all that as it may, there are three
very good reasons to learn about how machines work. First, if you understand how computers work
you will have a better idea of what to do and whom to believe when problems and disasters
occur. I am sure you have had software support tell
you that the problem is in the hardware, and hardware support will tell you that it is
a software problem, which usually doesn’t help to solve the problem. The second reason is there are strong demands
for computer scientists who understand enough about hardware to be able to communicate with
hardware developers. There is a tremendous boom in developing programs
for embedded devices, device drivers, big data storage and retrieval systems, high-speed
graphics, and so forth. We frequently hear about our industry contacts
about the important of integrating hardware/software teams. The third reason is that figuring out how
things work is a natural drive for problem solver types, so this course can help you
to satisfy your innate sense of curiosity. There is another reason to learn about architecture
and assembly language: you might find out that you love it, as I do, or you might hate
it. Very few students end up in the middle of
that spectrum. Perhaps you love it enough to develop your
career around some of these topics. “Fat chance” you might be thinking, because
on the other hand you might find out that you do not want ever, never ever in your life
to have anything to do with low-level programming, but either way, these are good things to know
when you start looking at job descriptions. Now about the course format. Some of the lectures are simulated white board
talks and some are slide presentations. In the lectures I will emphasize the main
points of the reading and the slides. The lecture slides will be posted so you can
review them at your convenience. Just a bit of a disclaimer: the first week
is rather intense, as we set up the foundation and the framework for the course. Some of the material will be review for some
of you, but do look at all of it to be sure that we are on the same page. In subsequent weeks we will focus on more
specific topics. Be sure to read the “Welcome to CS 271”
document on the course website. It briefly describes the course, the prerequisites,
and the system requirements. There are also inks on this week’s calendar
to the systems you will need for assembly language programming. Be sure to follow the directions carefully,
especially when installing the textbook’s library. Contact us if you have trouble getting set
up. Remember to contact us if you have questions. [music] There is one prerequisite that is not mentioned
in the document, and that is perseverance. Assembly language programming can be frustrating,
to say the least. Be persistent and use the available resources. One of the most important skills you can develop
is the ability to figure out how to figure things out. You can do this. [music] So welcome to CS 271. I am really glad you are along for the ride. [music]

9 thoughts on “Online Computer Architecture and Assembly Language Introduction”

  1. Thank you for the brief statement of Architecture and Assembly Language topic Mr Paulson. I will treasure your advice and remain in perseverance so I won't be intimidated by the complexity of programming in Assembly language.

  2. He was a student teacher at the middle school I attended in the late 60's.  Really a wonderful man then, and only looks a little more gray now, everything else looks the same. I was emailing a friend who attended the same school, and she said he was her favorite teacher.

  3. This class was absolutely outstanding. What a brilliant and encouraging teacher! Proud to say I have been as he says 'along for the ride'!

Leave a Reply

Your email address will not be published. Required fields are marked *