Course Code & Title: BSCS 1160 COMPUTER ETHICS AND SOCIETY
Course Description:
The course covers the different ethical and social issues related to the development and use of computer technology. The course covers the responsibilities of computer professionals for applications and consequences of their work regarding the social, political, legal, and ethical contexts, including social impact of computers and the Internet, professionalism, codes of ethics, responsible conduct, copyrights, intellectual property, and software piracy.
Course Code & Title: BSCS 1320 Computer Architecture and Organization
Course Description:
This course covers the principles of computer organization and instruction set architecture. It describes the interface and the interaction between the hardware and the software components. It focuses on functional architecture design of computers, assembly programing, instruction sets, processor arithmetic and control, pipelining, memory management, storage, and other input/output topics.
Course Code & Title: BSCS 1330 Discrete Structures
Course Description:
The course focuses on the foundational mathematical models essential for higher-level computer science courses such as networking, operating systems, intelligent systems, compilers, software engineering, cryptography, and databases. This course covers the propositional and predicate logic, and proof techniques used for proofing mathematically rigorous argument. The course examines and analyzes graphs, probability, and set theories.
Course Code & Title: BSCS 1350 Introduction to Programming
Course Description:
This course builds the foundation for coding experience through explaining the syntax and semantics of a higher-level language. The course covers developing programs using fundamental concepts of procedural programming including primitive data types and strings, decision and iterative control structures, functions, and parameter passing, Input / Output statements, and arrays. It also covers the mechanics of running, testing, and debugging computer programs using proper Integrated Development Environment (IDE) with a substantial utilization of lab-based exercises.
Course Code & Title: BSCS 2310 ANALYSIS OF ALGORITHMS
Course Description:
This course covers methods for designing efficient and reliable algorithms for sorting, searching, and selection, using several algorithm design strategies. It emphasizes the proving of algorithm correctness using worst and average case analysis and the implementing of many common algorithms using several algorithm design techniques, including divide-and-conquer, dynamic programming, Branch-and-bound, Recursive backtracking, Brute-force algorithms, and greedy algorithms. The course also covers algorithms of advanced data structures, such as search trees and graph algorithms: minimum-cost spanning tree, connected components, topological sort, and shortest paths.
Course Code & Title: BSCS 2351 FUNDAMENTAL DATA STRUCTURES
Course Description:
This course covers program design, analysis, and verification as well as the study of basic data structures including array-based sequences, linked lists, stacks, queues & deques, trees, hash tables, maps and graphs. It presents the proper use of built-in data structures, their alternative implementations, and the strategies for choosing the proper structures. The course also introduces recursion techniques and algorithms used to process and traverse presented data structures such as Insertion Sort and Binary Search Tree algorithms.
Course Code & Title: BSCS 2355 OBJECT ORIENTED PROGRAMMING
Course Description:
This course covers the concepts of object-oriented programming (OOP). It provides a review of the object-oriented programming paradigm with an emphasis on the definition and use of classes and objects, as well as fundamental OOP concepts like encapsulation & information hiding, inheritance, polymorphism & overriding, as well as abstraction & interfaces. The course also covers fundamental programming concepts including files & streams operations and exception handling.
Course Code & Title: BSCS 2370 OPERATING SYSTEMS
Course Description:
This course introduces several types of operating systems (OS), including networked, client-server, distributed operating systems, and their roles, purpose, and functionalities. It also focuses on operating systems design and implementation issues: system security; synchronization and communication mechanisms; process implementation, management, scheduling, and protection; virtual machines; memory organization and management, involving virtual memory; and I/O device management, secondary storage, and file systems.
Course Code & Title: BSCS 2375 Networking and Data Communication
Course Description:
This course focuses on fundamental concepts of data communication and networking principles. It introduces the underlying design, components, and protocols of each layer of the computer networks layered architectures: application, transport, network, datalink, and physical. It also presents some application layer protocols (HTTP, FTP, DNS…), connection oriented and connection less oriented communication and reliable data transfer. The course covers also multiple access techniques, wired and wireless LANs, network devices, IP addressing, and laboratory experiments. This course prepares to Cisco certificate: CCNA1 and CCNA2.
Course Code & Title: BSCS 3330 Computational Science Principles
Course Description:
This course focuses on the concepts and practices of data modeling, simulation, and analysis of physical processes. It covers basic computational simulation and modeling tools, such as Python toolkit stack. The course also introduces common computational algorithms for performing scientific modeling, including computational integration and differentiation, random Monte Carlo methods and solutions of ordinary differential equations.
Course Code & Title: BSCS 3340 COMPUTER GRAPHICS AND VISUALIZATION
Course Description:
This course describes the principles and basics of computer graphics generation and manipulation. It explains the fundamentals of rendering 2D shapes and 3D models using scan conversion algorithms, Application Programming Interface (API) such as Open Graphics Library (OpenGL), and graphics tools. It also introduces a mathematical camera model for light interaction with surfaces, lenses, and an imager to shade and texture realistic 3D models using color models, texture mapping, affine transformations, ray casting, ray tracing, anti-aliasing, and depth buffering techniques, and basic algorithms and applications for scalar and vector visualizations using visualization tools.
Course Code & Title: BSCS 3345 HUMAN COMPUTER INTERACTION
Course Description:
This course focuses on designing, implementing, and evaluating user interfaces of computational systems to enhance the interactions with human activities. It covers user-centered design, rapid prototyping and experimentation, user interface standards, cognitive and social models that inform interaction design, Graphical User Interfaces (GUI) principles and visual design tools, as well as designing Human Computer Interaction (HCI) on webpages, business applications, mobile applications, games, and other computer applications.
Course Code & Title: BSCS 3365 SOFTWARE ENGINEERING
Course Description:
This course focuses on the fundamentals systems development using standard analysis and design techniques including waterfall, spiral, and Objet Oriented Design (OOD) methods. It covers project management techniques as well as System Development Life Cycle (SDLC) phases: problem analysis, scope definition, system requirements specification, system design and modeling, system implementation and validation, and system deployment and maintenance.
Course Code & Title: BSCS 3380 Artificial Intelligence
Course Description:
This course introduces fundamental techniques in the field of Artificial Intelligence (AI), which studies solutions for problems that are difficult or impractical to solve with traditional methods. It covers search strategies including uninformed search, heuristics and informed search; knowledge representation and reasoning, basic machine learning methods. The course also presents current AI applications in selected areas such as game playing and natural language processing.
Course Code & Title: BSCS 4315 Parallel and Distributed Computing
Course Description:
This course introduces basic concepts in the design and implementation of parallel and distributed systems. It focuses on the fundamental architecture of parallel and distributed systems as well as the computing algorithms and programming models to build those systems. The course also covers the communications and coordination of parallel and distributed systems in addition to emerging technologies including cloud computing, grid computing, cluster computing, and supercomputing.
Course Code & Title: BSCS 4390 Advanced Applications Programming
Course Description:
This course introduces the theory, design, techniques, practices, and languages used to develop software systems and applications for the internet and cloud computing, with a focus on web-based client server applications and mobile applications. It covers several advanced applications development environments including web development programming using JavaScript, Hyper Text Markup Language (HTML), Cascading Style Sheets (CSS), Extensible Markup Language (XML), and web services as well as mobile application development of major mobile operating system platforms for both smartphones and tablets. It also covers server database management technology such as Active Server Page (ASP), and cross-platform development. The course emphasizes the development, design, and building of a variety of apps to reinforce learning and to develop real competency.
Course Code & Title: BSCS 4391 Capstone Project I
Course Description:
This course is part of a two-part fold capstone project, completed in Capstone Project II. The project stresses the integration of learning from across the curriculum within the Computer Science field with a strong technical focus. Teams practice gained knowledge and skills, in a realistic development setting with real clients. The course covers design thinking principles and techniques, and analysis of the client’s business processes to produce a project proposal that addresses a contemporary business issue or an opportunity. Projects are completed in Capstone Project II.
Course Code & Title: BSCS 4392 Capstone Project II
Course Description:
This course is a continuation of a two-part research project, begun in Capstone Project I course. It stresses on the integration of learning from across the curriculum within the Computer Science field in an applied capstone project with a strong technical focus. This course concentrates on the further development, information system project implementation, deployment, and validation of information system projects. The course emphasizes the successful demonstration of the information system in a practical environment.
Course Code & Title: BSCS 4393 INTERNSHIP
Course Description:
This course offers the opportunity to undertake either an external work experience at an organization or on-site professional practicum relevant to the field of Computer Science. The Internship provides the ability to apply skills and academic knowledge acquired in a contemporary workplace situation and to receive hands-on learning, in preparation for the workforce.
Course Code & Title: ICTC 1302 INFORMATION AND COMPUTING TECHNOLOGY CONCEPTS
Course Description:
This course focuses on the history of computer evolution and the role of computation in solving problems for cybersecurity, computer science, information systems, and information technology. It overviews computer hardware, software and information systems, as well as communication applications and security protocols. The course also focuses on enhancing the problem-solving skills using problems analysis techniques and charts including Problem Analysis Chart (PAC), Input Processing Output (IPO), Interaction Chart (IC), and Flowcharts as well as algorithms and pseudocodes.
Course Code & Title: LOGC 1202 Digital Logic Concepts
Course Description:
This course focuses on fundamental constructs and concepts underlying computer hardware, the structure of computers components, and digital logic. It presents number systems notions and operations including decimal, binary, octal, and hexadecimal systems. The course also covers binary arithmetic, codes, Boolean algebra, gates, Boolean expressions, sequential circuits, and flip/flops.