Faculty of Sciences

(To become Faculty of Arts and Science starting September 2019)

Bachelor of Science in Computer Science

English
Computing Accreditation Commission
96 credits
For students entering the program at the Sophomore level
(holders of a recognized Baccalaureate or Freshman diploma - equivalent to 30 credits)

Courses

General Education
MAT202Algebra I
3 credits    |    Pre-requisite: MAT110
The course aims at providing the necessary tools and the mathematical maturity for engineers, for the design and analysis of abstract mathematical models. Subjects covered: logic and proofs, propositional calculus; sets and mappings; relations and ordered sets; an introduction to algebraic structures, groups, rings and fields; counting, finite and transfinite cardinals; matrix algebra, complex numbers and polynomials.
Arts and Humanities
3 credits
Behavioral and Social Sciences
3 credits
MAT213Calculus III
3 credits
The objective of this first analysis course is to give students of scientific fields the required foundations for understanding higher courses in mathematics, computer science, physics, economics, finance, etc. The subjects covered are the following: review of the functions of a real variable, simple integral and integration methods; suites and numerical series; functions of several variables, continuity, partial derivative, differential, the chain rule, Taylor expansion of 2 variables; introduction to double integrals, integration methods, change of variables, Jacobean, polar coordinates; and linear differential equations of the first order.
Civic Engagement
2 credits
English Communication
3 credits
CHM212General Chemistry
3 credits
The purpose of this course is to present a general outline on chemistry. Through this course chemistry is introduced in its various aspects: the structure of the atom, the various models, and the properties of the elements in the periodic table; various chemical bonds, the Lewis structure, VSEPR rules; thermochemistry, thermodynamics and chemical equilibrium; kinetic chemistry, reactions rate orders, the Arrhenius law; solutions chemistry, acids and bases and various acid­base equilibrium; complexation, liquid solid equilibrium and solubility product; and redox titration and electrochemical cells.
History of Lebanon
3 credits
Religious Sciences
3 credits
Science and Health
3 credits
Sports
1 credits
Common Core
STA320Applied Probability and Statistics
3 credits    |    Pre-requisite: MAT213 Or MAH213 And (MAT202 Or MAH202)
This course covers the following topics: probabilities, independence; random variables; expectation; two­dimensional random vectors, marginal, and conditional laws; probability distribution (Bernoulli, binomial, geometric, Poisson process, uniform distribution, gamma, distribution and normal distribution); multivariate random variables; the weak law of large numbers, and central theorem limits; statistics and sampling distribution; reliability; and applications.
CSC420Computer Networks
3 credits    |    Pre-requisite: CSC214 And CSC270 Or INF214
This course covers the architecture and protocols of modern computer networks. It presents the networking protocol models OSI and TCP/IP by discussing the different layers, their functions, roles, and services.
CSC212Computer Organization and Assembly Language
3 credits
The course is designed to introduce computer science and information technology students to the basics of computer architecture and low level programming, i.e. assembly code and hardware manipulation. The course will focus on the Intel x86 assembly language, number representations, logic circuits, Boolean algebra and logic simplification, addressing modes, input/output devices, system buses, memory systems, memory occupation, computer arithmetic, instruction sets and the design, control, and structure of CPUs.
CSC320Database Systems
3 credits    |    Pre-requisite: (CSC214 And CSC270) Or (INF214 Or INF219)
This course presents the principles of databases and familiarizes the students with the design and use of relational databases. It covers DBMSs, architecture and functions, entity­relationship and relational data models, relational database design, theory of normalization and the SQL language. This course includes laboratory work under ACCESS DBMS.
CSC271GUI Programming
1 credits    |    Pre-requisite: (CSC214 And CSC270) Or (INF214 Or INF219)
Students will learn about the OpenGL library. Different applications will be done in the lab and as homework using OpenGL with the C++ programming language. Students will also learn how to write a clean code as well as about the history of GUI. They will learn how to do animation and transformation. By the end of the semester a small game will be produced by the students.
CSC360Internet Technology
3 credits    |    Pre-requisite: INF215 Or (CSC215 And CSC272) Or INF229 Or CSC229 Or CSC312 Or INF312
This course focuses on the broad range of technologies used to build Internet and Web­based applications. We emphasize the development of client­side applications using HTML5, CSS3, JavaScript, XML and DTD.
CSC438Internship Report
1 credits    |    Pre-requisite: CSC360 Or INF360 Or CSC343
In the beginning of the semester, students need to find an internship. They have to get the approval of the department and the instructor of the course. They must also describe briefly the type of work they are going to do during their internship. The internship will be a minimum of a 150­hour work experience. Instructors need to meet with students at least once every four weeks. During this progress meeting, students need to show the instructors what they did during the four week period and what they are planning to do in the coming four weeks. By the end of the semester, students will have a 10 to 15 minutes presentation. During this presentation instructors from other sections may be present.
CHM270Laboratory of General Chemistry
1 credits    |    Pre-requisite: CHM212 Or CHE212 Or CHM210 Or CHE210
The general chemistry laboratory aims to develop different skills for the practical application of theoretical knowledge of general chemistry. Techniques to be learned: preparation and dilution of solutions, experimental verification of the Nernst equation, realization of different types of acid­base and redox titration by volumetric, calorimetric, pH­metric or potentiometric monitoring, and the study of solubility and precipitation reactions and characterization of ions present in a given matrix. The goal of the lab course is to ensure that students are capable of understanding the chemical concepts and to carry out experiments safely and carefully in the laboratory, to obtain data accurately and to manipulate the data correctly.
CSC314Object Oriented Programming
3 credits    |    Pre-requisite: (CSC214 And CSC270) Or INF214
The main objective of this course is to introduce the basic concepts of object oriented programming, while using the pure object oriented language of Java. UML will be presented succinctly in order to understand the approach of the modelling by objects. Some useful static diagrams are also presented, mainly object and class diagrams. A complete project illustrating the different approaches of this course will be presented as a model for future projects.
CSC214Programming I
3 credits
This course enable students to acquire a practical method to solve problems using the C++ programming language. It looks at methods for problem analysis, structural and detailed conception of solutions, base concepts of pseudo code and flow­charts, and the coding and verification of programs. Subjects include: introduction to C++ language, basic concepts of the language, types, expressions, control structures (selection, repetition), one and two dimensional arrays, strings, functions, prototypes, and text files. The course is completed by lab workshops.
CSC270Programming Laboratory I
1 credits    |    Pre-requisite: CSC214
The course enables students to acquire a practical method to solve problems using the C++ programming language. It includes: applications of the C++ language, basic concepts of the language, types, expressions, control structures (selection, repetition), one and two dimensional arrays, strings, functions, prototypes, and text files. This course is done entirely in the lab, and emphasizes the practical approach.
CSC368Project Management
2 credits    |    Pre-requisite: CSC314 Or INF314
This course describes the key principles of successfully managing a project from the planning stage to the end, showing the students how to define the different steps and measure and track their progress. During this course, the students will learn concrete and efficient methods to systematically improve the planning and realization of each step of this software development process.
Specialization
CSC315Data Structures and Algorithms
3 credits    |    Pre-requisite: INF211 Or CSC211 And (CSC229 Or INF229 Or (CSC215 And CSC272) Or INF215)
This course covers many advanced programming techniques. We focus on ADTs, especially trees and hash tables. Implementations are based on the object oriented approach. The analysis of the execution time of a program and the memory space that it uses will be considered throughout this course in order to compare theoretically different ADTs and algorithms.
MAT220Differential Equations
3 credits    |    Pre-requisite: MAT213 Or MAH220
In this course students will study differential nonlinear equations of the first order and linear equations of the second order, with some electrical and mechanical applications. Students will also study the transformation of Laplace and apply it to solving differential equations and linear differential systems. This course covers the concepts of power series and Fourier’s series and their applications.
CSC211Discrete Methods
3 credits    |    Pre-requisite: MAT202
This course introduces the discrete methods used in computer science and applied mathematics. The topics that will be covered are regular languages, regular expressions, finite automata and non-regular languages. It also discusses the basic elements in number theory and introduces graph theory. It introduces induction proof and recurrence relations.
CSC416Graph Theory and Operations Research
3 credits    |    Pre-requisite: (MAH310 Or MAT310) And (CSC211 Or INF211)
The aim of this course is to formulate a wide variety of real­life problems and to solve them using methods based on graph theory and linear methods. Concerning graph theory, we will particularly study the following problems: shortest path, minimum spanning tree, maximal flow network, and finding a critical path in a project network. As for linear methods, linear programming problems will be solved graphically and by using the Simplex algorithm and duality. We will also see how to solve integer programming problems using the branch­and­ bound method.
MAT310Linear Algebra
3 credits    |    Pre-requisite: MAT213 Or MAH213
In this course students will study the concepts and the basic results of matrix calculus and linear algebra, a very useful discipline in many other fields. The subjects covered are: matrix algebra, linear systems, determinant, spaces and vector subspaces, scalar products and orthogonality, eigenvalues and eigenvectors; Euclidean spaces, scalar product; and linear transformations.
MAT418Numerical Methods
3 credits    |    Pre-requisite: (MAT310 Or MAH310) And (MAT312 Or MAT220 Or MAH220) And (INF214 Or INF216 Or INF219)
This course will introduce the students to numerical computation allowing them to acquire the necessary tools to gain a better understanding of the modeling problems that they will meet later. The subjects covered are the following: introduction to numerical algorithms; non­linear equations, the bisection method, the fixed point method, Newton method, secant method, and systems of nonlinear equations; interpolation techniques of Lagrange, Newton, least squares, and splines; derivation and numerical integration, numerical solution of differential equations; and various applications with MATLAB (matrix algebra, linear systems, direct methods, iterative methods, eigenvalues).
CSC421Operating Systems
3 credits    |    Pre-requisite: INF314 Or CSC314
The course covers the fundamental concepts of operating systems, emphasizing single­machine systems. These concepts include processes, threads, synchronization, scheduling, memory management, file and I/O management, and user program execution. Popular operating systems (e.g., UNIX, LINUX, and Windows) are used to illustrate implementation of these concepts.
CSC215Programming II
3 credits    |    Pre-requisite: (INF214 Or CSC214 Or INF219) And CSC270
This course introduces many techniques used to organize, search, sort and manipulate data after completing new concepts in the C++ language (structures, pointers, multidimensional arrays and binary files). It emphasizes arrays, linked lists, stacks and queues. Recursion and a simple sorting algorithm are also covered. The course is completed by lab workshops.
CSC272Programming Laboratory II
1 credits    |    Pre-requisite: CSC215
This lab introduces many techniques used to organize, search, sort and manipulate data after completing new concepts of the C++ language in the course (structures, pointers, multidimensional arrays and binary files). It emphasizes arrays, linked lists, stacks and queues. Recursion and a simple sorting algorithm are also covered.
CSC352Theory of Programming Languages
3 credits    |    Pre-requisite: CSC211 Or INF211 And (INF215 Or CSC215 Or INF229 Or CSC229 Or CSC312 Or INF312)
A programming language is a programmer’s principal interface with the computer. More than just knowing how to program in a single language, programmers need to understand the different styles of programming promoted by different languages. In their professional life, they will be working with many different languages and styles, and will encounter many different languages over the course of their careers. Understanding the variety of programming languages and the design tradeoffs between the different programming paradigms makes it much easier to master new languages quickly. Understanding the pragmatic aspects of programming languages also requires a basic knowledge of programming language translation and runtime features such as storage allocation. In this course we explore the major issues in both design and implementation of modern programming languages and provide a basic introduction to the underlying theoretical models on which these languages are based. The emphasis is on fundamental concepts. Several languages are highlighted in sufficient detail to enable the students to write programs that illustrate the relationship between a source program and its execution behavior.
Electives
CSC312Advanced VB Programming
3 credits    |    Pre-requisite: (CSC214 And CSC270) Or (INF214 Or INF219)
This course introduces the concept of event­driven programming and the windows environment. The classes begin with simple forms (Windows) and end with ADO.Net Objects which connect Databases to the VB.Net application, graphics programming. The course also covers Text and Binary file access and the Winsock control for networking.
CSC428Database Administration
3 credits    |    Pre-requisite: CSC320 Or INF320
In this course, students will learn about the following subjects: tasks of the database administrator; identifying the various components of the Oracle architecture; managing Oracle instance; creating a database; using a data dictionary and dynamic performance views; maintaining the control file; maintaining redo log files; managing table spaces and data files; storage structure and relationships; managing undo data; managing tables; managing indexes; maintaining data integrity; managing password security and resources; managing users; managing privileges; managing roles; backup; and about recovery, environment and applications.
CSC426Database Applications Development
3 credits
The aim of this course is to enable students to become familiar with the development of complex database applications. In this course the students will learn to manipulate in a complex manner the data contained in an Oracle database using the PL/SQL procedural language. In addition to the basic skills in PL/SQL programming, the course will cover the most important concepts of the PL/SQL programming language such as: cursors, stored procedures and functions, triggers, exception handling, and transactions.
CSC417Human Computer Interaction
3 credits    |    Pre-requisite: CSC360 Or INF360
This course will teach students about the importance of the human­computer interface in software design and development. The objectives of the course are: to facilitate communication between human factors engineers and computer scientists on user interface development projects; to provide the future user interface designer with concepts and strategies for making design decisions; to show the future user interface designer the tools, techniques, and ideas for interface design; to introduce the students to the literature of human­computer interaction; to stress the importance of good user interface design; and finally to be able to think differently, imaginatively and creatively.
CSC343Mobile Programming
3 credits
Today’s applications are increasingly mobile. Computers are no longer confined to desktops and laptops but instead live in our pockets and hands. This course teaches students the general structure of a mobile application on different mobile platforms. Students will also learn how to build mobile applications for Android and Windows Phones, and how to test and deploy them.
CSC430Systems and Networks Administrator
3 credits    |    Pre-requisite: INF319 Or CSC319 Or CSC212 Or INF212
The goal of this course is to prepare the students for the task of administrator by introducing them to the management of a UNIX environment. After an introduction to the problems bound to the multi­user and multi­task nature of the UNIX system, we introduce the most useful UNIX commands and the administrator's main tasks: user management, the device drivers, services management, network management, control of scripts on a shell, compression, and backup. The students are then trained on the complete installation of a Linux system.
Capstone
CSC436Advanced Programming Project
2 credits    |    Pre-requisite: CSC360 Or INF360 Or CSC343
In the beginning of the semester, students need to set up with their instructors a title and a detailed description of their projects. The instructors of all the sections of the courses will meet within the first three weeks of the semester. During this meeting they will accept, reject, or modify the proposed project. If the project was rejected they need to propose to the student another one. After this meeting, the proposal of every project will be signed by the student as well as the instructor. Instructors need to meet with students at least once every two weeks. During this progress meeting, students need to show the instructors what they did during the two week period and what they are planning to do in the coming two weeks. By the end of the semester, students will have a 10 to 15 minutes presentation. During this presentation instructors from other sections may be present.

Accreditation

This program is accredited by the Computing Accreditation Commission of ABET

Mission

The mission of the department of computer science is to graduate undergraduate and graduate students that excel in the fields of computing, networking, and database design, creation and management. This is fulfilled through comprehensive educational programs and research and development.

Program Educational Objectives

1. Graduates will work professionally as a member of a software team to address real work problems as well as demonstrating strong communication skills. Graduates are prepared to work in a broad range of situations involving tasks from theoretical work to software development.
2. Graduates will provide full solution for software problems from system design to solution development. They will be committed to long-life learning.
3. Graduates will have the ability to function and communicate effectively as ethically and socially responsible computer science professionals.

Program Outcomes

a. An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and the discipline.
b. An ability to analyse a problem, and identify and define the computing requirements appropriate to its solution.
c. An ability to design, implements, and evaluates a computer-based system, process, component, or program to meet desired needs.
d. An ability to function effectively on teams to accomplish a common goal.
e. An understanding of professional, ethical, legal, security and social issues and responsibilities.
f. An ability to communicate effectively with a range of audiences.
g. An ability to analyse the local and global impact of computing on individuals, organizations, and society.
h. Recognition of the need for and an ability to engage in continuing professional development.
i. An ability to use current techniques, skills, and tools necessary for computing practice.
j. An ability to apply mathematical foundations, algorithmic principles, and Computer Science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the trade-offs involved in design choices.
k. An ability to apply design and development principles in the construction of software systems of varying complexity.
Holy Spirit University of Kaslik
Tel.: (+961) 9 600 000
Fax : (+961) 9 600 100
© Copyright USEK 2024
Subscribe to our newsletter
Find USEK