Page 99 - University Bulletin
P. 99
98
CS 210 DATA STRUCTURE AND ALGORITHMS
Credits: 3(3,1,0) Prerequisite: CS 102
This course introduces classical data structures and algorithms with emphasis on
performance using asymptotic analysis of algorithms and complexity classes. Fundamental
data structure includes lists, stacks, queues, heaps, trees, and graphs. The student will
learn a variety of algorithms for searching, sorting, traversing and hashing. In addition, the
course covers the application of these data structures and algorithms in real-life problems
and implementing them in modern programming languages.
CS 223 COMPUTATIONAL LINEAR ALGEBRA
Credits: 3(3,1,0) Prerequisite: MATH 113
The course introduces the fundamentals of linear algebra in the context of computer science applications.
Includes matrices, determinants, systems of linear equations, Euclidean vector spaces, real vector spaces,
inner product spaces of linear equations, eigenvalues and eigenvectors, linear transformation,
applications. The course represents basic concepts and techniques from linear algebra that will be
required in later courses in areas such as machine learning, computer graphics, and quantum computing.
CS 225 SOFTWARE ENGINEERING: DESIGN AND DEVELOPMENT
Credits: 3(3,1,0) Prerequisite: CS 210
This course serves as an introduction to software engineering design and development.
Students learn various aspects of software development stages. The following aspects of
software are reviewed as well: process models, life cycles, requirement analysis,
documentation, design methodologies, development strategies and project management.
The course emphasizes the development of high-quality software using software
engineering best principles.
CS 285 DISCRETE MATHEMATICS FOR COMPUTING
Credits: 3(3,1,0) Prerequisite: CS 101
The course introduces the students to mathematical logic, fundamental discrete
structures, such as: sets, functions, relations and graphs. Mathematical reasoning and
various counting techniques are also covered in the course. Throughout the course
students apply the techniques they learn to simplified practical problems. This course
prepares the students for higher level computing courses where these concepts are of
fundamental importance
CS 311 DESIGN AND ANALYSIS OF ALGORITHMS
Credits: 3(3,1,0) Prerequisite: CS 285,CS210
Introduction to fundamental techniques for designing and analyzing algorithms, including
asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms;
data structures; dynamic programming; graph algorithms; and randomized algorithms.
Finally, the course will introduce the different classes of complexity theory, which explain
the intractability of some problems and a classification of problems by their complexity.