CMS 101 : Introduction to Computer Science (6 ECTS credits)
Prerequisite: NONE
Students are introduced to the evolution of computers, the components of a computer system, computer hardware and software, data communications, fundamentals and functions of the Internet.
CMS 105: Fundamentals of Computer Programming (6 ECTS credits)
Prerequisite: CMS 101
Introduction to principles of programming and procedural thinking. Procedural abstraction, data abstraction, modularity, object-oriented programming. Uses the Scheme programming language and computer facilities. Substantial programming assignments, including numerical and symbolic programs.
CMS 112: Information Technology Essentials (CISCO course) (6 ECTS credits)
Prerequisite: CMS 101
Students learn the functionality of hardware and software components as well as suggested best practices in maintenance and safety issues. The students, through hands-on activities and labs, will learn to assemble and configure a computer, install operating systems and software, and troubleshoot hardware and software problems. In addition, an introduction to networking is included in this course
CMS 115: Systems Programming (6 ECTS credits)
Prerequisite: CMS 101
Introductory course on assembly language and operating systems fundamentals. Number systems, machine language, and assembly language. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Operating systems concepts: processes and process management, input/output (I/O) programming, memory management, file systems.
CMS 202: Computer Applications in Engineering (6 ECTS credits)
Prerequisite: CMS 101
A practical course on computer applications as a problem-solving tool in engineering. Topics include word processing, electronic spreadsheets, database management, graphics and telecommunication.
CMS 204: C Programming Language (8 ECTS credits)
Prerequisite: CMS 101
Input output, variable types, operators, statements, arrays, functions, pointers, structures, macros, and advanced functions. Algorithmic, procedural program solving.
CMS 208: Mathematical Foundation of Computer Science (6 ECTS credits)
Prerequisite: CMS 105
Basic concepts of finite and structural mathematics. Sets, axiomatic systems, the propositional and predicate calculi, and graph theory. Application to computer science: sequential machines, formal grammars, and software design.
CMS 213: Data Analysis and Measurement (6 ECTS credits)
Prerequisite: EENG 302
Students are introduced to the practical aspects of random data analysis and measurement procedures. Statistical properties of random data, correlation, spectral density, input/output relationships, statistical errors, coherence functions, data acquisition, and processing techniques.
CMS 215: Data Structures (6 ECTS credits)
Prerequisite: CMS 204
Primitive data structures . Arrays. Stacks. Queues. Sequential storage allocation. Concept of linking. Trees, graphs. Application of data structures.
CMS 218: Data Structures and Algorithms (8 ECTS credits)
Prerequisite: CMS 215
Graphs. Advance sorting. Hashing. Heap structures. Search structures. Complexity. Parallel algorithms. File organization.
CMS 221: Computer Based Information Processing (6 ECTS credits)
Prerequisite: CMS 101
The evolution of computers. The components of a computer system: the central processing unit, input, output and auxiliary storage devices. File organization. Data communications. Operating Systems. System analysis and design. Data base management systems. Data representation and processing, application software including word processing, electronic spreadsheets.
CMS 230: Internet Programming (6 ECTS credits)
Prerequisite: CMS 105
Overview of the Internet and World Wide Web tools and resources, Internet utilities, multimedia, and security issues. Students will gain considerable hand-on experience in Internet Hypertext Markup Language (HTML). Applets and in a scripting language such as Java Script.
CMS 280: CISCO Certificate Network Administrator 1 (CCNA 1) (6 ECTS credits)
Prerequisite: CMS 202
This course provides an in-depth knowledge of data communications and networking requirements, including networking and telecommunications technologies, hardware, and software. Emphasis is on the analysis and design of networking applications in organizations. Management of telecommunications networks, cost-benefit analysis, and evaluation of connectivity options. Students learn to evaluate, select, and implement different communications options.
CMS 290: CISCO Certificate Network Administrator 2 (CCNA 2) (6 ECTS credits)
Prerequisite: CMS 280
This course provides students with classroom and laboratory experience in current and emerging networking technology that will empower them to enter employment or further education and training in the computer networking field. A task analysis of current industry standards and occupational analysis was used to develop the content. CCNA 2 focuses on initial router configuration, Cisco IOS software management, routing protocol configuration, TCP/IP, and access control lists (ACLs). Students will develop skills on how to configure a router, manage Cisco IOS software, configure routing protocols, and create access lists controlling access to the router.
CMS 301: Operating Systems (6 ECTS credits)
Prerequisite: CMS 101, CMS 202
An introduction to the major concept areas and techniques of designing and implementing operating systems. Multitasking operating systems with special emphasis on UNIX.
CMS 303: Digital Logic (8 ECTS credits)
Prerequisite: EENG 302
Introduction to digital systems. Sequential and non-sequential logic as applied to computer hardware including circuits and basic computer organization.
CMS 307: Logic Design of Digital Systems (8 ECTS credits)
Prerequisite: EENG 302
Specification and implementation of combinational and sequential systems. Standard logic modules and programmable logic arrays. Specification and implementation of algorithmic systems: data and control sections. Number systems and arithmetic algorithms. Error control codes for digital information.
CMS 308: Computer Architecture and Organization (6 ECTS credits)
Prerequisite: CMS 307
Computer instructions; timing and control; execution of instructions; I/O and interrupt; Central processor organization; bus concept; data transfer and manipulation; central memory; address sequencing; micro program sequence; arithmetic processor design; I/O organization; peripheral devices; I/O interface; direct memory access; multiprocessor system organization; data communication processors; auxiliary memory; virtual memory; cache memory and memory management.
CMS 309: Computer Networks and Communications (6 ECTS credits)
Prerequisite: CMS 202, CMS 218
This course introduces the underlying concepts and principles of computer networks. It presents the different components of a network and how these components fit together. The course emphasizes the design and implementation of network software that transforms raw hardware into a richly functional communication system. Real networks (such as the Internet, ATM, Ethernet, Token Ring) are used as examples to reinforce the concepts and demonstrate various protocols.
CMS 314: Information Management (8 ECTS credits)
Prerequisite: CMS 218
Theoretical models for information representation, storage, and processing. Analysis, design, implementation, and management of organizational information resources, such as operational databases, data warehouses, and knowledge management systems.
CMS 316: Database Management Systems (6 ECTS credits)
Prerequisite: CMS 218
Emphasizes concepts and structures necessary to design and implement a Database
Management System. File organization, relational model and relational database systems. SQL, Oracle and other data management approaches. Database design principles. Selected topics such as distributed databases, object-oriented databases, real-time databases, and multimedia databases will be discussed.
CMS 321: Operations Research (6 ECTS credits)
Prerequisite: CMS 101, CMS 105
Linear Programming, the transportation problem. Nonlinear programming. Integer programming.
CMS 336: Design and Analysis of Algorithms (6 ECTS credits)
Prerequisite: CMS 218
Analysis techniques, solving recurrence equations. Algorithm design techniques: divide and conquer, the greedily method, backtracking, branch- and-bound, and dynamic programming. Sorting and selection algorithms, order statistics, heaps, and priority queues.
CMS 345: Microprocessors and Microcomputers (6 ECTS credits)
Prerequisite: CMS 307
Introduction to microprocessors and microcomputer architecture. Arithmetic logic unit structure. Assembly language programming. Timers and interrupts. Parallel and serial input/output programming.
CMS 350: Computer Graphics (6 ECTS credits)
Prerequisite: CMS 204
Graphical hardware, point and line plotting displays, display processors, display file compilers, two and three-dimensional representations and transformations, interactive techniques.
CMS 415: Artificial Intelligence (6 ECTS credits)
Prerequisite: CMS 316
This course introduces students to the basic principles of artificial intelligence. Course covers problem solving, search strategies, knowledge representation and reasoning and learning methods of artificial intelligence. Natural language processing, expert systems, computer vision and robotics will also be explored.
CMS 417: Intelligent Information Systems (6 ECTS credits)
Prerequisite: CMS 316
Data and knowledge representation, queries processing, information retrieval. Fuzzy query processing. Intelligent Database Systems and Knowledge-based systems.
CMS 420: Object-oriented Programming Languages (8 ECTS credits)
Prerequisite: CMS 204, CMS 215
Introduction to object-oriented programming languages. Programming with C++, Java.
CMS 425: Soft Computing (6 ECTS credits)
Prerequisite: CMS 204, CMS 316
This course provides an introduction to the basic concepts of Soft Computing methodology and covers three main components : Fuzzy Logic, Neural Networks, and Evolutionary Computation. The course combines theoretical foundations with practical applications using different tools and techniques.
CMS 430: Software Engineering (6 ECTS credits)
Prerequisite: CMS 420
Structured programming, program specification, program proving, modularity, abstract data types, composite design, software tools, software control systems, program testing, team programming.
CMS 445: Information Systems Engineering (6 ECTS credits)
Prerequisite: CMS 314
Planning and estimation. Risk analysis and management. Specification Techniques. Process modeling. Measurement and evaluation. Information systems development methodologies. A comparative survey. Case Technology in information systems development.
CMS 450: Web Design and Development (8 ECTS credits)
Prerequisite: CMS 230, CMS 336
Analysis, design, construction and implementation of Web based and client-server systems. Client-server and Web testing, client-server and Web technology architecture, support services, Web database application design and programming.
CMS 470: Summer Practice (6 ECTS Credits)
Summer Practice gives students a chance to put their theoretical educations into practice in the real world situations. Students observe the computer system and the software developed and used in the leading IT industries in the country and gain practical skills.
CMS 501: Artificial Intelligence Programming (6 ECTS credits)
Prerequisite: CMS 415
Introduction to tools, techniques, and issues in artificial intelligence programming. Functional programming for artificial intelligence applications. Review of LISP and introduction to lexically scoped LISPs. Lambda calculus, closures, data-driven and object-oriented programming, flavors, d-nets, resolution-based deductive systems. Techniques of logic programming. Artificial intelligence programming languages and artificial intelligence features.
CMS 502: Intelligent Systems (6 ECTS credits)
Prerequisite: CMS 415
Basic elements of Intelligent Systems (IS). Knowledge representation. Production rules, semantic networks, frames, logical models, scripts. IS design problem, design resources. IS design stages, identification, conceptualization, formation, design, testing and exploration. Program means and technical means for IS design. Expert system shells. Expert systems with VP-Expert.
CMS 503: Expert Systems (6 ECTS credits)
Prerequisite: CMS 415, CMS 425
The main structure and functions of expert systems. Knowledge acquisition and verification. Knowledge base module. Fuzzy reasoning. Fuzzy expert systems. Confidence degree and its estimation in expert systems. Hybrid and distributed expert systems.
CMS 505: Fuzzy Logic (6 ECTS credits)
Prerequisite: CMS 425
In-depth study of fuzzy logic and fuzzy sets, their operations and related theorems. Application of these principles in practical areas such as pattern recognition, controllers and image processing.
CMS 507: Decision Science Foundations (6 ECTS credits)
Prerequisite: CMS 202, CMS 321
Introduction to Decision Sciences. Exploratory Data Analysis. Multiple Regression Analysis. Models and Models Building. Decision Support Systems. Optimization Modeling: Static workforce scheduling, Blending Models, Logistics Models, Aggregate Planning Models, a dynamic Financial Model, Integer Programming Models, Nonlinear Models. Simulation Models: Monte-Carlo Simulation, Spreadsheet simulation, Risk Analysis, Decision-Making under uncertainty.
CMS 510: Neural Networks (6 ECTS credits)
Prerequisite: CMS 309, CMS 415
Ordinary and fuzzy neuron models. Forms of membership functions. Hierarchical neural networks. Feedforward and feedback network. Single-layer and multi-layer network. Fuzzy min-max neural networks. Learning in fuzzy-sets neural networks.
CMS 512: Pattern Recognition (6 ECTS credits)
Prerequisite: CMS 321, CMS 415
The extraction features from data and obtaining images. Classification images. Break on clusters. Decision function. Pattern classifiers. Perception algorithm. Training set. Stochastic and adaptive learning algorithms for recognition.
CMS 515: Distributed Intelligent Systems (6 ECTS credits)
Prerequisite: CMS 309, CMS 417
Solving of global problem depends on its local subtasks performing. Distributed Intelligent Systems (DIS) architecture: control network and hierarchical network. Intelligent systems interaction organization in DIS: Direct connection and non-direct connection. Coordination of DIS.
CMS 517: Hybrid Intelligent Systems (6 ECTS credits)
Prerequisite: CMS 415, CMS 425
Neuro-fuzzy identification model of fuzzy systems. Neuro-fuzzy identifiers and controllers for fuzzy systems. Fuzzy neural network approach to control systems. Direct fuzzification of neural network. A learning method of fuzzy inference rules with neural networks.
CMS 520: Advanced Topics in Internet Research (6 ECTS credits)
Prerequisite: CMS 309, CMS 450
Overview of Internet development history and fundamental principles underlying TCP/IP protocol design. Discussion of current research topics, including multicast routing protocols, multicast transport protocols (e.g., real-time, transport protocol, RTR, and SRM), support for integrated services. World Wide Web, multimedia applications on Internet. Fundamental issues in network protocol design and implementations.
CMS 521: Advanced Computer Networks (6 ECTS credits)
Prerequisite: CMS 309, CMS 450
Review of seven-layer ISO-OSI model. High-speed networks: LANs, MANs, ATM. Flow and congestion control; bandwidth allocation. Internetting.
CMS 522: Network Programming (6 ECTS credits)
Prerequisite: CMS 309, CMS 450
Fundamentals of computer communications and OSI lower level protocols. Higher level protocols: transport, session, presentation and application layers. Introduction to formal techniques for protocol specification, verification and testing. The protocols IPX, SPX, TCP/IP, NetBEUI and usage them in application programs. Network programming in high-level languages. Remote procedure calls and it programming.
CMS 524: Advanced Computer Architecture (6 ECTS credits)
Prerequisite: CMS 308
An advanced treatment of computer architecture covering new technological developments, including details of multiprocessor systems and specialized machines. Special emphasis will be devoted to new concepts such as data flow machines, higher level language processor and associative processors.
CMS 526: Knowledge Engineering (6 ECTS credits)
Prerequisite: CMS 105, CMS 415
Basic Concepts and techniques. Knowledge representation. Drawing inferences. Tools and languages for expert systems. Knowledge engineering and expert systems development. Knowledge acquisition. Current expert system applications.
CMS 530: Advanced Computer Graphics (6 ECTS credits)
Prerequisite: CMS 350
Transformational geometry, standard graphics systems. Splines and interpolation, visible surface algorithms. Hidden surface models, rendering of various surface types. Shading techniques.
CMS 535: Multimedia Systems (6 ECTS credits)
Prerequisite: CMS 350, CMS 420
Hardware and software of multimedia systems, graphics, audio, video, animation. General aspects of multimedia systems components programming in high level languages; Animating articulated 3D models, procedural animation, particle systems, Fourier synthesis of fractals, water waves, clouds turbulence, and flames, slide presentation, creating movie files. The international standards of multimedia systems – Moving Pictures Expert Groups (MPEG-1 – MPEG-7). Using Macromedia Flash for creating AVI files.
CMS 540: Pictorial and Multimedia Database Systems (6 ECTS credits)
Prerequisite: CMS 316, CMS 535
Pictorial and multimedia information system requirements. Data models and accessing; alternatives. Database systems. Visual languages and communication. Hypertext. Database design and organization, logical and physical design. Database heterogeneity and distribution. Other topics at discretion of instructor.
CMS 543: Distributed Database Systems (6 ECTS credits)
Prerequisite: CMS 316, CMS 540
File allocation, intelligent directory design, transaction management, deadlock, strong and weak concurrency control, commit protocols, multi-database systems, fault recovery techniques, network partitioning, examples, trade-off, and design experiences.
CMS 545: Programming Languages (6 ECTS credits)
Prerequisite: CMS 430
Fundamental concepts underlying all programming languages; semantic aspects, including binding times, visibility, retention, storage management, abstraction mechanisms and extensibility; operational and denotational semantic specifications; and design and implementation issues, particularly for very high-level languages, including data representations, control regimes, code representations, and portability.
CMS 548: Advanced Object-Oriented Programming Languages (6 ECTS credits)
Prerequisite: CMS 420
The course focuses on object-oriented programming concepts and design, algorithms, problem formulation, structured programming, variables, primitive and abstract data types, data structures, file I/O and string manipulation, sorting and searching, control structures and standard algorithms, arrays, and recursion. This course uses high-level block-structured and object-oriented programming languages.
CMS 550: Advanced Software Engineering (6 ECTS credits)
Prerequisite: CMS 420, CMS 430
Methods and tools for software development, testing, and delivery. Emphasis on data abstraction and reusable components. Students working in teams implement a significant software product, including design documents, user’s guide, and process reports.
CMS 555: Advanced Data Structures (6 ECTS credits)
Prerequisite: CMS 215
Advanced treatment of various data structures with applications to searching, image processing, and computational geometry, multi-dimensional data structures, dynamization of data structures, spatial data structures, data structures in parallel and distributed environments.
CMS 560: Computer Methods of Data Analysis and Model Formation (6 ECTS credits)
Prerequisite: CMS 316
Techniques of using computers to interpret, summarize, and form theories of empirical observations. Mathematical analysis of trade-off between computational complexity, storage requirements, and precision of computerized models.
CMS 563: Digital Processing of Engineering and Statistical Data (6 ECTS credits)
Prerequisite: CMS 321
Computer methods for processing engineering and statistical data. Algorithms to evaluate recursive filter functions, Fourier series, power spectral, analysis correlation computations, and statistical testing.
CMS 570: Theory of Program Structure (6 ECTS credits)
Prerequisite: CMS 430
Models of computer programs and their syntax and semantics; emphasis on programs and recursion schemes; equivalence, optimization, correctness, and translatability of programs; expressive power of program constructs and data structures; selected current topics.
CMS 580: Software Engineering Systems (6 ECTS credits)
Prerequisite: CMS 430
Methodologies and computer-based systems for the design and construction of assuredly-correct systems of programs. Structured design; structured programming; computer-assisted software engineering. Theoretical foundations and current research.
CMS 583: Principles of Computer-Aided Design Systems (6 ECTS credits)
Prerequisite: CMS 350, CMS 530
Comprehensive introduction to the field of computer-aided design systems. Theory and wide range of applications.
CMS 590: Special Topics in Computer Science (6 ECTS credits)
Courses not listed in the catalogue are given as Special Topics courses. Contents vary from year to year according to interest of students and instructor in charge. Courses include various computer science topics.
CMS 600: MS Thesis (6 ECTS credits)
Scientific-research work. Individual investigation of the theme to be arranged with supervisor. The results of the work should be presented in the form of thesis.
CMS 610: Advanced Intelligent Systems (6 ECTS credits)
Prerequisite: CMS 415, CMS 502
This course is a practical course, which introduce students with a set of tools for analysis and design of Intelligent Systems. Intelligent Systems Development. Applied Artificial Intelligence Systems. Data Mining. Language understanding. Image understanding. Speech recognition. Intelligent agents.
CMS 620: Modeling and Business Decision Analysis (6 ECTS credits)
Prerequisite: CMS 507
This course covers modeling techniques and analysis for making decision in business. Model building. Decision structure. Decision making. Decision modeling. Types of Decision Models. Developing Decision Models.
CMS 630: Advanced Neural Networks (6 ECTS credits)
Prerequisite: CMS 425, CMS 510
This course is a practical course on Neural Networks. Architecture of Neural Networks. Neural Networks Learning Algorithms. Supervised Learning. Reinforcement Learning. Unsupervised Learning. Back-Propagation Algorithm. Applications of Neural Networks.
CMS 635: Time Series Forecasting (6 ECTS credits)
Prerequisite: CMS 507
This course covers time series models and includes practical examples on forecasting using time series models. Time Series Components. Time Series Decomposition. Trend Analysis. Least Squares Method. Seasonality Analysis.
CMS 640: Fuzzy Logic and Systems (6 ECTS credits)
Prerequisite: CMS 425, CMS 505
This course is a practical course, which introduce students Fuzzy Logic and Systems. Fuzzy Sets and Membership Functions. Fuzzy Numbers. Fuzzy Relation and Composition. Fuzzy Inference Systems. Applications of Fuzzy Logic.
CMS 646: Advanced Network Security Systems (6 ECTS credits)
Prerequisite: CMS 521
The course consider the overall security processes and systems with particular emphasis on hands-on skills in the areas of security policy, security technologies, firewall and secure router design, AAA implementation, intrusion detection (IDS) implementation and VPN implementation.
CMS 650: Risk Analysis and Assessments (6 ECTS credits)
Prerequisite: CMS 507
The course covers advanced methods and techniques of risk analysis and assessments. Financial risks. Risk in Business. Methods in Risk Analysis. Risk Assessment. Risk Management. Risk Analysis and Assessment models. Model selection methodology.
CMS 654: Econometric Analysis in Engineering (6 ECTS credits)
Prerequisite: CMS 507
This course covers advanced methods and techniques of econometric analysis. Econometric analysis. Regression analysis. Linear regression. Multiple linear regression. Nonlinear regression. Least squares.
CMS 660: Advanced Knowledge Engineering (6 ECTS credits)
Prerequisite: CMS 526
This course is a practical course, which introduce students with Knowledge Engineering. Knowledge Based Systems. Knowledge Acquisition and Validation. Knowledge Representation Models.
CMS 665: Genetic Algorithms (6 ECTS credits)
Prerequisite: CMS 425
This course focuses on the evolutionary computation and applications of genetic algorithms. Evolutionary Computation. Genetic Algorithms. Computation Models. Selection. Search Operators. Evolutionary Algorithm. Fitness Evaluation. Population Structure.
CMS 670: Data Analysis and Model Formation (6 ECTS credits)
Prerequisite: CMS 507
This course is a practical course, which introduces students with data analysis models. Models and model formation. Optimization models. Simulation models. Sensitivity Analysis. Multiple Regression Analysis. Decision making under uncertainty. Decision Trees. Decision Support Systems.
CMS 680: Modern Problems of Computer Engineering (6 ECTS credits)
Prerequisite: CMS 520, CMS 550
The course focuses on the modern problems of information technology, data mining, database design, website design, multimedia systems, electronic commerce.
CMS 700: PhD Dissertation (24 ECTS credits)
Program of research leading to PhD degree, arranged between a student and the faculty member. Student register to this course in all semesters starting from the beginning of their second semester but not later than the beginning of the third semester while the research program or write-up of the dissertation is in progress.