Bachelor of Science in Computer Science
English Requirements (9 credits)
This course is an overview of expository writing, including the development and revision of paragraphs and essays using various rhetorical strategies, as well as reading and discussion of selected essays, short stories and poems. In addition, the course introduces writing about literature, incorporation and documentation of material from primary sources.
This course introduces the conventions of research writing and teaches the process of producing well-planned research papers using critical thinking and analytical skills in response to a variety of academic texts. The course is designed to provide guidance in all steps of the research process including choosing a topic, designing a research methodology, analyzing data, and writing up and presenting results.
Prerequisite: ENGL 101
This course emphasizes on techniques for communicating successfully through sound, honest written and oral business messages. The content is directed primarily to careers that involve precise writing skills, as well as general strategies involved in job related functions.
Arab Heritage Requirements (6 credits)
This course aims at developing the language skills of native speakers of Arabic, by providing the students with a comprehensive knowledge of the linguistic system. It is intended to help students attain proficiency by expanding vocabulary and providing paragraph-level activities in reading, writing, and speaking; through a selection texts by writers from across the Arab world.
This course introduces the spatial character and history of Bahrain, including the ancient and Islamic eras, and Arabic and Islamic dimensions of the identity of Bahrain until the modern state and the development of the constitutional life in Bahrain, it also presents the philosophy of citizenship and the fundamental values of Bahrain’s society and citizenship rights ,duties and responsibilities.
Mathematics Requirements (10 credits)
This course introduces functions limits and continuity, derivatives of functions of one variable, application of the derivative, related rates, maximum and minimum values, the mean value theorem, the integral and indefinite integrals and integration rules, inverse functions, exponential and logarithmic functions, inverse trigonometric functions, hyperbolic functions, and L’Hospital’s rule.
This course involves the applications and techniques of integration, including integration by substitution, integration by parts and integration by partial fractions, application of integration, parametric equations and polar coordinates, convergence of sequences and series, Power Series and approximation using Taylor Series.
Prerequisite: MATH 151
This course emphasizes on vector functions (continuity, derivatives, and integrals), parametric curves and surfaces, polar coordinates, as well as functions of several variables (including continuity and partial derivatives, gradient, directional derivatives). Topics also include the chain rule, double and triple integrals, iterated integrals, integration using polar, cylindrical, and spherical coordinates, change of variables, line and surface integrals (including surface area), curl and divergence, and the integral theorems of Green, Stokes, and Gauss. Prerequisites: MATH 151 and MATH 152
Science Requirements (8 credits)
This course introduces the general principles of chemistry with emphasis on inorganic materials. This course will provide students with a comprehensive overview of the major areas of chemistry. The topics covered range from the atomic theory to the descriptions of chemical reactivity and reactions, quantitative methods in chemistry, reactions in aqueous media and chemical bonding. Prerequisites: High school chemistry and 2 years of high school algebra.
This course will provide students with a comprehensive overview of the some of the major areas of physics. Topics covered range from measurements and error analysis of physical dimensions to understand the concepts of motions and forces in one, two and three dimensions, free fall acceleration, kinetic, potential and conservation of energy.
Prerequisites: MATH 151
This course introduces students to laboratory and measurement techniques commonly used in chemistry laboratories. Techniques include mass and volume measurements, qualitative and quantitative analysis, volumetric analysis, thermochemistry, inorganic synthesis and spectrophotometric analysis.
Prerequisites: High school chemistry and 2 years of high school algebra
Social Science Requirements (9 credits)
This course introduces the basic principles and the definition of human rights with an emphasis on the International Convention of human rights. It aims to reflect current developments and questions arising in international human rights law, to communicate debates and arguments concerning human rights, and to analyze the application of international human rights principles in the context of Bahrain.
Psychology is a field focused on scientifically understanding how humans think, feel, and act. This course will introduce you to the basic concepts and research within the field of psychology and hopefully it will allow you to gain a better understanding of the self and others. The course will cover a wide range of topics such as research methodology, biological bases of behavior, perception, motivation and emotion, learning and memory, development, intelligence, personality and social influence.
This course provides a broad overview of sociology and how it applies to everyday life. Major theoretical perspectives and concepts are presented, including sociological imagination, culture, deviance, inequality, social change, and social structure. Students also explore the influence of social class and social institutions, such as churches, education, healthcare, government, economy, and environment. The family as a social structure is also examined.
Major Requirements (79 credits)
This course focuses on modeling, analysis, and design of digital systems, primarily at the logic design level. Digital electronic topics include: the basic logic gates, Boolean algebra, number systems, digital arithmetic, combinational logic circuits, multiplexers, decoders and flip-flops and registers. Digital system applications will include counters, magnitude comparators, Analog-to-Digital and Digital-to-Analog conversions, and memory units: Random Access Memories, and Sequential Access Memories.
Prerequisite: MATH 152
This course provides an overview of the organization and operation of computer hardware and software. Topics also include operating system shell and services, program design and development, input-output programming, multimodule and mixed-language programming, and assembler and C language. Prerequisites: CMPE 160 and CMPE 270
This course focuses on graphical user interface programming, including dialog boxes, menus, toolbars, status bars, fonts, icons and bitmaps. Content also involves event-driven programming, processes, event message processing, timers, on-idle processing, multithreaded programming and C++ Windows-class libraries, such as integrated development environments, application framework and document view architecture. Prerequisites: CMPE 160 and CMPE 271
This course focuses on embedded system architecture. Topics include IO programming using parallel ports, serial ports, timers, and D/A and A/D converters, as well as interrupts and real-time programming, program development and debugging tools and C language and assembler. Prerequisites: CMPE 271
This data science course is an introduction to machine learning and algorithms. You will develop a basic understanding of the principles of machine learning and derive practical solutions using predictive analytics. We will also examine why algorithms play an essential role in Big Data analysis.
Prerequisites: MATH 260
This course puts emphasis on object-oriented software development, classes, inheritance, design by abstraction, design patterns, object-oriented application framework and introduction to concurrent and distributed computing.
Prerequisites: CMPE 160 and CMPE 361
This course focuses on logic, methods of proof, set theory, number theory, equivalence and order relations, counting (combinations and permutations), and solving recurrence relations. Prerequisite: MATH 151
This course is a survey of systems of linear equations and matrices, Gauss elimination, matrices, matrix operations, inverses, elementary matrices, diagonal and triangular matrices, symmetric, skew symmetric matrices, determinants of square matrices, vectors in 2- and 3-dimensional space, norm, dot product, cross product, lines, planes, Euclidean vector spaces, linear mappings between Euclidean spaces, properties of linear mappings, general vector spaces, subspaces, linear independency, base and dimension, row, column and null spaces, rank and nullity, inner product, angle, orthogonality, Gramm-Schmidt process, change of basis, orthogonal matrices, eigenvalues, eigenvectors, linear transformations, Kernel, range, isomorphism and inverse linear transformations.
Prerequisite: MATH 151
This course is an introduction to probability, operations on sets, counting problems, definition of probability, conditional probability, Bayes' theorem, one- and two-dimensional random variables, mathematical expectation and variance, basic discrete and continuous probability distributions, moment generating functions, law of large numbers, and limit theorem. Prerequisite: MATH 151
This introductory course serves as a guide to new students in finding their way through the multi-facet and vast area of Computer Science and Networks. Its main objectives include teaching students about the function of the basic components and peripherals of a computer, its uses in the real world, data conversion techniques and the importance of binary coding, as well as the basic components of computer networks and their uses in the modern world.
The main objective of this course is the investigation of the role and impact of information systems in business functions, through the examination of major models of strategy and management information systems used in today's business environment. Additionally, it uses a conceptual approach through case studies of a series of information systems applied in the "extended" or "digital enterprise", such as Enterprise Resource Planning Systems (ERP), Customer Relationship Management Systems (CRM), Supply Chain Management Systems (SCM) and Decision Support Systems.
This course allows students to learn how to use Abstract Data Types (ADT) with references from our daily lives e.g. in a bank queue management or list of contacts on our mobile phone. The course has four main objectives. Firstly, it aims to consolidate and advance knowledge in C programming in general. Secondly, it investigates the use and development of ADT and thirdly, the course teaches students programming techniques. Finally, students are encouraged to identify the connection of the course material with real world applications.
Prerequisite: CMPE 160
The aim of the course is to understand the principles of operation and design choices of communication networks, as well as to learn the basic characteristics of the prevailing network technologies. The focus of the course is the Internet, covering issues related to the planning, implementation and operation of communication networks with emphasis on fundamental concepts and principles.
Pre-requisite: COSC 125
The course covers topics on technical analysis and runtime algorithms, asymptotic notation O, Z and I, some data structures (e.g. heaps and priority queues), sorting and searching algorithms and algorithm design techniques. Students will also learn about basic graph algorithms (search by width and depth, applications, coating trees, shortest paths, matching) and NP-completeness.
Prerequisite: MATH 203
This module aims to introduce students to the use of quantitative methods and techniques for effective decision–making; model formulation and applications that are used in solving business decision problems. Operations research helps in solving problems in different environments which require decision-making. The module covers topics which include: linear programming, Transportation, Assignment and CPM/ MSPT techniques.
Prerequisites: MATH 151, MATH 152
The course will teach students about data modeling techniques, relational database design, use of normalization to design normalized relational databases, Structured Query Language’s (SQL), data definition (DDL), data manipulation (DML) and data control (DCL) components.
Prerequisite: CMPE 271
This entry level course in Computer Graphics is focused on understanding the geometry of two and three dimensions as well as basic algorithms for coloring and lighting design for two-and three-dimensional direct imaging. Students will have the opportunity to learn about the algorithms currently used to design graphics and real-time photorealistic graphics as well as about the related hardware.
Prerequisite: MATH 254
This course teaches the basic operating system abstractions, mechanisms and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication and an introduction to distributed operating systems.
This course addresses the basic notions on IS, namely, basic development life cycle; analysis and design techniques; information systems planning and project identification and selection, requirements collection and structuring. Process modeling, conceptual and logical data modeling and database implementation are also covered. The course also examines several development methodologies, which may be used to manage the software development process. Such methodologies include among others, Structured Systems Analysis and Design Methodology (SSADM) and the Systems Development Life Cycle (SDLC); agile and iterative methodologies including Prototyping, Rapid Application Development and other agile software development approaches; Object-Oriented Analysis and Design using UML and other.
The course covers some key issues related to the organization and storage of data to external storage. The specific topics discussed include the concept of file storage peripherals and physical characteristics, layout and sort files located on disks, primary file organization, secondary file organization, static and dynamic data structures, Indexed Sequential Access Method (ISAM), static and dynamic fragmentation, B+ trees and multidimensional data structures.
Prerequisite: COSC 312
The course aims to provide students with deep knowledge on various concepts of classical computer and network security paradigms and also enable them to evaluate contemporary security policies and security mechanisms within organizations and assess the balance of the managerial and technical aspects of network security.
Prerequisite: COSC 372
The main objective of this course is to introduce the theory and practice of Artificial Intelligence (AI). This course is designed to develop an understanding of the fundamental issues associated with the field such as problems and search, knowledge representation and reasoning, game playing and rule-based systems. Advanced topic areas such as probabilistic reasoning and Bayesian networks are also introduced.
Prerequisite: COSC 125
The main objective of this course is to provide students with the necessary skills and tools to allow them to undertake most network operation roles within an organization. Topics range from technical to soft skills and include best practices and the key theories behind them.
Prerequisite: COSC 215
This course provides students with the opportunity to practice on the job at an accounting department of a business organization or at an audit firm for a period of six to seven weeks, thereby transferring and developing industry-specific, IT and business skills acquired from prior study.
Prerequisites: Junior standing
Major Electives (6 credits)
The course belongs to the area of Scientific Computing which has applications in various disciplines. The numerical simulation is an important tool for the study of scientific problems arising from several disciplines such as Physics, Chemistry, Geology, Biology and Economics. Most of these problems result in solving a mathematical problem, for example, in solving a large system of linear algebraic equations, which can only be solved by numerical methods. The aim is to equip students with the knowledge to develop software for the numerical solution of basic mathematical problems.
Prerequisite: MATH 152
The course is a continuation of Graphics I and covers main topics and new developments in computer graphics such 3D printing, game engine programming (Unity3D), Virtual Reality and real-time ray tracing.
Prerequisite: COSC 348
This course consists of lectures as well as laboratory exercises. Starting from the basic background of the organization and architecture of computers that students have learned during the Computer Architecture I course, this course aims to build on that knowledge to provide students with tools and skills regarding basic techniques that enhance computer performance. More specifically, the parallelism level command, the caches and the system input and output.
Prerequisite: CMPE 271
Our ability to generate and collect data over the years has been increasing rapidly. The widespread use of information technology in our lives has flooded us with a tremendous amount of data. This explosive growth of stored and transient data has generated an urgent need for new techniques and automated tools that can assist us in transforming this data into useful information and knowledge. Data Mining has emerged as a multidisciplinary field that addresses this issue.
Prerequisite: COSC 412
In this course students are taught about network security and access security models in relation to security attacks, mechanisms and services. An overview of secret-key and public-key cryptography is covered. The course includes authentication protocols and key management, network security practice, email security, IP security and web security, intrusion detection and prevention systems, firewalls and virtual private networks as well as wireless network security.
Prerequisite: COSC 248