Course Description
Course Description

CENG 500 Numerical Methods and Optimization (3-0-3)
Optimization problems, extreme of functions of n variables, linear programming and the simplex method, non-linear programming, definition of optimization, applications of optimization problems.

CENG 501 Operating Systems (3 0 3)
Fundamentals of concurrent programming; multitasking operating systems with special emphasis on UNIX; mutual exclusion problem and critical sections; semaphores; ADA rendezvous; transporters; UNIX structure.

CENG 502 Computer Networks and Communication (3 0 3)
Basics of data communication, computer networks, ISO /OSI basic reference model, routing, flow control, congestion control, TCP/IP suite of protocols, data links, Internetworking, higher level protocols.

CENG 503 Image Processing (3 0 3)
Discrete time signals, reconstruction, quantization, digital image representation, image fundamentals, image transforms, image enhancement, image restoration, segmentation, description, sampling.

CENG 505 Parallel Computing I (3 0 3)
Parallel computers, parallelism and data processing. Taxonomy of parallel architectures. Interconnection networks. Performance of parallel systems: speedup, efficiency, cost, granularity and sources of parallel overhead. Fundamental concepts: memory hierarchy, communication, locality, latency, synchronization, load balancing. Parallel programming models: data parallel, shared address space, message passing.

CENG 506 Microprocessors and Embedded Systems I (3 0 3)
Basic components of a Single-Board-Computer. Microprocessors and micro controllers. Microprocessor based systems. Machine coding, assembly language programming and High-Level-Languages (HLL). Computer architecture and assembly language. Hardware-software design. From gates to registers. Review of digital electronics. Register model of memories, and input and output (I/O) ports. Basic I/O protocols. Interrupts.

CENG 507 Neural Computing (3 0 3)
Fundamentals of neural Networks. Perception ,multilayer perceptions and backpropagation algorithms. Unsupervised learning and self organization maps. Neurodynamics (Hopfield Model). Radial basis function networks.

CENG 508 Artificial Intelligence I (3 0 3)
Exploring natural events, goal reduction, finding solution paths, games, logic, knowledge representation, natural language of understanding, matching, applications.

CENG 509 Pattern Recognition (3 0 3)
Machine perception, parameter estimation, learning, linear discriminate functions, clustering, scene analysis, Bayes decision theory, non-parametric techniques, applications of pattern recognition.

CENG 510 Parallel Computing II (3 0 3)
Parallel programming languages and runtime systems: data parallel languages, message passing libraries and shared memory programming, multithreading. Parallel methods for scientific computations in the areas computational physics, computational chemistry and other disciplines. The main aim of the course will be understanding/development of parallel/distributed algorithms

CENG 511 Algorithms (3 0 3)
The Complexity of Algorithms. Lower and Upper Bound Theory. Design of The Divide-and-Conquer, The Greedy Approach, Dynamic Programming, Backtracking, Branch-and-Bound. NP-Complete and NP-Hard Problems, Deterministic and Non-Deterministic Polynomial Type Algorithms, Introduction to Cryptography Algorithms, Public Key Cryptosystems.

CENG 513 Object Oriented Analysis and Design (3 0 3)
Classical and modern methods, comparative analysis of software development paradigms. Object orientation. Object oriented analysis and design of Coad-Yourdon and Rumbaugh. Applying OOD criteria. Introducing UML (Unified Modeling Language). Introducing Component based development and design patterns.

CENG 514 Computer Graphics (3 0 3)
Review of hardware and software used in graphic systems. Introduction to programming with OpenGL. Graphic primitives. 2D and 3D geometric transformations. Two dimensional viewing: Viewing pipeline, clipping, and windowing. There dimensional viewing: Viewing pipeline, viewing parameters, projections, viewing transformations, clipping. Visible surface detection. Introduction to illumination models and surface rendering. Introduction to ray tracing.

CENG 516 Microprocessors and Embedded Systems II (3 0 3)
Design of systems that use a microprocessors or micro controllers including both hardware and the software considerations. Memory interface. Basic input/output (I/O) ports and interface. Internal architecture. Address, data, control busses and bus timing. Memories. I/O interface with hand shaking protocols. DAC, waveform generation experiment. ADC, a digital voltmeter experiment. Basic I/O operation, timers and timer generated interrupts in micro controllers.

CENG 517 Cognitive Aspects of Natural Language Processing (3 0 3)
A quick review of Prolog. DCG grammars and DCG parsers. Parsing Algorithms. Semantics and Logic. Computational aspects of linguistic theories. Human sentence processing. Interpretation. Information structure. Ambiguity resolution. Interactions in multi-component grammars.

CENG 519 Artificial Intelligence II (3 0 3)
Knowledge representation. Uncertain knowledge and reasoning. Learning in neural and belief networks. Natural language processing.

CENG 520 Information Security (3 0 3)
Essentials of information security, determination of IT-security risks, specification of security objectives and security policy will be introduced. Furthermore, network packet capture and analysis, protocol decoding, security scanning, and attacks. Techniques and tools in penetration testing. Attends will learn to analyze security risks, design and test IT-security procedures and mechanisms, scan IP networks, discover and monitor intrusions and vulnerability within a specific range of threats.

CENG 521 Topics in Advanced Database (3 0 3)
Principles, facilities and applications of database management systems. Relational data model: relational operators, relational algebra, relational calculus, relational database design, functional dependencies, normal forms. Distributed databases, distributed database design, distributed query processing, concurrence control Deductive databases: syntax and semantics query processing. Object Oriented data model, complex values, additional operators. Practical query language.

CENG 522 Advanced Object Oriented Programming (3 0 3)
Object-Oriented Programming and Procedural Programming, Classes and Abstract Data Types, Inheritance and Polymorphism, Interfaces and Components. Object-Oriented Programming and UML. Graphics and Event Handling.

CENG 525 Introduction to Functional Programming (3 0 3)
Lambda-calculus, reductions, Church-Rosser theorems, recursive functions, implementation details, semantics and the use of functional languages in programming. Emphasis on programming, analysis and optimization of programs written in the functional style.

CENG 526 Software Architecture (3 0 3)
The need for software architecture, construction versus development of software, non-functional requirements and essentials of architecture, modeling software architecture, reviewing and analyzing software architecture, tradeoff analysis, architecture description languages, the role of agile methodologies in architecture, pattern-oriented development, interface-oriented development, service-oriented architecture and software product lines.

CENG 530 Computing Fundamentals (3 0 3)
Computer parts, flow of data, level of abstractions, number systems, operating systems, office tools, logic, gates, spread sheet, database, Internet.

CENG 531 Information Technology (3 0 3)
Introduction to information systems: information systems in an organization, information systems investigation and analysis, information technology policy of an organization. Information Technology infrastructures and Architecture: data Communication and Networking. Internet, Intranet and Web Based systems. Information Processing Requirements. Enterprise Resource Management (ERM): information Technology in Business.

CENG 532 Computer Systems (3 0 3)
Implementing Enterprise Resource Planning (ERP) Systems: introduction to ERP (SAP, Oracle, ASP). System design and implementation: distributed systems and Client/Server architecture, centralized print spooling. Back Office Systems: tools and applications.

CENG 533 Programming and Problem Solving (3 0 3)
Structured problem solving and top-down analysis and design of solution algorithms. Control structures, data types, input output format, program structure, functions, recursion, files, pointers and dynamic data structures. Advanced Problem Solving Applications.

CENG 534 Multimedia and Internet (3 0 3)
Architectures for Multimedia Systems, Digital Audio, Video Technology and Image Compression, Computer Graphics, Multimedia Information Systems, Multimedia Communication Systems. Structure of the Internet, Methods of Storing and Accessing Data on the Internet.

CENG 535 Database Management (3 0 3)
Introduction to database systems, data storage and retrieval problems, data definition, relational database management systems, Tables, Queries, Relationships. Entity-Relationship models. Introduction to Sequential Query Language (SQL), Writing queries in Visual environments, Embedded SQL. Database programming with Visual Basic and MS-ACCESS

CENG 537 Object-Oriented Construction (3 0 3)
The focus in this course is on the abstraction, specification, and object-oriented design of computer programs in advanced skills. The student will learn to construct reliable, high-quality software, and will be deeply familiar with current notions of object-oriented specification, design, and programming, The emphasis is on modularity: how to get the components and interfaces right and how to organize a program as a collection of reliable components through interfaces. The C++, Java programming languages are used as a vehicle for learning these concepts even thought the techniques presented are language independent. Programming skills will be developed in an accompanying Laboratory section.

CENG 550 Internet Architecture (3 0 3)
Internet services, communication protocols. Fundamental anatomy of communication systems used by diverse Internet services and systems: data communication concepts (mechanisms, techniques, procedures, structures, architectures, and information packet analysis).

CENG 557 Software Quality Assurance and Testing (3 0 3)
Process models. Software quality. Quality assurance. Quality metrics. Construction of SQA. SQA planning. Quality standards, CMM, IEEE, ISO(9001). Software testing techniques. Black box and white box testing. Test strategies, unit test, integration testing, and system testing.

CENG 558 Distributed Object Computing (3 0 3)
General structure of distributed object computing, distributed object architecture and middleware technologies, Common Object Request Broker Architecture (CORBA), object invocation, communication protocols for remote object invocation, e.g., IIOP, development of distributed client/server systems. Java will be used as the major programming language, especially for client side programming, but C++ will also be used to develop server side applications.

CENG 567 Data Mining (3 0 3)
What is data mining? Data mining strategies and techniques, Decision trees, Association rules, K-means algorithm, and statistical models. Tools used for data mining, Knowledge discovery in databases, Evaluation methods, Advanced data mining techniques, Intelligent systems

CENG 568 Knowledge Engineering (3 0 3)
Overview of AI. Overview of knowledge-based systems. Knowledge acquisition methods. Knowledge representation techniques. Backward, forward and hybrid chaining in rule-based production systems. Conflict resolution. Treatment of uncertainty. Rule and decision-tree induction. Case studies.

CENG 581 Constructive Software Engineering (3 0 3)
Business processes modeling, Workflow based systems, Dynamic object Modeling, Adaptive object modeling, Aspect orientation, Rule-Based systems, Distributed structures and GRID technologies, Integration with SPM (Software Process Modeling) and SPL (Software Product Lines).


CENG 590 Graduate Seminar (Non-credit)
Presentation and discussion of current issues and works by graduate students in their relevant fields.

CENG 591 Special Studies (0 4 0)
This course is required for students who are en rolled in Thesis course.

CENG 595 Selected Topics in Computer Engineering (3 0 3)
This course consists of lectures, seminars, and readings covering the latest advances and research in Computer Engineering such as simulation, communication, signal processing, computer hardware and software.

CENG 599 Thesis (Non-credit)
Directed independent research on a specific topic approved by the students adviser.