This course provides students knowledge and abilities in “low” level programming. The students get to know the architecture of x86 microprocessor in order to program in assembler. We look into the assembler commands, procedures, common rules that should be followed while programming in assembly language. It is intended to provide basic knowledge how to create algorithms on assembler, control input/output devices, know main features of x86 microprocessor architecture. To obtain some practical skills students will have two coding assignments.