Computer Science

Studying Computer Science

Computer scientists are trained in the theory of computation and the design of computer systems. The computer science discipline is associated to mathematics and includes topics ranging from theoretical (such as studies of the limits of computation) to practical (such as issues of implementing computing systems). The scope of work for computer scientists falls into three categories: designing and implementing software, devising new ways to use computers, and developing effective algorithms to solve computing problems.

Transform Your Passion For Details Into a Career

Program Educational Objectives

Graduates will demonstrate proficiency in analyzing complex computing problems, designing algorithms, and implementing effective and innovative solutions using computational thinking and problem-solving techniques.

Graduates will apply a solid foundation of computer science principles to analyze, design, and develop innovative solutions to real-world challenges in diverse domains, exhibiting adaptability and creativity in response to new technological paradigms and problem-solving situations.

Graduates will work seamlessly and ethically within multidisciplinary teams, communicate complex technical concepts clearly, and contribute positively to collaborative projects in both technical and non-technical settings, making informed decisions that consider societal, cultural, and environmental factors, fostering responsible and sustainable technological solutions.

Graduates will exhibit leadership skills by guiding projects, inspiring peers, and driving positive change. They will apply entrepreneurial thinking to identify opportunities, take calculated risks, and transform ideas into viable ventures. They will address local and global challenges, making valuable contributions to the community through outreach, mentorship, and socially impactful projects.

Graduates will engage in continuous self-directed learning to stay current with emerging technologies and trends, progressing in their careers to assume roles of increasing responsibility and technical expertise within academia, industry, research, or other relevant fields.

Student Outcomes

Graduates of the Computer Science program will have the ability to

Analyze a complex computing problem and apply principles of computing, mathematics, scientific reasoning, and other relevant disciplines to identify solutions.

Design, correctly implement, evaluate, integrate, and document secure computing-based solutions to meet a given set of computing requirements in the context of the Computer Science discipline.

Communicate effectively, both orally and in writing, in a variety of professional contexts.

Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

Function effectively as a member or leader of a team engaged in activities appropriate to the Computer Science discipline.

Initiate and produce self-directed computing-based solutions using computer science theory and fundamentals, demonstrating the ability to independently explore advanced topics, and stay updated on emerging trends in the field.

99

Credits

To Graduate

Major Core Requirements: 43 Credits
Major Electives: 18 Credits
Mathematics Requirements: 12 Credits
General Education Requirements (GER): 26 Credits

General Education Requirements 26 Credits

ENG 200 Writing Skills (3Cr)

ENG 201 Rhetoric I (3Cr)

REM 308 Research methodology (3Cr)

BUS 210 Business Communication Skills (3Cr)

BUS 201 Foundations in Business

or

ENT 301 Start-up Business Entrepreneurship (3Cr)

HUM 318 Human Rights (3Cr)

CSC 212 AI and Society 

or

HUM 212 AUT cultural Plus (1Cr)

ART 200 Drawing & Illustration I (3 CR)

ART 205 Contemporary Arts (3 CR)

ART 206 History of Art and Design (3 CR)

HUM 210 Arts Appreciation (3 CR)

HIS 200 History of Modern Lebanon (3 CR)

POL 202 Globalization & Political Changes (3 CR)

PSY 201 Introduction to Psychology (3 CR)

SOC 201 Introduction to Sociology (3 CR)

 COM 208 Introduction to Social Media (3 CR)

HLT 210 Health & Wellness (3CR)

NTR 201 Introduction to Nutrition (3CR)

ENV 201 Man in the Environment (3CR)

CSC 201 Introduction to Information Technology (3CR)

PED 2** Physical Education (1CR)

Mathematics Requirements 12 Credits

To introduce students to the methods and applications of calculus and to a mathematical way of thinking. After completing this course, students should be well versed in the mathematical language needed for applying the concepts of calculus to numerous applications in science and engineering. They should be prepared for courses in differential equations, linear algebra, or advanced calculus.

Logic; Propositional Equivalences; Predicates and Quantifiers; Methods of Proof; Sets; Functions; Proof Strategy; Mathematical Induction; Recursive Definitions; Permutations and Combinations; Relations and their Properties; Representing Relations; Equivalence Relations;
Introduction tographs; Graph Terminology; Introduction to Trees.

Matrices and their properties; Methods for solving systems of linear equations;Gaussian and Gauss-Jordan elimination; Vector spaces and
subspaces; Inner product spaces; Gram-Schmidt process; determinants and their properties; Cramer’s rule; Eigenvalues and eigenvectors; Diagonalization; Linear transformation.

Basic statistical techniques emphasizing engineering and science applications. Topics covered include graphical and numerical data summary techniques, population models, probability theory, probability distributions, mathematical expectation, sampling distributions, estimation,
hypothesis testing, simple regression, statistical quality control.

Computer Science major Requirements 43 Credits

This course provides students with a deep understanding of the fundamental principles governing the internal structure and operation of digital computers. It explores the intricate relationship between hardware and software, delving into how computer components are organized
and how they collaborate to execute programs efficiently. Topics include: Number systems, data representation, processor organization and instruction set architecture, memory hierarchy, input/output systems, and assembly language programming

This is a foundational course that provides students with the fundamental knowledge and skills required to begin programming and develop software applications. The course introduces key concepts and principles of programming, focusing on problem-solving, algorithmic thinking, and good programming practices. Students will learn the basics of data types, control structures, functions, and basic algorithms. They will develop the skills necessary to design, write, and debug programs to solve simple computational problems.

This lab is a practical companion course to CSC 206. In this lab, students will apply the concepts learned in the lectures through hands-on programming exercises. The lab provides a supportive environment for students to gain practical experience in coding, debugging, and problemsolving.

This is an intermediate-level course that aims to develop students’ understanding and proficiency in designing and implementing software solutions using object-oriented programming (OOP) methodologies, principles, and techniques. Students will learn how to structure programs
around classes and objects, inheritance and polymorphism, and exception handling, enabling them to create modular, reusable, and maintainable code.

This lab is a practical companion course to CSC 208. In this lab, students will apply the concepts learned in the lecture through hands-on coding exercises and projects. The lab provides a supportive environment for students to gain practical experience in designing, implementing, and
testing object-oriented software systems.

This course provides students with a comprehensive understanding of fundamental data structures and their associated algorithms. Topics include: One-dimensional and multi-dimensional arrays, linked lists, stacks and queues, trees and binary trees, heaps and priority queues, hashing, and graphs.

This course provides a comprehensive introduction to the principles, concepts, and practical aspects of database management systems (DBMS). The course aims to develop students’ understanding of data modeling, entity relationship modeling, relational database design, SQL (Structured
Query Language) programming, database security and integrity, and database 180 administration. Students will learn how to design, implement, and query databases, enabling them to effectively manage and manipulate data in various applications.

This course provides students with a comprehensive understanding of the principles of computer networks, protocols, and technologies that underpin modern networking. Topics include application layer protocols (http, smtp, DNS), transport layer protocols (UDP, TCP), network layer protocols (IPv4, IPv6, SDN), routing algorithms, link layer and LAN, wireless and mobile networks (WiFi 802.11), security, and multimedia.

This lab is a hands-on companion course to the theoretical concepts covered in CSC 315. Through a series of structured labs, interactive simulations, and real-world scenarios, students will gain a deeper understanding of the foundational principles and technologies that drive modern computer networks.

This is an introductory course that provides a solid foundation in web development concepts and techniques. It focuses on the fundamentals of web programming, including HTML, CSS, and JavaScript. Students will learn how to create static web pages, apply styling using CSS, and add interactivity through client-side scripting with JavaScript. The course will also cover topics such as web design principles, responsive web development, and web accessibility.

This course provides a comprehensive introduction to the principles and practices of System Analysis and Design in the context of developing robust and efficient information systems. Students will engage in problem solving activities and explore contemporary industry practices and the entire system development life cycle, from understanding business requirements to designing and implementing effective solutions. Topics include system requirements elicitation, analysis, and documentations, system architecture design that meets business objectives, use case modeling, domain modeling, user interface design, database design, object oriented design, project planning and project management. Selected cybersecurity and ethical issues relevant to this course will be examined.

This course provides a comprehensive introduction to the design, implementation, and functionality of operating systems.                             Topics include: Process management and scheduling algorithms, memory management and allocation techniques, file systems, input/output (I/O) operations, security, reliability, and performance. Students will examine concepts such as process synchronization, deadlock avoidance, and error handling. They will also explore methods for optimizing system performance through efficient resource management and scheduling strategies.

This hands-on laboratory course introduces students to essential Linux operating system skills using a modern Linux distribution such as Ubuntu. Students will learn and practice fundamental shell commands, file system navigation, file and directory management, user and group administration, permissions, and basic process and job control using the Bash shell. The course includes use of standard tools such as vi, Nano, top, chmod, chown, and ps. This lab complements the Operating Systems lecture course by providing practical experience in Linux system
environments.

This course provides a foundational understanding of the theoretical structures of computer science. It explores the fundamental capabilities and limitations of computation by examining abstract models of computation such as finite automata, pushdown automata, and Turing machines. Students will learn to formalize computational problems, analyze their inherent complexity, and understand the hierarchy of languages and the power of different computational models. Topics covered include regular languages and expressions, context-free grammars and languages, the Church-Turing thesis, decidability and undecidability, and an introduction to computational complexity theory.

This is an advanced level course that explores the fundamental concepts of algorithm analysis, the design and implementation of efficient algorithms, and strategies for solving complex computational problems. Topics include: Time complexity, space complexity, asymptotic notation, performance evaluation of algorithms, divide and conquer, greedy algorithms, dynamic programming, backtracking, randomized algorithms, sorting, searching, graph algorithms, approximation algorithms, parallel algorithms, and NP-completeness, providing a deeper
understanding of algorithmic complexity and the limitations of computation. The course also emphasizes problem-solving skills and algorithmic thinking. Students will be challenged with problem-solving exercises and programming assignments to apply the concepts learned in class.

This course provides students with a comprehensive understanding of the fundamental concepts, principles, and practices related to information security. It explores the protection of information assets from unauthorized access, disclosure, alteration, destruction, and disruption. Topics include: Threats and vulnerabilities, security policies and standards, risk management, cryptography, network security, application Security, incident response and disaster recovery, legal and ethical considerations, and emerging trends in information security,
such as cloud security, mobile security, IOT security, and artificial intelligence in security.

The Internship provides students with practical experience in a professional setting, allowing them to apply computer science knowledge in real-world environments. Students work in organizations—ranging from startups to established tech firms—for a minimum of six weeks, contributing to projects aligned with their skills and interests. Guided by industry professionals 190 and academic supervisors, they engage in meaningful tasks, gaining insight into industry practices and challenges. The internship emphasizes professional growth, requiring students to reflect on their experiences, document achievements, and assess their performance. Feedback from industry mentors helps students identify strengths and areas for improvement, enhancing both technical and professional development.

Computer Science major Electives 18 Credits

Choose six of the following courses or one of the tracks

This course offers an in-depth exploration of the principles, techniques, and technologies underlying the creation, manipulation, and rendering of images and visual content using computer algorithms. Topics include: Graphics hardware and APIs, basic drawing algorithms, 2-D and 3-D transformations and projection, curves and surfaces, windowing and clipping, curves and surfaces, hidden surface and hidden-line removal, texture mapping, color theory and shading models, illumination models, image synthesis and computer animation.

This course delves into the intricacies of creating interactive and immersive digital games and takes students through a comprehensive exploration of advanced techniques, tools, and methodologies used in the game design and programming industry. Students will gain hands-on
experience in designing, developing, and optimizing games for various platforms, including consoles, PCs, mobile devices, and VR/AR systems. The course places a strong emphasis on both the technical and creative aspects of game development, allowing students to refine their programming skills while also honing their artistic and design sensibilities. Topics include: Game design and development principles, multiplatform proficiency, optimization techniques, and user experience (UX) design.

This course provides an in-depth knowledge and practical skills necessary to design, develop, and optimize advanced database systems.    Topics include: Advanced data models, query optimization techniques, transaction management, distributed databases, and data warehousing. Other advanced topics may be covered, such as database security, data mining, big data management, and cloud databases. Emphasis will be placed on both theoretical foundations and practical implementations, enabling students to apply their knowledge to real-world scenarios. The
course is delivered through a combination of lectures, hands-on programming exercises, group discussions, and case studies.

This course explores the mathematical foundations and practical applications of the Graph Theory, which are essential for understanding and
analyzing complex computational problems. Topics include various graph representations, graph terminology, and fundamental graph algorithms such as graph connectivity, spanning trees, graph coloring, matching, and graph traversal algorithms like breadth-first search and depth-first search.

This course provides students with a comprehensive understanding of programming languages, their features, design philosophies, and implementation techniques. Through a combination of theoretical concepts and practical exercises, students will gain insights into how programming languages are designed, how they facilitate different programming paradigms, and how to select the appropriate language for specific tasks. The course delves into the relationship between language syntax, semantics, and program execution, enabling students to write effective, efficient, and maintainable code using a variety of programming languages.

This course introduces the principles and practices of project management. Students will learn how to initiate, plan, execute, monitor, control, and close projects using industry-standard methodologies. Topics include project life cycles, scope management, scheduling, budgeting, risk assessment, quality control, communication, resource allocation, and team coordination. The course emphasizes the use of project management tools and software (e.g., Gantt charts, network diagrams, and project tracking applications), and integrates soft skills such as leadership, teamwork, and stakeholder engagement. Case studies and practical assignments prepare students to manage real-world projects effectively and ethically.

This course provides students with a comprehensive understanding of the principles, methodologies, and practices involved in the development of high-quality software systems. It provides students with the essential skills and knowledge necessary to design, develop, test, and maintain software applications efficiently and effectively. Topics include: The software development life cycle (SDLC), requirements engineering, software design principles and patterns, software implementation and coding standards, software testing and quality assurance, software maintenance and debugging, teamwork and collaboration, and ethics and professionalism.

This course provides students with a comprehensive understanding of the principles, technologies, and techniques involved in developing mobile applications that run on popular platforms such as iOS and Android.
Topics include: Mobile user interface design and user experience, app development frameworks (Swift, Java, Kotlin, React Native, Flutter), app architecture, app testing and debugging, and app deployment and distribution.

This course provides a comprehensive introduction to the principles and practices of high-performance computing (HPC). It explores the architectural paradigms, programming models, and software tools necessary to effectively utilize parallel computing systems for solving computationally intensive problems in various scientific, engineering, and data science domains. Students will learn about different parallel architectures, including multi-core processors, shared-memory systems, distributed-memory clusters, and accelerators (like GPUs). The course covers fundamental concepts in parallel algorithm design, parallel programming using models such as shared memory and message passing), performance analysis and optimization techniques, and considerations for developing efficient and scalable parallel applications.

This course provides students with a comprehensive understanding of enterprise IT infrastructure, covering the design, deployment, and management of networked systems in corporate environments. Topics include server administration, virtualization, cloud computing,
enterprise networking, and IT service management. Students will gain hands-on experience with system configuration, troubleshooting, and automation tools used in modern IT operations. By the end of the course, students will be equipped with the skills necessary to administer enterprise networks and IT systems effectively.

This course introduces the basic terminology, concepts and mechanisms of network security. Explain Network-Based v. Host-Based
threats, vulnerabilities, and attacks. This course introduces also the fundamentals of cryptography, as well as its applications and issues of how cryptography is used in practice. Some technology case studies are presented and evaluated.

This course provides an in-depth understanding of the fundamental concepts, technologies, and best practices associated with cloud
computing. The course covers a wide range of topics, including cloud service models (IaaS, PaaS, SaaS), cloud deployment models (public, private, hybrid), virtualization, containerization, cloud architecture, scalability, security, and cost management. Through a combination of lectures, hands-on labs, and projects, students will gain practical experience in designing, deploying, and managing applications and services in cloud environments. The course also explores the latest trends and innovations in cloud computing, preparing students to contribute effectively to modern IT infrastructures.

This course provides a comprehensive introduction to blockchain technologies, emphasizing their technical foundations and real-world applications. Students will delve into cryptographic principles, decentralized consensus mechanisms, and the mechanics of Bitcoin, including transactions, mining, and network structure. The curriculum covers Bitcoin’s approach to anonymity and privacy, the impact of politics and regulation, and the ecological considerations of mining.
Additionally, the course explores alternative cryptocurrencies (Altcoins), smart contracts, and the use of blockchain as a platform for decentralized applications. By examining these 188 topics, students will gain a deep understanding of the potentials and challenges of
blockchain, preparing them to apply this knowledge across various industries.

Error definitions, round-off errors; The Taylor Series; The bisection method; The false position method; Simple fixed-point iteration, The Newton-Raphson method; The Secant method; Muller’s method; Gauss elimination; Least squares regression; Interpolating polynomials; Numerical integration.

AI Track 18 Credits

This course provides an overview of the fundamental concepts, techniques, and applications of AI. Students will gain a solid foundation in understanding the core principles of AI and its various subfields. The course aims to develop students’ knowledge and skills necessary to solve
real-world problems using AI techniques. Topics include: Knowledge representation and reasoning, decision making, machine learning algorithms, natural language processing, neural networks and deep learning, real-world applications and case studies, and ethical and social implications of AI. The course will include lectures, practical programming assignments, hands-on programming exercises using AI libraries and frameworks (e.g., TensorFlow, PyTorch), and group discussions.

This course offers a foundational introduction to machine learning, covering core concepts, methodologies, and algorithms central to
186 artificial intelligence. Students will study probability theory, linear algebra, and optimization as they explore supervised learning (classification, regression), unsupervised learning (clustering, dimensionality reduction), semi-supervised, and reinforcement learning. Key algorithms include logistic regression, K-means, k-NN, Naïve Bayes, decision trees, PCA, SVMs, and neural networks. Students will apply
concepts through hands-on programming assignments and projects using Python and libraries like Scikit-learn and TensorFlow. The course emphasizes both theoretical understanding and practical implementation of machine learning techniques in realworld problem-solving contexts.

This advanced course integrates linguistics, computer science, and AI to teach machines to understand and generate human language. Students will explore foundational NLP concepts and apply computational techniques to tasks such as text pre-processing, language modelling,
syntax parsing, and semantics, named entity recognition, sentiment analysis, machine translation, and information retrieval. Advanced applications include text summarization, question answering, and dialogue systems. The course blends theory with hands-on experience through coding exercises and projects using real-world datasets. Students will work with popular NLP tools and libraries such as NLTK, spaCy,
TensorFlow, and PyTorch, developing both theoretical insight and practical skills in NLP.

This course explores the principles and techniques involved in understanding and analyzing digital images and videos. It focuses on developing the fundamental knowledge and skills required to process, interpret, and extract meaningful information from visual data using computer algorithms. Topics include: image formation and acquisition, feature extraction, image enhancement and restoration techniques, object detection and recognition, image segmentation and object tracking, motion estimation and optical flow, and stereo vision and 3D reconstruction. Other advanced topics may include introduction to deep learning for computer vision, convolutional neural networks (CNNs) for image classification, object detection using CNNs, semantic segmentation and image synthesis and other case studies and applications.

This course will explore the fundamental concepts and methodologies employed in big data analytics, including data acquisition, storage,
processing, and visualization. Students will gain practical skills in working with big data using various technologies and platforms commonly used in industry. Through a combination of theoretical knowledge and hands-on exercises, students will develop the necessary skills to tackle real-world big data challenges. Topics include: Data acquisition and preprocessing, data storage and management, distributed computing with Hadoop, distributed data processing with Spark, data manipulation and analysis using Python and SQL, statistical analysis and machine learning with big data, data visualization and reporting, ethical considerations, and real-world applications and case studies.

This course provides an in-depth understanding of the fundamental concepts, technologies, and best practices associated with cloud
computing. The course covers a wide range of topics, including cloud service models (IaaS, PaaS, SaaS), cloud deployment models (public, private, hybrid), virtualization, containerization, cloud architecture, scalability, security, and cost management. Through a combination of lectures, hands-on labs, and projects, students will gain practical experience in designing, deploying, and managing applications and services in cloud environments. The course also explores the latest trends and innovations in cloud computing, preparing students to contribute effectively to modern IT infrastructures.

Data Science Track 18 Credits

This course is an essential introduction to the field of data science within the context of a computer science program. The course
combines theoretical knowledge with hands-on practical experience, enabling students to understand the entire data science pipeline, from data collection and cleaning to analysis, visualization, and interpretation. Topics include: Data acquisition and preprocessing, exploratory data analysis (EDA), basic statistical and probability concepts (measures of central tendency and variability, probability distributions and Bayes’ theorem), introduction to machine learning, data visualization, and basic predictive modeling.

This course offers a foundational introduction to machine learning, covering core concepts, methodologies, and algorithms central to
186 artificial intelligence. Students will study probability theory, linear algebra, and optimization as they explore supervised learning (classification, regression), unsupervised learning (clustering, dimensionality reduction), semi-supervised, and reinforcement learning.             Key algorithms include logistic regression, K-means, k-NN, Naïve Bayes, decision trees, PCA, SVMs, and neural networks. Students will apply
concepts through hands-on programming assignments and projects using Python and libraries like Scikit-learn and TensorFlow. The course emphasizes both theoretical understanding and practical implementation of machine learning techniques in real world problem-solving contexts.

This course will explore the fundamental concepts and methodologies employed in big data analytics, including data acquisition, storage,
processing, and visualization. Students will gain practical skills in working with big data using various technologies and platforms commonly used in industry. Through a combination of theoretical knowledge and hands-on exercises, students will develop the necessary skills to tackle real-world big data challenges. Topics include: Data acquisition and preprocessing, data storage and management, distributed computing with Hadoop, istributed data processing with Spark, data manipulation and analysis using Python and SQL, statistical analysis and machine learning with big data, data visualization and reporting, ethical considerations, and real-world applications and case studies.

This course provides the essential skills and techniques required to effectively manage, clean, and preprocess raw data into
a format suitable for analysis and modeling. In the realm of data science and analytics, 189 data wrangling and preprocessing play a critical role in ensuring the quality and reliability of insights extracted from data. Topics include: Data Preparation, data cleaning techniques, data transformation, feature engineering, text and time series data, data integration, data reshaping, data quality assessment, and automation and
reproducibility.

This course provides a comprehensive understanding of the concepts, tools, and techniques involved in transforming raw data into meaningful insights for informed decision-making within a business context. In an increasingly data-driven world, the ability to extract valuable insights from data and present them effectively is a critical skill for professionals across various industries. Topics include: Data gathering and preparation, data warehousing, data visualization principles and tools, exploratory data analysis (EDA), dashboard design and creation, and storytelling with data.

function wpforms_custom_grouping() { ?> Scroll to Top