Course Descriptions



CSE 503 - Advanced Computer Mathematics Recursive problems, integrals, integer functions, number theory, special numbers, discrete probability, asymptotic analysis.


CSE 504 - Advanced Numerical Computing Stirling and Gauss formulas, interpolation, numerical integral, numerical derivative, Taylor series, error analysis, finding roots of equations, halving method, polynomial interpolation, Krylov type iteration methods for asymmetric and non-linear problems, advanced topics in multigrid methods.


CSE 505 - Advanced Probability for Discrete Systems Algebra of events, probability theory, random variables, discrete and continuous probability distributions, transforms and applications, stochastic processes, Markov chains, decision theory and introduction to statistics.


CSE 511 - Theory of Algorithms Concepts of designing algorithms and complexity analysis of algorithms, solving recurrence equations and formal proofs, an intuitive and formal introduction to the concept of order and growth, divide and conquer approach, dynamic programming, greedy approach, graph algorithms, string algorithms, theory of NP, approximation algorithms.


CSE 512 - Heuristic Search Techniques Evolutionary algorithms: genetic algorithms, genetic programming, evolutionary programming, evolutionary strategies, applications of evolutionary algorithms and recent developments in these areas. Social algorithms (e.g., particle swarm optimization), harmony search, simulated annealing, tabu search and other local search methods. Emphasis on term project.


CSE 513 - Object Oriented Programming Approaches to modular program design, basic concepts of objects: Classes and instances, single and multiple inheritance and object hierarchies, encapsulation, polymorphism, interfaces, exception handling. Emphasis on weekly OOP assignments and term project which will have to follow Object Oriented Design and Modeling principles.


CSE 515 - Advanced Object Oriented Programming Understanding of Java’s advance rapid application development (RAD) techniques and concepts, Graphical User Interface (GUI) design, advanced network (TCP/IP) and web (JSP) application development, introduction to Tomcat server application development; Java Database Connectivity (JDBC). Mobile environments and technologies (e.g. Android; SIP). The emphasis will be on term project and system development assignments which are all designed and reported in UML format.


CSE 516 - Object Oriented Design Object oriented modeling, concepts, languages, design model implementation, object -oriented (OO) requirements and design principles, techniques and modeling notations, Graphical User Interface (GUI) design, web (JSP) application development, and distributed object-oriented computing. The emphasis is on term projects and system development assignments which are all designed and reported in UML format.


CSE 517 - Design Patterns Review of the software development context in relation to design patterns. Review of object oriented programming. Principles of strong typing and substitution. Introduction to UML. Design techniques for modifiability. Design patterns for object oriented design; the Strategy Pattern, the Observer Pattern, the Decorator Pattern, the Factory and Abstract Factory Patterns, the Singleton Pattern, the Command Pattern, the Adapter and Facade Patterns, the Template Method Pattern, The Iterator Pattern, The State Pattern, The Proxy Pattern and Compound Patterns.


CSE 518 - Software Design for Telecommunication Applications Introduction to socket and networking programming in Java, creating URL connections, implementing clients and servers, HTML communication protocols, introduction to web-based programming, HTML, CSS, PHP, servlets/applets, server-side programming techniques for forefront and legacy systems, Thin and Thick client analogy, introduction to concurrent processing, parallel processing and multithreaded processing, introduction to IP telephony and Session Initiation Protocol (SIP) with Java.


CSE 519 - Computational Geometry Algorithms and data structures for computational problems in discrete geometry, line segment intersection, polygon triangulation, linear programming, orthogonal range searching, point location, Voronoi diagrams, arrangements and duality, Delaunay triangulations, convex hulls, binary space partitions, simplex range searching, non-uniform mesh, quadtrees.


CSE 524 - Performance Evaluation of Computer Systems Quantitative principles of computer design, performance metrics, instruction level parallelism, pipeline performance, memory hierarchy, cache performance, I/O performance, performances of distributed memory, shared memory and distributed shared memory architectures, performance measurement and prediction, benchmarking, language dependence.


CSE 526 - Reconfigurable Computing This course introduces the state-of-the-art in reconfigurable computing both from a hardware and software perspective. Students learn how to architect reconfigurable systems and how to apply them to solve challenging computational problems. The purpose of this course is to prepare students for engaging in research on reconfigurable computing. Specific contemporary reconfigurable computing systems are examined to identify existing system limitations and to highlight opportunities for research in dynamic and partial configuration areas. Assignments will allow students to gain hands on experience in FPGA design cycle and programming paradigms (verilog/hdl).


CSE 531 - Computer Security Study of the principles, mechanisms and algorithms for computer security and data protection, access control models, identification and authentication, number theory basics, cryptographic techniques, design principles, methods of evaluation, network security applications. Emphasis on term project.


CSE 532 - Distributed Operating Systems Design issues in distributed systems, hardware and software issues, interprocess communication, remote procedure calls, remote method invocation, group communication, distributed synchronization, mutual exclusion, physical and logical clocks, processes and processor allocation, scheduling problem, fault tolerance, replication, consistency control algorithms, concurrency control algorithms, distributed atomic transactions, serialization, real time distributed systems.


CSE 533 - Advanced Computer Architectures Performance, energy/power and complexity, instruction set principles, pipelining and pipeline hazards, instruction level parallelism, overcoming pipeline hazards, static and dynamic instruction scheduling mechanisms, speculative and out-of-order execution, superscalar, superpipelined processors, memory-hierarchy design, VLIW, CMP, SMT, dataflow, multicluster architectures.


CSE 534 - Distributed Programming Basic principles, programming techniques, multi-threaded, important applications for and performance issues, quantification of distributed systems, principles of concurrent computing, shared memory programming (processes, synchronization, locks, barriers, semaphores, condition variables), distributed programming, algorithms for process interaction, Grid computing, middlewares for distributed computing.


CSE 535 - Operating Systems Operating system concepts, structures, services, process/thread management, interprocess communication, concurrent processes, synchronization CPU scheduling, memory management: : swapping, paging, segmentation, virtual memory, page replacement, secondary storage management, disk scheduling, file management, disk space management, atomic transactions, security and protection. Emphasis on term project.


CSE 536 - Advanced Topics in Operating Systems Design principles of process management, synchronization, interprocess communication memory management and device management components of single processor and multiprocessor operating systems. The emphasis is given on term project and kernel level programming.


CSE 538 - Real-Time Systems Overview of real-time applications, uniprocessor scheduling independent task models, comparison of hard vs. soft real time, review of the reference model, classic uniprocessor scheduling; dynamic and static scheduling approaches, difficulties in dealing with real time systems, intractability, preemptive and non-preemptive, dynamic and static priority systems, multiprocessor independent task models, priority inheritance and priority ceiling protocols, stack resource protocol, resource sharing, lock-free approach, mixing real-time and non-real-time deferrable and sporadic servers, constant utilization and total bandwidth servers, fairness in scheduling, multiprocessors and distributed systems, basic functions needed for real-time computing, a survey of commercial operating systems.


CSE 542 - Advanced Topics in Information Systems Nature of information and levels of information sophistication, information theory, organization and evaluation of information systems, transient and persistent information storage systems, knowledge representation and modeling, requirements and modeling for human-computer interaction and information systems, local and wide-area networks, hypertext and media, digital libraries, multimedia information systems, web-based information systems, software as a service, social and legal implications of certain information system design issues, intellectual property, privacy and civil rights in information-centric communities, evolution of IS structures and deployment. New technologies such as data mining, web mining, internet crime and security will also be discussed. Term papers will be assigned, presented and defended in class.


CSE 543 - Software Engineering Software development life cycle, review of object-oriented design and development, user-centered design, re-usable software technology, concepts of software quality, interface design, data design, software component design, visual modeling, documentation, testing, maintenance, newer development process technologies, reusability, software quality management. Emphasis on group projects.


CSE 544 - Advanced Topics in Software Engineering Principles and techniques for methodical construction of quality software, software requirements specification, module specification techniques, proof of program correctness, testing, quality assessment, validation procedures, and other selected topics. Emphasis on individual research and application to a term project.


CSE 548 - Database Management Systems Overview of database management system concepts; design algorithms and applications, entity-relationship model, hierarchical, network, relational databases, query languages, relational algebra and calculus, data dependencies, normal forms, object-oriented and distributed databases, concurrency, integrity and security issues, design and implementation of a database system as a term project.


CSE 552 - Language Processors Theory, design and implementation of compilers, interpreters. Code generation and optimization. Software pipelining, loop unrolling, list scheduling, trace scheduling, predicated instructions, register renaming, Java virtual machine.


CSE 553 - Theory of Computation Theoretical analysis of computational process; fundamental concepts such as abstract programs, classes of computational machines and their equivalence, recursive function theory, unsolvable problems, Undecidability, Church’s thesis, Kleene’s theorem, program equivalence and generability, acceptability. Computational complexity and NP-Completeness.


CSE 557 - Quantum Computing Introduction to quantum mechanics, introduction to quantum computing, classical and quantum bits, properties, reversible operations, measurement of qubits, general quantum computational process, simple quantum computational problems: Deutsch Problem, Bernstein-Vazirani Problem, Simon Problem, searching with a quantum computer: Grover iteration, quantum cryptography and other uses of entanglement, breaking of RSA security using quantum computing, quantum error correction.


CSE 562 - Artificial Intelligence Philosophy of AI and mind. Overview of search techniques. Computational learning theory. Supervised and unsupervised classifiers, support vector machines, neural networks and evolutionary algorithms. Introduction to distributed AI and natural language processing, Emphasis on term project.


CSE 564 - Artificial Neural Networks Introduction to theory and applications of neural and evolutionary computation, mathematical and computational models of neural and networks of neurons, neural associative memories, pattern classifiers, function approximators, learning algorithms, stochastic search and genetic algorithms, cognitive and neural modeling, the use of simulation tools. Emphasis on term project.


CSE 568 - Robotics Geometric models, forces, representation of reasoning process, reasoning about objects and space, causation, uncertainity, models of perception, connecting perception to action, real objects, kinematics, control theory, complex dynamics, articulated structure, mobile robots, motion planning, sensors.


CSE 569 - Expert Systems and Fuzzy Logic Basic tools and concepts for building an expert system, CLIPS overview combined with pattern matching, representation and production of knowledge (semantic nets, schemas and frames), fuzzy logic, methods of inference, reasoning under uncertainty and inexact reasoning, design of an expert system, including its stages in the development and error handling completes the topics covered. Emphasis on term project.


CSE 571 - Data Communications and Computer Networks Data transmission basics, multiplexing, analog and digital transmission, transmission media, computer communications architecture, data communications networks, ISO OSI reference model, switching techniques, LAN protocols, data link layer, framing, flow control, error control, sliding window protocols. High speed networking, network layer services and protocols, routing, internetworking, transport services, open systems, TCP/IP protocol suite, presentation and application layers.


CSE 572 - New Generation Networks Internet architecture and protocols, TCP/IP, basic client-server model of interaction, recent developments in the area of computer networks. Besides the theoretical foundations emphasis is given on term project.


CSE 573 - Advanced Topics in Computer Networks Overview of computer networks, transport layer (TCP), network layer (LS ve DV path finding algorithms, RIP,OSFP, BGP), link layer (Ethernet, CSMA/CD, PPP), link visualization (ATM and MPLS, VLAN), multimedia networks (RTSP, RTP, RTCP, SIP, H.323 ve QoS).


CSE 574 - Parallel Processing Overview of parallel architectures, parallel programming models, message-passing model (PVM, MPI), shared-memory model (OpenMP), data-parallel model, parallel algorithms and applications, matrix problems, sort/search algorithms, graph algorithms, performance evaluation of parallel programs.


CSE 575 - Advanced Topics in Internet Technologies Client side programming, server side programming, advanced topics such as search engines, web security and distributed computing.


CSE 576 - Network Modelling and Analysis Communication lines and procedures, modeling and analysis of network systems, topological design, performance analysis of computer networks, queuing theory.


CSE 578 - Wireless Networks and Mobile Systems Wireless and mobile communication overview, wireless environments and LANs, middleware fundamentals, client-server, ad-hoc and peer-to-peer computational model middleware, technologies and protocols for short range wireless communications, Medium access in WLANs, IP routing and MANET routing algorithms, IP addressing and Mobile IP, Nomadic services, security in wireless LANs and networks, Location- and context-aware pervasive computing, satellite networking.


CSE 579 - Embedded Multimedia Systems The Architectural and Topological components of TDM & NGN Networks,System Engineering and OAM Engineering of TDM & NGN Networks,The Infrastructure of Unified Communications Networks and Applications,The Security and QoS Applications of TDM & NGN Networks, Emphasis on practical experience.


CSE 581 - Modelling and Simulation of Computer Systems Operational Analysis, discrete-event vs. process-oriented simulation, discrete model development, random number generation, analysis of simulation results, Markov’s chains, computer system simulation, queuing theory, queuing networks.


CSE 583 - Advanced Computer Graphics Basic concepts of computer graphics, 2-D and 3-D geometry, transformations, representing curves and surfaces, 3-D object representations, spline representations, constructive solid geometry, fractals, visualization, visible surface detection, ray-casting, surface rendering, illumination, polygon rendering, ray tracing, color models, basic concepts of animation, OPENGL graphics library. Emphasis on term project.


CSE 584 - Virtual Reality Overview of virtual reality, terminology, application domains, review of the human perceptual system; visual, auditory, haptic, olfactory perception, perception and virtual environments, hardware tools for virtual environments; hardware and software requirements for integrated virtual reality systems, issues on virtual environment software design; components for creating virtual worlds; objects, behaviors, modeling, user interactions, design issues, immersive levels, performance vs. quality, interaction techniques.


CSE 585 - Machine Learning Computational learning theory. Concept learning and learning by decision trees Evolutionary and artificial neural networks. Bayesian and inductive learning, learning by supervision and nonsupervision, classifiers, reinforcement learning. Application areas of machine learning techniques.


CSE 586 - Algorithms and Operations Research Fundamental techniques and algorithms for tackling optimization and scheduling problems from a range of commercial and service sectors, the latest approaches and algorithms from Operational Research and Artificial Intelligence.


CSE 587 - Image Processing Forms of pictorial data, pictorial input, display devices, digitization and processing gray scale images, graphics, segmentation, projection, bi-level pictures, data structures, contour filling, thinning algorithms, curve fitting, surface fitting, polygon clipping and displaying, three dimensional graphics.


CSE 588 - Computer Vision Data structures and representations for high level vision, object representation and extraction, field data analysis, motion for identification and interpretation, mapping and recognition, languages and architectures for image processing, epipolar geometry, projective geometry, homography.


CSE 589 - Pattern Recognition Probability distributions, linear models for regression, linear models for classification, neural networks, kernel methods, sparse kernel machines, graphical models, mixture models, approximate inference, sampling methods, continuous latent variables, sequential data, combining methods.


CSE 590 - Research Seminar Preliminary research, literature survey and reading seminar on M.Sc. subject.


CSE 600 - M.Sc. Thesis Master of Science Thesis

Permanent link to this article: