BS ComputerScience Program
BS ComputerScience Program
1
Table of Contents
Introduction..............................................................................................................................................3
Degree........................................................................................................................................................4
Program Design........................................................................................................................................4
Competencies and Program Outcomes.................................................................................................. 5
Courses Learning Outcomes................................................................................................................... 7
Courses Learning outcomes per domain............................................................................................... 8
Graduation Requirements.......................................................................................................................9
Program Duration....................................................................................................................................9
Double Concentration............................................................................................................................10
Placement Test........................................................................................................................................10
Program Admission............................................................................................................................... 10
Courses of the curricula.........................................................................................................................11
Computer Science Department Curricula...........................................................................................14
Courses distribution plan – Computer and Network Security Undergraduate Program.............. 16
Courses distribution plan – Computing for Data Science Undergraduate Program...................... 18
Courses Descriptions............................................................................................................................. 20
2
Introduction
With the advent of technological progress, it has become increasingly evident that computers have
surpassed their initially assigned role of mere computation. They have evolved into electronic brains
capable of much greater generality, revolutionizing various fields. One such field that has greatly
benefited from this progress is computer science itself.
Computer science is a multidisciplinary discipline that not only advances its own domain but also
contributes significantly to other fields such as health care, environmental science, and engineering.
The impact of computer science can be seen in the way it has transformed these fields, enabling
breakthroughs and innovations that were previously unimaginable.
Within the realm of computer science, the Computer Science (CS) department in USAL plays a crucial
role in equipping students with the necessary knowledge and skills to navigate this rapidly evolving
landscape. The CS department offers an undergraduate major that provides students with a broad and
solid knowledge base, supported by technical skills and a high capability for problem-solving.
The undergraduate majors of computer science aim to provide students with a well-rounded
education that covers both theoretical foundations and practical applications. Students are exposed to
a wide range of topics, including algorithms, data structures, programming languages, computer
architecture, artificial intelligence, software engineering, and more. This comprehensive curriculum
ensures that students have a solid understanding of the fundamental concepts and principles of
computer science.
Problem-solving, critical thinking, and mathematical analysis are key focuses of the CS department.
Students are trained to approach problems analytically, break them down into smaller components,
and apply their knowledge and skills to devise effective solutions. This analytical mindset is highly
valuable in a wide range of industries and sectors, where there is a constant need for individuals who
can tackle complex challenges and drive innovation.
Furthermore, the CS department recognizes the importance of staying up-to-date with the latest
advancements in the field. The curriculum is regularly updated to incorporate emerging technologies
and trends, ensuring that students are equipped with the most relevant knowledge and skills. This
adaptability to change is crucial in an industry that constantly evolves and demands professionals who
can keep pace with new developments.
This document provides an overview of the primary majors available in the computer science
3
department, as well as the key prerequisites for admission into these majors. It also outlines the
program's design and how the courses offered meet the demands of the job market.
Degree
The majors’ programs also allow students to obtain a Bachelor of Science (B.S.) in CS with one of the
following two major areas of high needs for the labor market in Lebanon and worldwide: Computing,
and Computer and Network Security.
i. Computing
ii. Computing for Data Science
iii. Computer and Network Security
Program Design
The design of our computer science program with its three concentrations is built on the CS2023 -
ACM/IEEE-CS/AAAI Computer Science Curricula (Gamma Version) guidelines coupled with the inputs
from the domain experts of the program advisory board.
The CS2023 curricula design guidelines were developed throughout a worldwide joint effort between
leading industrialists, experts, and leading educators in the field of computer science. It provides a
framework for adopting institutions to create their own competency model tailored to local needs.
The CS2023 builds on and extends the CS2013 design guidelines to incorporate all the updated needs
for the computer science curriculum from social, professional, programmatic and pedagogical
perspectives.
The CS2023 categorizes the knowledge in the computer science fields into 18 knowledge areas (KA),
each of which consisting of several knowledge units (KU) including different core topics. It also
suggests illustrative learning outcomes for each knowledge unit. Core topics are classified into (1) CS
core topics that every Computer Science graduate must know, and (2) KA core topics recommended
for inclusion in any dedicated course in the knowledge area. While all the programs must cover CS
core topics, a program may choose to cover some knowledge areas in greater depth/breadth than
other knowledge areas. This choice - according to CS2023 - is mainly dictated by the curricular
emphasis based on local/regional market needs and demands, and the local availability of
instructional expertise.
Being inline with the latter, we have considered the CS core topics in the proposed program and
carefully “shaped” the KA Core topics choices according to the local/regional market needs based on
the feedback of the program advisory board consisting of experts (industry professionals and
educators) in the different CS fields related to the program concentrations.
4
Our computer science program, meticulously designed in accordance with the cutting-edge CS2023
Computer Science Curricula guidelines, is optimally positioned to equip graduate students with the
essential competencies required for seamless integration into local, regional, and international tech
markets. The adoption of the CS2023 framework, a product of extensive global collaboration,
guarantees alignment with dynamic industry standards and evolving demands within the computer
science field. Furthermore, the active involvement of industry professionals and educators within our
program advisory board strengthens our commitment to remaining perpetually attuned to the
evolving needs of the tech market. Through this strategic alignment and unwavering commitment to
collaboration, the program cultivates graduates equipped with a diverse skill-set and comprehensive
knowledge base, empowering them to excel within the dynamic and interconnected world of
computer science.
1. Proficiency in the practice of computer science, with a focus on computing, computer and
network security, or computing for data science.
To ensure that students fulfill these competencies, we have developed a set of program outcomes.
These program outcomes serve as a guide, ensuring that students who achieve these outcomes will
possess the necessary competencies. The program outcomes are detailed as follows:
5
ii. Mathematical Modeling: Apply mathematical modeling in the design and
development of computing and software solutions.
iii. Robust Applications: Design, develop, and deploy robust and user-friendly
applications for web, mobile, or other platforms.
6
b. Communication Skills: Efficiently communicate technical knowledge in written and oral
forms in simple terms to clearly present the information.
c. Professional and Ethical Responsibility: Demonstrate professional and ethical
responsibility in the computer science profession.
Based on the figure, it can be observed that the common areas of coverage are approximately 79% for
the CS core, around 50% for the Knowledge areas core, and 26% for the Non-Core areas. These
percentages are considered high for an undergraduate program consisting of 104 credits.
Figure 1. Common areas between USAL CS curricula and CS2023 - ACM/IEEE-CS/AAAI Computer Science
Curricula
Regarding the CS core, the few outcomes that are not covered are in advanced areas such as
computational models, architecture and organizations (which involve low-level programming and
computer electronics), and parallel and distributed computing (typically found at the master's level).
7
In the Knowledge Area core, not all outcomes are mandatory to cover, and the level of fulfillment may
vary depending on the specific program outcomes. Therefore, achieving a percentage of 50% is
considered more than sufficient, given the market demands in Lebanon and the Middle East, followed
by the international market.
As for the Non-Core outcomes, our program covers selected topics that are of interest and relevance
to our students. These topics include game development and design, machine learning and related
areas, and cloud computing.
As a summary, the program has been designed to ensure comprehensive coverage of the program
outcomes while taking into consideration the specific needs and market demands of the region.
8
When examining the program outcomes domains at a higher level, it becomes apparent that all
domains are well fulfilled, including the domains of "Effective Communication and Interpersonal Skills"
and "Research and Adaptation to Evolved Technologies." While these domains are met in nearly all
courses, the number of outcomes associated with them may be low. This is because only one outcome
in each course specifically meets these requirements, while the remaining outcomes are mapped to
other program outcomes.
Graduation Requirements
1. Achieving successfully 104 credits as follows:
Program Duration
3 years for non-transfer students, with an official Lebanese BACC II degree, who successfully pass their
placement tests (English, Arabic, Math, and IT).
9
3 -3.5 years for non-transfer students, with an official Lebanese BACC II degree, who need some
remedial courses (English, Arabic, Math, and IT).
Double Concentration
CS students who want to get a double concentration should take fifteen extra credits to be discussed
with their advisor. They are encouraged to make their decision in this regard as early as possible while
in their studies.
Placement Test
Candidates aiming to join the CS department at USAL should sit for four placement tests:
● English
● Arabic,
● Math
● IT
Program Admission
Students who do not successfully pass the placement tests will be required to take some remedial
courses.
Students who do not get 12/20 on the Math placement tests can’t enroll in computer science core
courses. They must enroll in two remedial math courses MATH010 and MATH011. In order to be able
to enroll in core courses, the students must pass both MAT010 and MATH011 courses.
10
Courses of the curricula
General Requirements & Electives
12
Computer and Network Security concentration courses
Code Subject Credits
13
Computer Science Department Curricula
Courses distribution plan – Computing Undergraduate Program
First year - fall
Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
GENR201 Religion and Public Life 15 15 - 1
MATH203 Linear Algebra 15 45 - 3
ENGL201 English Communication skills 15 45 - 3
I
ARAB201 Arabic Communication skills 15 45 - 3
CSCI206 Introduction to 15 45 30 4 (3; 1)
programming
CSCI205 Computer Science Overview 15 45 - 3
Total 17
14
Second year – spring
Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
COMP305 Advanced Programming 15 45 - 3
CSCI315 Web Development 15 45 30 4(3; 1)
CSCI317 Software Engineering 15 45 - 3
CSCI320 Operating Systems 15 45 30 4(3;1)
COMP310 Game Design and 15 45 - 3
Development
Total 17
15
Courses distribution plan – Computer and Network Security Undergraduate Program
16
Second year – spring
Code Course Name Nb of Nb of Nb of labs credits
weeks Lecture hours
hours
SECU314 Computer Networks – III : Scaling and 15 45 30 4(3;1)
Connecting Networks
CSCI315 Web Development 15 45 30 4(3; 1)
CSCI317 Software Engineering 15 45 - 3
CSCI320 Operating Systems 15 45 30 4(3;1)
GNEL201 General Elective I 15 45 - 3
Total 18
Total 14
17
Courses distribution plan – Computing for Data Science Undergraduate Program
First year - fall
Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
GENR201 Religion and Public Life 15 15 - 1
MATH203 Linear Algebra 15 30 - 3
ENGL201 English Communication 15 45 - 3
skills I
ARAB201 Arabic Communication 15 45 - 3
skills
CSCI206 Introduction to 15 45 30 4 (3; 1)
programming
CSCI205 Computer Science 15 45 - 3
Overview
Total 17
First year – spring
Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
MATH210 Discrete Mathematics 15 45 - 3
ENGL202 English Communication Skills 15 45 - 3
II
CSCI207 Object Oriented 15 45 30 4 (3; 1)
Programming
CSCI210 Computer Architecture and 15 45 - 3
Organization
MATH201 Calculus 15 45 - 3
CSCI212 Computer Networks I : 15 45 - 3
Networking fundamentals
Total 19
18
Second year – spring
Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
DTSC301 Introduction to Data 15 45 - 3
Science
CSCI315 Web Development 15 45 30 4(3; 1)
CSCI317 Software Engineering 15 45 - 3
CSCI320 Operating Systems 15 45 30 4(3;1)
MATH304 Probability and Statistics II 15 45 - 3
Total 17
1
One credit is equivalent to 15 lecture hours or 30 laboratory hours per semester.
19
Courses Descriptions
22
learn how to define classes, declare objects, and explore important concepts
such as constructors, methods, dependency, aggregation, inheritance,
polymorphism, abstract classes, and interfaces. The course also delves into
advanced concepts including exceptions, streaming, graphical user interface
(GUI) development, and event handling, which enables students to create their
own applications with user-friendly designs.
CSCI210 Computer Architecture and Logic Design 3 cr.
Course
This course provides an introduction to key concepts in computer architecture,
Description
functional logic, and design, as well as computer arithmetic. The course covers
the fundamentals of modern computer architecture and operation. Students
will explore computer arithmetic, including binary, hexadecimal, and decimal
number conversions, binary number arithmetic, and the IEEE binary
floating-point number standard. The course also delves into basic computer
logic, including gates, combinational circuits, sequential circuits, and adders.
Students will gain an understanding of computer components and their
interactions. Additionally, the course offers an advanced study of modern digital
design principles and techniques. Topics covered include assembly language and
the Marie simulator, as well as the use of advanced programmable logic devices
like FPGA.
CSCI212 Computer Networks I 3 cr.
Course This course provides an in-depth introduction to the fundamental concepts of
Description computer networks. Students will explore the architecture, protocols, and
technologies that form the backbone of modern communication systems. The
course combines theoretical knowledge with practical hands-on labs using Cisco
Packet Tracer, allowing students to apply concepts learned in class to real-world
scenarios. Topics covered include network layers, transmission media, data link
layer, network layer, transport layer and application layer.
CSCI311 Introduction to Database Systems CSCI206, MATH210 3 cr.
Course This course provides a solid foundation in database systems. It begins by
Description exploring the significance of the database approach in various real-life scenarios
and the advantages of adopting a Database Management System (DBMS).
Students will gain insights into the process of identifying system requirements
that necessitate a database, as well as the transition from existing models to a
well-structured database schema. Emphasis is placed on the relational model,
covering topics such as database definition language, database manipulation
language, data retrieval techniques, and some advanced topics including
triggers, functions, indexing, normalization, and stored procedure. Practical skills
in designing, implementing, and querying relational databases using popular
DBMS tools e.g. MySQL will be developed throughout the course. By the end,
23
students will be equipped with the necessary knowledge and abilities to
effectively work with and leverage DBMS technologies in real-world
applications.
Course This advanced programming course covers the design and implementation of
Description important data structures and their algorithms with the aim of offering students
a solid technical training on java programming. The main goal is to teach the
students how to select and design data structures and algorithms that are
appropriate for problems that they might encounter. The data structures
considered include arrays, stacks, queues, lists, linked lists, trees and Hashmap.
An approach based on abstract data types and classes will be emphasized. This
course is also an introduction to algorithms. We will be studying their
correctness and computational complexity.
Course This course covers front-end and back-end web development. Students start in
Description the first part of this course by learning HTML, CSS, JavaScript (including jQuery)
to be able to create interactive web pages. They then switch to Python for
back-end development, including building web applications and connecting to
SQL databases. Lastly, there is a brief introduction to React for front-end
development. Practical exercises and projects reinforce learning, and students
gain skills in full-stack web development. The course prepares students for
careers in web development, providing them with the ability to create functional
and visually appealing websites and web applications.
24
CSCI320 Operating Systems CSCI210, CSCI206 4 cr. (3;1)
Course This course aims to provide an introduction to the internal operation of modern
Description operating systems. The operating system provides a well-known, convenient,
and efficient interface between user programs and the computer hardware on
which they run. The operating system is responsible among others for allowing
resources such as processors, disks and networks to be shared, providing
common services needed by many different programs. The course discusses the
major components of most modern operating systems, with particular emphasis
on three major OS subsystems: process management (processes, threads, CPU
scheduling, synchronization, and deadlock), memory management
(segmentation, paging, swapping), and file systems.
26
COMP412 Advanced databases CSCI311 3 cr.
Course This course provides the students with the ability to control, manage and
Description maintain the organization’s data. Give an in-depth understanding of database
resiliency and disaster recovery after gaining knowledge in planning, designing,
implementing and fine-tuning the database operations. Students will know how
to use and implement policies in an organization as well as secure and audit the
data accessed by others. The course utilizes the open-source relational database
PostgreSQL. PostgreSQL is the most professional of the relational Open Source
databases. It is a highly reliable, stable, scalable and secure system, and has
been around for more than two decades now. PostgreSQL is professionally
maintained and developed software, capable of running complex, data-driven
applications.
COMP413 Advanced Data Structure and Algorithms CSCI207, CSCI311 3 cr.
Course
Description This course provides a comprehensive understanding of mobile computing
principles, technologies, and applications. Students will explore topics such as
mobile operating systems, application development, network protocols, user
interface design, data synchronization, location-based services, and mobile
security. They will gain hands-on experience in developing mobile applications
for Android and iOS platforms using industry-standard tools. The course
prepares students for careers in mobile application development and equips
them with the skills to navigate challenges specific to mobile computing. Ethical
and legal considerations in mobile computing are also covered. This course
focuses on teaching students how to design, implement, test, debug and publish
smartphone applications. Students will learn how to take their innovative ideas
through a series of Labs and group projects.
27
COMP420 Application development CSCI315 3 cr.
Course This course introduces the students ASP.NET MVC, a powerful web development
Description framework that allows them to build scalable and efficient web applications.
Through hands-on exercises, students will learn how to design and organize their
application's code using the Model-View-Controller (MVC) architectural pattern
for improved reusability and maintainability. They will gain practical experience
in creating dynamic and interactive user interfaces using HTML, CSS, and
JavaScript. The course will cover essential features of ASP.NET MVC, including
routing, data validation, and authentication, enabling students to develop robust
and secure web applications. Whether students are beginners or experienced
developers, this course will equip them with the skills needed to leverage the
full potential of ASP.NET MVC in their projects.
DTSC301 Introduction to Data Science CSCI206, 3 cr.
MATH304
Course The Introduction to Data Science course provides students with a foundational
Description understanding of key concepts and techniques in data science. Students learn to
use the R programming language for statistical analysis, data cleaning, and data
visualization. They acquire skills in obtaining and organizing data from various
sources, including the web, APIs, and databases. The course covers important
topics such as cluster analysis, variability, distributions, confidence intervals, and
regression analysis. Students also learn to create graphical displays of data,
including high-dimensional data. The course emphasizes reproducibility in data
analysis and equips students with the ability to build prediction functions. By the
end of the course, students have a strong grasp of fundamental data science
principles and practical skills in working with data using R.
28
DTSC422 Time series and statistical forecasting MATH304, CSCI206 3 cr.
Course This course focuses on the analysis and modeling of time series data. Students
Description will learn how to understand the temporal patterns in data, apply statistical
techniques for forecasting, and evaluate the performance of time series models.
Topics covered include stationarity, autocorrelation, trend analysis, seasonal
decomposition, and various time series models such as ARIMA and exponential
smoothing. Practical applications and hands-on experience with real-world time
series data will be emphasized. By the end of the course, students will be able to
effectively analyze and forecast time series data for decision-making purposes.
29
SECU314 Computer Networks – III : Scaling and SECU313 4 cr. (3;1)
Connecting Networks
Course This course builds upon the knowledge acquired in the CSCI212 and SECU313
Description courses, delving into the architecture, components, and operations of routers
and switches within larger and more complex networks. Students will gain
proficiency in configuring routers and switches for advanced functionality. By the
end of the course, students will have the ability to configure and troubleshoot
routers and switches, addressing common issues with OSPF, EIGRP, and STP in
both IPv4 and IPv6 networks. Additionally, students will develop the knowledge
and skills necessary to implement a WLAN in a small-to-medium network.
30
SECU424 Ethical Hacking and penetration testing SECU313, SECU301 3 cr.
Course This course provides a comprehensive introduction to ethical hacking and
Description penetration testing, following the Certified Ethical Hacker (CEH) professional
certification framework. It provides a comprehensive grounding in the
methodology, techniques and culture of ethical hacking. Students will learn the
essential skills and techniques required to identify and counteract security
vulnerabilities, with a focus on ethical and responsible hacking practices.
31