Main concepts of computer architecture; Hardware components of a computer; Instruction set: instruction formats, encoding of instructions, types; Execution unit: registers design, combinational shifters, ALU, division and multiplication algorithms; Control unit: register transfer language, hardwired and microprogrammed control unit; Memory unit: RAM, cache memory, associative memory, virtual memory; Input/output processors; Introduction to Assembly Language; Introduction to multiprocessor systems and parallel processing.