This course covers advanced computer programming constructs and introduces object-oriented programming concepts using appropriate programming languages (s) such as C, C++, and Java. Emphasis is on control and modular structures, simple data structures, and the difference between procedural and object-oriented programming approaches. Topics include arrays, strings, abstract data types, classes, and objects.

This course is the study of fundamentally-countable mathematical structures. Emphasis is on finite mathematics required in the theoretical study of computing. Topics include sets, logic, relations, functions, combinatorics, and probabilities.

This course covers the fundamental concepts of data representation, analysis, and design of sequential and combinational circuits, functional properties of digital integrated circuits, and its applications. Emphasis is on simplification and minimization, logic circuits, and introduction to IoT (Internet of Things). Topics include Boolean algebra, truth tables, Karnaugh maps, basic electronic concepts, logic gates, combinatorics, and basic IoT concepts and architecture.