Major Courses - 3rd Year - Bachelor of Science in Computer Science First Semester

This course subject introduces and explores the concept, design and structure, features, and the use cases of programming languages. Thus, discussions and applied activities will focus on the learning the fundamental concepts, building blocks of a programming language based on the different programming paradigms, code implementation, and utilization appropriateness as required by a project specification. In addition, this course will also cover the concepts of the different programming paradigms, including imperative, logical, object-oriented, functional, and scripting; as well as evaluating emerging programming languages on the aspect of writability, readability, reliability, and cost.

The goals of the course subject are that students (a) will gain knowledge and basic coding fluency in the different programming languages that are patterned from various major programming paradigms, (b) learn the different programming models, architectural patterns, and software classification to use in developing a software considering the trade-offs

This course is an introduction of the networking fundamentals. It introduces the concept of data communication and computer networking. The course presents discussion on reference models: OSI models, network layers, industry standards; network topologies; IP addressing, including subnet masks, TCP/IP network-layer protocols; networking components; basic networks design; overview of networking and communication software.

This course provides the students with the fundamental understanding of object-oriented programming using Visual Basic.Net. introduces the different concepts that are commonly associated with object programming.

This course provides a more in-depth concept of software engineering as a discipline with the application of theory, knowledge, and practices for effectively and efficiently building software systems.

It focuses on the concepts and principles of software requirements engineering, its tools, techniques, and methods for modeling software system. Various approaches to requirements analysis and review activities are examined.