This course provides basic knowledge of computing and introduces the elementary components of computer systems and data processing, in addition to assembly language programming. Through this course, students will also learn about computer parts and data representation and flow among these parts. The students will learn logic gates and logic circuit design. They will learn how to create assembly language programs. We will use this language to better understand the differences between high-level and low-level programming languages. Through it, we will also be able to see programs and data in a way that more closely related on a hardware level. Students will also learn how to program a structured program in Assembly using Jump instructions. Advanced programming techniques in Assembly such as procedure definition, recursion, stack implementation, among others will also be covered.

- Teacher: Atef Shalan