This course introduces students to the fast-growing and multidisciplinary field of interaction design. The course starts with the different issues and topics related to the traditional human-computer interaction. It also covers understanding the users’ needs, identifying requirements, and develop them into a suitable design. In the design aspect, part of the course will discuss the different technologies available for interaction designers in UX/UI designing, including the prototyping tools.

This course introduces the foundations of discrete mathematics as they apply to computing focusing on providing a solid theoretical foundation for further work. Topics include sets, functions, relations, proofs and theorems, Boolean algebra, propositional logic, digital logic, fundamentals of counting, and graphs and trees.

This course introduces the concepts of object-oriented programming to students with background in the procedural  paradigm. It intends to familiarize the students with the dynamics of analyzing and solving problems using an object oriented programming language. The course’s topics include data abstraction, unified modeling language, and classes and objects, inheritance and polymorphism, interfaces, and persistent storage.

This course introduces the foundations of discrete mathematics as they apply to computing focusing on providing a solid theoretical foundation for further work. Topics include sets, functions, relations, proofs and theorems, Boolean algebra, propositional logic, digital logic, fundamentals of counting, and graphs and trees.

This course introduces the concepts of object-oriented programming to students with background in the procedural paradigm. It intends to familiarize the students with the dynamics of analyzing and solving problems using an object oriented programming language. The course’s topics include data abstraction, unified modeling language, and classes and objects, inheritance and polymorphism, interfaces, and persistent storage.