How does a computer work? This is the basic question that we try to answer at this course. For a student who will become a computer or software engineer, the computer must not be a "black box" (even when it is really black).

Our first question will be, how must be a machine in order to be able of computing (and also, what it means). We will see that it may be quite simple (when the speed is irrelevant or we are interested merely in the principle). How were these machines built in the past?

We will learn the working of the processor, which is the most important part of a computer. How does the processor fetch instructions, decode them and execute? We will learn how the architecture of a computer affects its performance, how to increase the performance and how the performance is measured.

We will learn also the assembly language, which is the closest to the machine instructions of the computer. Its understanding is important also for successful programming in higher programming languages.