Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
17 views31 pages

BS ComputerScience Program

The document outlines the undergraduate Computer Science programs offered by the University of Sciences and Arts in Lebanon, detailing the curriculum, competencies, and outcomes aligned with industry needs. It includes information on degree requirements, program design based on CS2023 guidelines, and the importance of practical skills and problem-solving abilities. Additionally, it specifies admission criteria, graduation requirements, and course descriptions for various concentrations within the program.

Uploaded by

XMan Gamer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views31 pages

BS ComputerScience Program

The document outlines the undergraduate Computer Science programs offered by the University of Sciences and Arts in Lebanon, detailing the curriculum, competencies, and outcomes aligned with industry needs. It includes information on degree requirements, program design based on CS2023 guidelines, and the importance of practical skills and problem-solving abilities. Additionally, it specifies admission criteria, graduation requirements, and course descriptions for various concentrations within the program.

Uploaded by

XMan Gamer
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

University of Sciences and Arts in Lebanon

Computer Science undergraduate Programs

Computer Science Department - 2024

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.

In addition to theoretical knowledge, the CS department also emphasizes the development of


technical skills. Students are given opportunities to apply their knowledge through hands-on projects,
programming assignments, and real-world case studies. This practical approach helps students
develop the necessary skills to tackle complex problems and find innovative solutions.

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.

Competencies and Program Outcomes


To ensure that every student is equipped with the necessary skills and knowledge, we have
established a set of competencies. These competencies encompass the following areas:

1.​ Proficiency in the practice of computer science, with a focus on computing, computer and
network security, or computing for data science.

2.​ Analysis, modeling, critical thinking, and problem-solving abilities.

3.​ Effective communication and interpersonal skills.

4.​ Research skills and the ability to adapt to evolving technology.

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:

1.​ Proficiency in the practice of computer sciences


a.​ Computing Infrastructure: Assess and manage computing infrastructure, including
hardware, software, management systems, programming environments, and
operating systems.
b.​ Computing Solutions: Formulate, analyze, and compare computing solutions for
various problems and software.
c.​ Computing Systems Development: Develop, implement, and manage computing
systems using efficient methodologies and emerging technologies.

d.​ Computing concentration


i.​ Advanced Algorithms: Apply advanced algorithmic concepts to design and
analyze efficient solutions for computing problems.

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.

e.​ Networking and Computer Security Concentration


i.​ Network Architecture Expertise: Demonstrate a deep understanding of
network architecture in order to analyze diverse environments as well as to
design and configure networks adhering to industry standards, emphasizing
performance, reliability, and security.
ii.​ Computer Security Mastery: Demonstrate mastery of computer security
concepts, including the ability to identify vulnerabilities, apply effective
countermeasures against cyber threats, and implement robust security
measures.
iii.​ Incident Response and Digital Forensics: Respond to and mitigate security
incidents, analyzing breaches and conducting digital forensics investigations.

f.​ Computing for Data Science concentration


i.​ Data Preprocessing: Apply data preprocessing techniques to clean, transform,
and analyze large datasets.
ii.​ Machine Learning and Deep Learning: Develop and apply machine learning and
deep learning algorithms to effectively process and analyze data, including
images, text, and other types of data, for various tasks.
iii.​ Statistical Analysis: Utilize statistical methods and tools to analyze data and
draw meaningful insights.
iv.​ Data Visualization: Apply data visualization techniques to effectively
communicate findings and trends.

2.​ Analysis, modeling, critical thinking, and problem solving


a.​ Algorithmic and Mathematical Analysis: Analyze real-world problems in diverse
application domains using algorithmic and mathematical capabilities.
b.​ Problem-Solving Skills: Project theoretical and analytical theories in the computer
science to solve a complex work processes
c.​ Critical Thinking: Conceive and validate correct, efficient, and mathematical-based
problem solving schemes strengthened with well-structured thinking

3.​ Effective communication and interpersonal skills


a.​ Teamwork and Collaboration: Work and engage collaboratively as a member or a
leader in a team to achieve group goals and objectives.

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.

4.​ Research and adaptation to evolving technology


a.​ Advanced Studies and Research: Apply mathematical and computing concepts to
advanced studies and research in computer science.
b.​ Adaptability: Adapt to evolving methodologies and technologies in the field of
computer science.

Courses Learning Outcomes


In order to ensure that all program outcomes are met, the courses within the program have been
carefully developed. These courses align with the learning outcomes specified in the CS2023 -
ACM/IEEE-CS/AAAI Computer Science Curricula. Figure 1 provides an overview of the percentage of
CS2023 outcomes covered in our program.

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.

Courses Learning outcomes per domain


In addition to aligning our courses with the CS2023 - ACM/IEEE-CS/AAAI Computer Science Curricula,
we have developed our courses in our own way and compared them to the program outcomes we
adopted. We then mapped the outcomes of each course to the program outcomes, and the results are
shown in Figure 2. The symbols 1-a, 1-b, and so on, are the same as the ones mentioned earlier in the
Program Outcomes section. We can see that all the program outcomes are covered by the course
outcomes of the program. However, some outcomes are highly covered, like Computing
Infrastructure, Computing Systems Development, and Algorithmic and Mathematical Analysis. On the
other hand, some outcomes are less covered, such as Mathematical Modeling and Data
Preprocessing. This is because some outcomes are addressed in multiple courses, while others are
specific to certain fields, like Data Preprocessing or Mathematical Modeling.

Figure 2. Mapping the courses outcomes to the program outcomes

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:

University Requirement 10 credits


Department Requirement (Core) 52 credits
Concentration Requirements 30 credits
Elective Requirements
●​ Department elective 6 credits
●​ Free elective 6 credits
Total credits 104 credits

2.​ Obtaining a minimum cumulative GPA of 2.0 over 4.

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).

Transfer students' study duration depends on the amount of transferred credits.

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

Code Subject Credits


GENR201 Religion and public life 1
ENGL201 English communication skills I 3
ENGL202 English communication skills II 3
ARAB201 ‫ مهارات التواصل في اللغة العربية‬I​ Arabic communication skills I 3
General elective 1 3
General elective 2 3
Department elective 1 3
Department elective 2 3
Total 22
Core and Major Courses

Code Subject Credits

MATH203 Linear Algebra 3 credits


MATH201 Calculus 3 credits
MATH210 Discrete Mathematics 3 credits
MATH204 Probability and Statistics I 3 credits
CSCI205 Computer Science Overview 3 credits
CSCI206 Introduction to Programming 4 credits (3;1)
CSCI207 Object Oriented Programming 4 credits (3;1)

CSCI210 Computer Architecture and Logic Design 3 credits

CSCI212 Computer Networks I 3 credits


CSCI311 Introduction to Database Systems 3 credits
CSCI315 Web development 4 credits (3;1)
CSCI316 Data Structure and Algorithms 3 credits
CSCI317 Software Engineering 3 credits
CSCI320 Operating Systems 4 credits (3;1)
CSCI410 Artificial intelligence and Machine learning 3 credits
CSCI420 Final Year Project 3 credits
Total 52
11
Computing concentration courses
Code Subject Credits

SECU301 Introduction to Computer Security 3 credits

COMP301 Introduction to Linux 3 credits


COMP305 Advanced Programming 3 credits
COMP310 Game Design and Development 3 credits
COMP411 Advanced Data Structure and Algorithms 3 credits
COMP412 Advanced Databases 3 credits
COMP413 Mobile Computing 3 credits
COMP414 Cloud computing 3 credits
COMP420 Application development 3 credits
MATH310 Numerical Computation and Analysis 3 credits
Total 30

Computing for Data Science concentration courses


Code Subject Credits

DTSC301 Introduction to Data Science 3 credits


DTSC420 Natural Language Processing 3 credits
DTSC422 Time series and statistical forecasting 3 credits
DTSC424 Deep learning 3 credits
MATH304 Probability and Statistics II 3 credits
MATH307 Statistical Models 3 credits
MATH310 Numerical Computation and Analysis 3 credits
COMP305 Advanced Programming 3 credits
COMP411 Advanced Data Structure and Algorithms 3 credits
COMP412 Advanced Databases 3 credits
Total 30

12
Computer and Network Security concentration courses
Code Subject Credits

SECU301 Introduction to Computer Security 3 credits


COMP301 Introduction to Linux 3 credits
SECU313 Computer Networks II : Routing and Switching Essentials 3 credits
Computer Networks III : Scaling and Connecting
SECU314 4 credits
Networks
SECU316 Systems and network administration 3 credits
SECU420 Network Security 3 credits
SECU422 Web application security 3 credits
SECU424 Ethical Hacking and penetration testing 3 credits
SECU426 Information security management 3 credits
SECU430 Introduction to digital forensics 2 credit
Total 30

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

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

Second year – fall


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
CSCI311 Introduction to Database 15 45 - 3
CSCI316 Data-Structure and Algorithms 15 45 - 3
Math204 Probability and Statistics I 15 45 - 3
SECU301 Introduction to Computer 15 45 - 3
Security
MATH310 Numerical Computation and 15 45 - 3
Analysis
COMP301 Introduction to Linux 15 45 - 3
Total 18

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

Third year – fall


Code Course Name Nb of weeks Nb of Lecture Nb of labs credits
hours hours
COMP420 Application Development 15 45 - 3
CSCI410 Artificial Intelligence and 15 45 - 3
Machine Learning
COMP414 Cloud Computing 15 45 - 3
COMP413 Mobile Computing 15 45 - 3
DPEL201 Department Elective I 15 45 - 3
GNEL201 General Elective I 15 45 - 3
Total 18

Third year – spring


Code Course Name Nb of weeks Nb of Lecture Nb of labs credits
hours hours
COMP411 Advanced Data Structure 15 45 - 3
and Algorithms
CSCI420 Final Year Project - - - 3
COMP412 Advanced Databases 15 45 - 3
DPEL202 Department Elective II 15 45 - 3
GNEL202 General Elective II 15 45 - 3
Total 15

15
Courses distribution plan – Computer and Network Security 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 I 15 45 - 3
ARAB201 Arabic Communication skills 15 45 - 3
CSCI206 Introduction to programming 15 45 30 4 (3; 1)
CSCI205 Computer Science Overview 15 45 - 3
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

Second year – fall


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
CSCI311 Introduction to Database 15 45 - 3
CSCI316 Introduction to Data-Structure 15 45 - 3
and Algorithms
Math204 Probability and Statistics I 15 45 - 3
COMP301 Introduction to Linux 15 45 - 3
SECU301 Introduction to Computer 15 45 - 3
Security
SECU313 Computer Networks – II : 15 45 - 3
Routing and Switching
Total 18

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

Third year – fall


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
SECU420 Network Security 15 30 30 3
CSCI410 Artificial Intelligence and 15 45 - 3
Machine Learning
SECU316 Systems and network 15 30 30 3
administration
SECU422 Web application security 15 45 - 3
GNEL201 Department Elective I 15 45 - 3
GNEL202 General Elective II 15 45 - 3
Total 18

Third year – spring

Code Course Name Nb of Nb of Nb of credits


weeks Lecture labs
hours hours
SECU424 Ethical Hacking and penetration 15 30 30 3
testing
CSCI420 Final Year Project - - - 3
SECU426 Information security management 15 45 - 3
SECU430 Introduction to digital forensics 15 30 - 2
DPEL202 Department Elective II 15 45 - 3

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

Second year – fall


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
CSCI311 Introduction to Database 15 45 - 3
CSCI316 Introduction to Data 15 45 - 3
Structure and Algorithms
Math204 Probability and Statistics I 15 45 - 3
MATH310 Numerical Computation and 15 45 - 3
Analysis
COMP305 Advanced Programming 15 45 - 3
GNEL201 General Elective I 15 45 - 3
Total 18

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

Third year – fall


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
DTSC422 Time series and 15 45 - 3
statistical forecasting
CSCI410 Artificial Intelligence and 15 45 - 3
Machine Learning
DTSC420 Natural Language 15 45 - 3
Processing
MATH307 Statistical Models 15 45 - 3
DPEL201 Department Elective I 15 45 - 3
GNEL202 General Elective II 15 45 - 3
Total 18

Third year – spring


Code Course Name Nb of Nb of Lecture Nb of labs credits
weeks hours hours
COMP411 Advanced Data Structure 15 45 - 3
and Algorithms
CSCI420 Final Year Project - - - 3
COMP412 Advanced Databases 15 45 - 3
DTSC424 Deep learning 15 45 - 3
DPEL202 Department Elective II 15 45 - 3
Total 15

1
One credit is equivalent to 15 lecture hours or 30 laboratory hours per semester.

19
Courses Descriptions

Course No. Course Name Prerequisites Cr.

ARAB201 Arabic I 3 cr.


Course This course builds vocabulary, grammar, and general communicative
Description competence. Students will develop all four skills: speaking, reading, writing and
listening.

ENGL201 English Communication skills I 3 cr.


Course This course is designed to give extensive practice in the writing process, with
Description emphasis on expository forms appropriate to everyday personal, business, and
academic writing.

ENGL202 English Communication skills II ENGL 201 3 cr.


Course This course continues practice in the composing process, with emphasis on
Description argumentation and research. It involves gathering, analyzing, and documenting
information from secondary sources.

MATH203 Linear Algebra 3 cr.


Course This course covers matrix theory and linear algebra, emphasizing topics useful in
Description other disciplines. Linear algebra is a branch of mathematics that studies systems
of linear equations and the properties of matrices. The concepts of linear
algebra are extremely useful in physics, economics and social sciences, natural
sciences, and engineering. Due to its broad range of applications, linear algebra
is one of the most widely taught subjects in college-level mathematics. The basic
operations of linear algebra are those you learned in grade school – addition and
multiplication to produce “linear combinations.” But with vectors, we move into
four-dimensional space and n-dimensional space.
MATH210 Discrete Mathematics 3 cr.
Course This course enables students to strengthen and increase the understanding of
Description discrete mathematics with special emphasis on computer science applications.
Topics include formal logic, types of proofs, sets, sequences, recurrence,
introduction to number theory and some of its applications, graph theory, paths,
trees and graph coloring.

MATH201 Calculus 3 cr.


Course This course covers topics of differential and integral calculus including limits and
Description continuity, derivatives and Taylor series that may approximate functions with
small errors. Proper integrals that are used in finding areas, calculating some
probabilities and many other applications. We move from one variable function
20
to several variables. These functions can illustrate a quantity that depends on
many variables that may be time, demand on items, prices, ... However, partial
derivatives, gradient vector and Hessian matrix are introduced together with
double integrals; all may be applied in studying optimization problems.
MATH204 Probability and Statistics I 3 cr.
Course This course is intended as an elementary introduction to the theory of
Description probability for students in mathematics, statistics, engineering, and the sciences
(including computer science, the social sciences, and management science). It
presents the basics and mathematics of probability theory. Topics include basic
combinatorics, probability axioms, conditional probability, random variables,
and probability distributions.
MATH304 Probability and Statistics II MATH204 3 cr.
Course Statistics is the science of extracting reliable information from empirical data.
Description Probability Theory is the mathematics of reasoning about chance and
randomness. Although these are two distinct disciplines, they are inherently
intertwined. This course covers essentially the distribution theory, random
sampling, estimation and tests of statistical hypotheses. More specifically, the
topics of this course include: Random variables, properties of expectation,
Functions of random variables, descriptive statistics, graphical statistics,
Sampling distributions, estimation, and statistical testing.
MATH307 Statistical Models MATH304 3 cr.
Course This course provides a foundation in statistical modeling, essential for data
Description science. It covers a broad spectrum of methodologies, including linear statistical
models, Bayesian multivariate models, estimation of probability density
functions, and both parametric and non-parametric methods. Additionally, the
course delves into advanced topics, including Gaussian Mixture Models for
classification and clustering tasks, as well as Markov models and Hidden Markov
Models for sequential data analysis. Emphasis is placed on developing practical
skills related to these methodologies, such as parameter estimation, model
fitting, and diagnostic checks. This course equips students with both theoretical
knowledge and practical skills for data science.
MATH310 Numerical Computation and Analysis MATH203, 3 cr.
MATH201
Course This course is primarily addressed to students majoring in Computer Science. Its
Description main purpose is the introduction of mathematical and computational tools to
handle basic numerical methods. The main tool for algorithm development is
MATLAB/Octave. Topics include: Floating-point number representation, finding
roots of nonlinear equations, Numerical interpolation, Numerical differentiation
and Integration, and an introduction to optimization problems including
21
mathematical modeling, linear programming (LP) problems and solving some
unconstrained optimization problems using Newton’s method and the Gradient
descent method.
CSCI 205 Computer Science Overview 1 cr.
Course This course offers a comprehensive introduction to computer science, covering a
Description wide range of foundational concepts. It begins by exploring data and
information, including the data cycle and mechanisms for computer search,
control, and sealing. Students will also learn about the conversion between the
analogue and digital worlds, gaining insights into the transition from the physical
to the digital realm. The course focuses on the distinction between hardware
and software components, highlighting their individual functions and how they
interact within computer systems. It provides a thorough understanding of
computer networks and the Internet, emphasizing their importance in modern
computing. Additionally, there is a dedicated Windows work lab that covers
tasks such as command line operations (CMD) and using control panel functions
to view and modify system settings. The second part of the course emphasizes
practical application through graphical programming on Code.org. Students will
have the opportunity to engage in hands-on activities and creatively apply
programming concepts. The use of Code.org's user-friendly environment enables
students to explore programming and app development in a practical and
accessible way. The practical application of theoretical knowledge is a key focus
of this part of the course.

CSCI206 Introduction to Programming 4 cr. (3;1)


Course This course serves as an introduction to essential programming concepts.
Description Students will develop a foundational understanding of algorithmic thinking,
problem-solving, and structured programming skills. The course covers the
fundamentals of programming using a modern language, currently Java.
Students will explore important programming concepts, including control
structures, simple data structures, and fundamental principles of computer
programming. Topics covered include elementary programming, selection,
repetition, arrays, and methods. By the end of the course, students will have
acquired a basic knowledge and skill set necessary for programming and
problem-solving in a structured manner.

CSCI207 Object Oriented Programming CSCI206 4 cr. (3;1)

Course This course focuses on the principles of Object-Oriented Programming (OOP)


Description using the Java Programming Language. It begins with an introduction to creating
applications using Java and progresses to cover key topics in OOP. Students will

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.

CSCI316 Data Structure and Algorithms CSCI207, 3 cr.


MATH210

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.

CSCI315 Web Development CSCI207, CSCI311 4 cr. (3;1)

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.

CSCI317 Software Engineering CSCI207 3 cr.

Course This course provides an understanding of the system development process


Description which links user requirements to the computer based system. This course
emphasizes problem formulating and problem solving. Students will learn
project management techniques, explore and compare software solutions,
evaluate project feasibility, and design final software solutions. The course
includes how to analyze a problem domain and develop the appropriate analysis
and design models to formalize the requirements using object oriented methods
and appropriate theory. Practical exercises and real-world projects enhance
learning outcomes

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.

CSCI410 Artificial intelligence and Machine learning CSCI207, 3 cr.


MATH210,
MATH204
Course This course provides an introduction to machine learning, covering key concepts
Description and techniques. Students will learn about different learning styles, such as
supervised, reinforcement, and unsupervised learning. They will gain practical
experience implementing and evaluating machine learning algorithms, including
classification, regression, clustering, and dimensionality reduction. The course
emphasizes both theoretical foundations and hands-on application, preparing
students to apply machine learning to real-world problems.

SECU301 Introduction to Computer Security MATH210 3 cr.


Course This course provides students with a basic understanding of cryptographic tools
Description and techniques that are used in modern systems to achieve security objectives,
such as confidentiality, integrity, and authentication. The course first presents
classical cryptography (historical ciphers), then it details the different elements
and techniques of modern cryptography along with their applications and their
most known algorithms. The topics include symmetric encryption (also known as
secret key cryptography), asymmetric encryption (also known as public key
cryptography), Cryptographic Data Integrity algorithms and mutual trust. The
course provides students with the theoretical foundations (including some
related mathematical concepts) as well as with the practical skills through a
number of lab sessions.
COMP301 Introduction to Linux CSCI212 3 cr.
Course This course spends time examining the topics you need to know in order to gain
Description a complete and comprehensive understanding. For example, you’ll find a hefty
chapter looking at the command-line prompt, arguably the heart of Linux and
the element that gives Linux most of its power. There’s also an entire chapter
25
discussing how to initially install Ubuntu on your computer. Topics should
include: the boot process, installing and updating software, command line
operations, processes, file operations, user environment, the bash shell and
bash scripting.
COMP305 Advanced Programming CSCI203 3 cr.
Course This course explores the dynamic nature of Python, a versatile language widely
Description used across various domains. While Python offers simplicity and power, ensuring
code readability, reusability, and maintainability can be a challenge. This course
begins by introducing the new features in Python 3.7. Students will gain a solid
understanding of Python syntax and delve into advanced object-oriented
concepts and mechanisms. Throughout the course, emphasis is placed on
adopting best practices for naming packages and creating executables. Students
will also explore code management tools, learn to write clear documentation,
and apply test-driven development principles to produce clean code. By the end
of the course, students will have enhanced their proficiency in Python, enabling
them to write code that is not only functional but also readable, reusable, and
easily maintainable.
COMP310 Game Design and Development CSCI207 3 cr.
Course
Description This course introduces students with a strong programming background to the
world of game development using the Unity platform and C# programming
language. Students will learn game design principles, physics, animation, input
handling, mechanics, and artificial intelligence. Through hands-on projects, they
will develop their own games, gaining practical experience in coding game
components and optimizing performance. By the end of the course, students
will have the skills to create fully functional games and understand the game
development process. This course opens doors to exciting careers in the game
development industry.
COMP411 Advanced Data Structure and Algorithm CSCI316 3 cr.
Course This course continues the study of data structures and algorithms, focusing on
Description algorithm design and analysis and the relationships between data
representation, algorithm design, and program efficiency. Topics include key
algorithm design techniques, analysis of the time and space requirements of
algorithms, and characterizing the difficulty of solving a problem. Advanced
topics such as dynamic programming, greedy algorithms, and graph algorithms.

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.

COMP414 Cloud computing CSCI207 3 cr.


Course This course covers a series of current cloud computing technologies, including
Description technologies for Infrastructure as a Service, Platform as a Service, Software as a
Service, and Physical Systems as a Service. An overview of the main elements of
the cloud is given, as well as the different ways the data can be stored and
managed. The course will also go over the virtualization technology in the cloud.
In addition, it will pass through the distributed computing technologies and tools
such as Apache Hadoop, Kafka, and Spark. At the end, it explains the four NoSQL
database types and focuses on the MongoDB Atlas which is the MongoDB online
cloud service.

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.

DTSC420 Natural Language Processing MATH304, 3 cr.


CSCI410
Course The Natural Language Processing course covers essential topics and techniques
Description in computational language processing. Students will learn and implement classic
and stochastic algorithms for NLP tasks. They will explore challenges in
representing meaning and understand the advantages of using standard
corpora. The course introduces techniques for information retrieval, language
translation, and text classification. Students will gain hands-on experience with
implementing TF/IDF transforms and training machine learning algorithms for
text classification. The course also covers deep learning approaches for language
modeling, feature representations, and self-supervised learning in NLP. By the
end of the course, students will be equipped with practical NLP skills and
knowledge.

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.

DTSC424 Deep learning CSCI410 3 cr.


Course The Deep Learning course is a comprehensive program that delves into both the
Description fundamentals and advanced techniques of deep learning and neural networks. This
course is designed to offer students a profound understanding of the underlying
concepts, essential tools, and effective strategies necessary for constructing and
optimizing powerful neural network models. Through a combination of theoretical
lectures, practical programming assignments, and real-world application examples,
students will gain the expertise needed to excel in the rapidly evolving field of deep
learning.

SECU313 Computer Networks – II : Routing and CSCI212 3 cr.


Switching
Course This Computer Networks – II : Routing and Switching Essentials delves deeper
Description into the fundamental building blocks of network connectivity: routers and
switches. Expanding on introductory knowledge obtained in CSCI212, students
will gain a comprehensive understanding of their architecture, components, and
crucial functionalities. Students will explore how these intermediary network
elements weave together the fabric of networks, ensuring seamless data flow
across devices. The course covers both theoretical and practical aspects. On the
theoretical side, students will master the core roles of routers and switches,
unraveling their inner workings and grasping their significance in routing
protocols, network segmentation (VLANs), and address translation (NAT).
Additionally, they will be introduced to essential network security and
monitoring concepts, equipping you with a holistic view of network operations.
On the practical side, students will learn to configure routers and switches for
basic functionality. Through labs and simulated scenarios, they will learn to
tackle common network issues with confidence, employing skills in static and
dynamic routing, VLAN configuration, network address translation, and security
access control lists. They will also explore dynamic host configuration and
network monitoring protocols, empowering them to manage and troubleshoot
your network efficiently.

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.

SECU316 Systems and network administration SECU313 3 cr.


Course This course provides a comprehensive understanding of network and system
Description administration. Through lectures, labs, and hands-on exercises, students will
explore networking protocols, server management, virtualization, security,
automation, and other core aspects. Emphasizing both theoretical principles and
practical application, the course aims to equip students with the skills needed
for a career in network and system administration.
SECU420 Network Security SECU313, 3 cr.
SECU301
Course This course is designed to equip students with a deep understanding of
Description contemporary security measures in computer networks. Beginning with an
introduction to essential concepts, the course progresses through a journey that
includes Firewalls, Intrusion Prevention Systems (IPS), Mail Security, Web
Application Firewalls (WAF), LAN and Endpoint Security, Sandboxing, Security
Information and Event Management (SIEM), Securing Network Devices, and
Wireless Network Security. Through a blend of theoretical discussions, hands-on
labs, and real-world case studies, students will gain practical skills to implement,
manage, and troubleshoot diverse security measures to safeguard network
infrastructures.

SECU422 Web application security CSCI315, SECU301, SECU313 3 cr.


Course This 3-credit course provides students with a comprehensive understanding of
Description the security principles and practices necessary for modern web applications. It
covers the core security challenges, attack vectors, defense mechanisms, and
hands-on lab sessions using vulnerable web applications like OWASP Juice Shop
and WebGoat. Students will gain the knowledge and skills required to secure
web applications and protect them from various security threats.

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.

SECU426 Information security management SECU301, SECU316 3 cr.


Course This course introduces students to the fundamentals of information security
Description management, preparing them to protect an organization's critical information
assets. Through a comprehensive exploration of key concepts, legal frameworks,
risk management strategies, and security management practices, students will
gain the knowledge and skills needed to design, implement, and maintain
effective information security programs.

SECU430 Introduction to digital forensics SECU301, 2 cr.


SECU313
Course This course introduces students to the fundamental concepts and techniques of
Description digital forensics, focusing on the acquisition, preservation, and analysis of digital
evidence in the context of computer security and networking. Students will gain
hands-on experience in investigating cybercrimes and security incidents.
CSCI420 Final Year Project 90 credits 3 cr.
Course This course is a culmination of the students' academic journey, where they
Description prepare their senior projects with a focus on software engineering or system
engineering for cybersecurity students. In the initial phase, students analyze
project requirements and formulate comprehensive project plans. They then
transition into the development and design stage, working collaboratively in
groups to divide tasks and create robust solutions. Emphasis is placed on
applying software engineering principles and cybersecurity best practices.
During the testing phase, students rigorously verify and validate their solutions,
ensuring reliability, functionality, and security. Finally, students present and
demonstrate their projects, showcasing features and innovations to an audience
of peers and professionals. Clear roles, efficient communication, and
coordinated efforts are emphasized. Regular progress updates and peer
feedback promote accountability. The course provides hands-on experience in
project management, software/system engineering, development, testing, and
presentation skills. It prepares students for future endeavors and showcases
their achievements.

31

You might also like