Computer Science
CS 5302 Topics in Computer Science (3 semester credit hours) May be repeated for credit as topics vary (6 semester credit hours maximum). Prerequisite: CS 5343. (3-0) Y
CS 5303 Computer Science I (3 semester credit hours) Computer science problem solving. The structure and nature of algorithms and their corresponding computer program implementation. Programming in a high level block-structured language (e.g., PASCAL, Ada, C++, or JAVA). Elementary data structures: arrays, records, linked lists, trees, stacks and queues. Prerequisite: ENCS majors only. (3-0) R
CS 5330 Computer Science II (3 semester credit hours) Basic concepts of computer organization: Numbering systems, two's complement notation, multi-level machine concepts, machine language, assembly programming and optimization, subroutine calls, addressing modes, code generation process, CPU datapath, pipelining, RISC, CISC, and performance calculation. Prerequisite or Corequisite: CS 5303. (3-0) R
CS 5333 Discrete Structures (3 semester credit hours) Mathematical foundations of computer science. Logic, sets, relations, graphs and algebraic structures. Combinatorics and metrics for performance evaluation of algorithms. Prerequisite: ENCS majors only. (3-0) S
CS 5343 Algorithm Analysis and Data Structures (3 semester credit hours) Formal specifications and representation of lists, arrays, trees, graphs, multilinked structures, strings, and recursive pattern structures. Analysis of associated algorithms. Sorting and searching, file structures. Relational data models. Prerequisite: CS 5303. Prerequisite or Corequisite: CS 5333. (3-0) S
CS 5348 Operating Systems Concepts (3 semester credit hours) Processes and threads. Concurrency issues including semaphores, monitors and deadlocks. Simple memory management. Virtual memory management. CPU scheduling algorithms. I/O management. File management. Introduction to distributed systems. Must have a working knowledge of C and Unix. Prerequisite: CS 5330. Prerequisite or Corequisite: CS 5343. (3-0) S
CS 5349 Automata Theory (3 semester credit hours) Deterministic and nondeterministic finite automata; regular expressions, regular sets, context-free grammars, pushdown automata, context free languages. Selected topics from Turing Machines and undecidability. Prerequisite: CS 5333. (3-0) S
CS 5375 Principles of UNIX (3 semester credit hours) Design and history of the UNIX operating system. Detailed study of process and file system data structures. Shell programming in UNIX. Use of process-forking functionality of UNIX to simplify complex problems. Interprocess communication and coordination. Device drivers and streams as interfaces to hardware features. TCP/IP and other UNIX inter-machine communication facilities. Recommended prerequisite: CS 3335. Prerequisite: CS 5343. (3-0) S
CS 5390 Computer Networks (3 semester credit hours) The design and analysis of protocols for computer networking. Topics include: network protocol design and composition via layering, contention resolution in multi-access networks, routing metrics and optimal path searching, traffic management, global network protocols; dealing with heterogeneity and scalability. Prerequisite: CS 5343. (3-0) S
CS 5V81 Special Topics in Computer Science (1-9 semester credit hours) May be repeated as topics vary (9 semester credit hours maximum). Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S
CS 6301 Special Topics in Computer Science (3 semester credit hours) May be repeated for credit as topics vary. Prerequisite: CS 5343. (3-0) S
CS 6302 Special Topics in Computer Science (3 semester credit hours) Special Topics in Computer Science for Non-CS/SE Majors. Prerequisite: CS 5303. (3-0) Y
CS 6303 Cyber Security Essentials for Practitioners (3 semester credit hours) The Cybersecurity Essentials course develops a foundational understanding of cybersecurity as a business risk. This class will help identify threats to an organization and how they relate to cyber security. An in-depth understanding of the different types of cyberattacks, the business systems that are most at risk, and the importance of an organization-wide approach to cybersecurity. This course will also cover the crucial role of leadership in managing cyber risk throughout the entire organization. May not be used to satisfy the degree requirements of the MS CS or the MS SE degree plans. (3-0) Y
CS 6304 (CE 6304 and EEDG 6304) Computer Architecture (3 semester credit hours) Trends in processor, memory, I/O and system design. Techniques for quantitative analysis and evaluation of computer systems to understand and compare alternative design choices in system design. Components in high performance processors and computers: pipelining, instruction level parallelism, memory hierarchies, and input/output. Students will undertake a major computing system analysis and design project. Must have an understanding of C/C++. Prerequisite: CS 2340 or EE 4304. (3-0) Y
CS 6305 Data Security and Privacy for Practitioners (3 semester credit hours) The course will teach principles, tools, and trends for data and application security and privacy. Topics to be covered include: confidentiality, privacy and trust management. Additionally, best practices and policies to promote secure databases, distributed systems, and applications such as social media systems, the cloud, and IoT systems will be covered. In addition, the privacy implications of data analytics and potential solutions will be discussed. Students will assess one system or application to identify potential vulnerabilities and identify possible remediations. The topics include an overview of common and emerging vectors of attack and the best practices for deterring them. May not be used to satisfy degree requirements for the MS CS or the MS SE degree plans. (3-0) Y
CS 6306 Cyber Security Analytics & Malware Analysis for Practitioners (3 semester credit hours) A supervisory view of security vulnerabilities in information systems, applications and safe computing. Additionally, best practices to promote security standards and applications, management and analysis of security. Applications of data science techniques, preparation for adversarial attacks. May not be used to satisfy degree requirements for the MS CS or the MS SE degree plans. (3-0) Y
CS 6307 Introduction to Big Data Management and Analytics for non CS-Majors (3 semester credit hours) Database fundamentals including Query Processing, Parallel/Distributed Data Processing, NoSQL systems (e.g., Key-value stores, Column-oriented data stores, MapReduce), Graph Processing, and Recommendation Systems using Big Data technologies. May not be used to satisfy degree requirements for the MS CS or the MS SE degree plans. Prerequisites: (CS 5303 or equivalent) and (CS 5343 or equivalent). (3-0) Y
CS 6308 Cyber Physical Systems and Critical Infrastructure Security for Practitioners (3 semester credit hours) The Stuxnet attack was a wake-up call to improve the security of our critical infrastructures, which include transportation networks, the power grid, and other cyber-physical systems, where computation, communications, and control are tightly integrated. This class covers the security of cyber-physical systems from a multi-disciplinary point of view, from computer science security research (network security and software security), to public policy (e.g., the Executive Order 13636), risk-assessment, business drivers, and control-theoretic methods to reduce the cyber-risk to cyber-physical critical infrastructures. Students are required to participate in several cyber war games. May not be used to satisfy degree requirements for the MS CS or the MS SE degree plans. (3-0) Y
CS 6312 Scalable Implementation of Data Structures and Algorithms (3 semester credit hours) This course focuses on scalable implementation of various data structures and algorithms. Design and implement data structures for a given situation. Evaluate the performance of various data structures and algorithms for inputs of very large sizes. Through experimental studies of several algorithms, understand that constants in asymptotic bounds have significant performance impact. Implement short projects every week and several long projects. Prerequisite: CS 5343. Corequisite: CS 6363. (3-0) Y
CS 6313 (STAT 6313) Statistical Methods for Data Science (3 semester credit hours) Statistical methods for data science. Statistical Methods are developed at an intermediate level. Sampling distributions. Point and interval estimation. Parametric and nonparametric hypothesis testing. Analysis of variance. Regression, model building and model diagnostics. Monte Carlo simulation and bootstrap. Introduction to a statistical software package. Prerequisite: CS 3341 or SE 3341 or STAT 3341 or equivalent. (3-0) S
CS 6314 Web Programming Languages (3 semester credit hours) Advanced understanding of web architecture, standards, protocols, tools, and technologies. Tools required for web programming including HTML, CSS, and JavaScript; XML and database technologies; server-side programming using PHP; Web security protocols and standards; techniques and algorithms related to web services, cloud computing, and semantic web. Prerequisite: CS 5343. (3-0) S
CS 6315 Semantic Web (3 semester credit hours) History and foundations of semantic web. URIs and namespaces; XML and XMLS Datatypes, RDF and RDF/XML, RDFS, and OWL (Lite, DL and Full); applications of semantic web; introduction to OWL 2 features and profiles; design patterns used in the creation of semantic web solutions. Prerequisite: CS 5343. (3-0) S
CS 6319 Computational Geometry (3 semester credit hours) This course will cover basic computational geometry topics, such as computing convex hulls, computing Voronoi diagrams and Delaunay triangulations, motion planning, and the main methods for developing geometric algorithms. We will also discuss various geometric data structures for point location and range searching and additional topics at the discretion of the instructor, such as geometric approximation and high dimensional data analysis. Prerequisite: CS 5343. (3-0) R
CS 6320 Natural Language Processing (3 semester credit hours) This course covers state-of-the-art methods for natural language processing. After an introduction to the basics of syntax, semantic, and discourse analysis, the focus shifts to the integration of these modules into natural-language processing systems. In addition to natural language understanding, the course presents advanced material on lexical knowledge acquisition, natural language generation, machine translation, and parallel processing of natural language. Prerequisite: CS 5343. (3-0) Y
CS 6321 Discourse Processing (3 semester credit hours) Introduction to discourse processing from natural language texts. Automatic clustering of utterances into coherent units (segments) with hierarchical structures. State-of-the-art research in textual cohesion, coherence, and discourse understanding. Included topics are anaphoric reference and ellipsis, notion of textual context, and relationship between tense, aspect, and discourse states. Prerequisite: CS 6320. (3-0) T
CS 6322 Information Retrieval (3 semester credit hours) This course covers modern techniques for storing and retrieving unformatted textual data and providing answers to natural language queries. Current research topics and applications of information retrieval in data mining, data warehousing, text mining, digital libraries, hypertext, multimedia data, and query processing are also presented. Prerequisite: CS 5343. (3-0) Y
CS 6323 Computer Animation and Gaming (3 semester credit hours) Theoretical foundations and programming techniques involved in computer animation and game engines. Specific topics include 2D and 3D transformations, skeletons, forward and inverse kinematics, skinning, keyframing, particle systems, rigid bodies, cloth animation, collision detection, and animation for video games. Prerequisites: CS 5343 and a good working knowledge of C++ and graphical programming (either OpenGL, DirectX, or Java3D). (3-0) Y
CS 6324 Information Security (3 semester credit hours) A comprehensive study of security vulnerabilities in information systems and the basic techniques for developing secure applications and practicing safe computing. Topics include common attacking techniques such as buffer overflow, Trojan, virus, etc. UNIX, Windows and Java security. Conventional encryption. Hashing functions and data integrity. Public-key encryption (RSA, Elliptic-Curve). Digital signature. Watermarking for multimedia. Security standards and applications. Building secure software and systems. Management and analysis of security. Legal and ethical issues in computer security. Prerequisites: CS 5343 and CS 5348. (3-0) Y
CS 6326 Human Computer Interactions (3 semester credit hours) In-depth exploration of human-computer interactions (HCI). Models and principles of HCI. The user experience (UX) lifecycle and design guidelines for a wide variety of advanced interfaces, such as mobile devices and 3D sensors. UX evaluation of interface designs. Prerequisite: CS 5343. (3-0) Y
CS 6327 Video Analytics (3 semester credit hours) In-depth analysis of topics such as: video features for (human) activity and event detection; large-scale video event classification algorithms; objects-in-video counting approaches; multi-camera video handling; compressed video event detection and analyzing video in large-scale human traffic areas (such as shopping malls, airports, train-stations, etc.). Prerequisite: CS 5343. (3-0) Y
CS 6328 Modeling and Simulation (3 semester credit hours) Theory and practice of modeling, including models for concepts, knowledge, geometry, and dynamics. A variety of model types are covered along with their algebraic and diagrammatic representations. Creative media design and representation of models is stressed. Prerequisite: CS 5343 or instructor consent required. (3-0) R
CS 6331 Multimedia Systems (3 semester credit hours) Analyzing and understanding how different media data (such as text, audio, images, video, and 3D graphics) can be stored, queried, delivered, and consumed. These aspects will be discussed from the point of view of the operating system, databases, and networking. Prerequisite: CS 5343. (3-0) Y
CS 6332 Systems Security and Binary Code Analysis (3 semester credit hours) Concepts, techniques, and tools to capture the structure, format, and representation of binary code, and transform them for higher level analysis. Use of static analysis including data-flow analysis, point-to analysis, and shape analysis to reason about the abstractions inside binary code. Use of dynamic binary instrumentation to trace the instruction level behavior of both benign and malicious programs. Use of virtual machines to observe the whole system level behavior including OS kernels. Prerequisites: CS 5343 and CS 5348 and knowledge of Assembly Code. (3-0) Y
CS 6334 Virtual Reality (3 semester credit hours) Theory and practice of virtual reality (VR). Provides in-depth overview of VR, including input devices, output devices, 3D navigation techniques, 3D selection and manipulation techniques, system control techniques, interaction fidelity, scenario fidelity, display fidelity, design guidelines, and evaluation methods. Prerequisite: CS 5343. (3-0) Y
CS 6335 Language-based Security (3 semester credit hours) Development and formal verification of mission-critical software. Machine-checkable proofs of software properties. Automated theorem proving. Certifying compilation. Software model-checking. Binary software security hardening. Software hijacking and information flow attacks and defenses. Prerequisites: CS 5330 and CS 5343. (3-0) Y
CS 6340 Wireless Networks (3 semester credit hours) Fundamental techniques in design and operation of the 2G-5G wireless cellular networks and wireless LANs, including the control and the data planes. Introduction to future technologies, such as 6G and IoT. The course is a mix of qualitative and quantitative presentation. Prerequisites: CS 5390 and (CS 3341 or SE 3341 or STAT 3341) or equivalent. (3-0) Y
CS 6341 Robotics (3 semester credit hours) Theory and practice of robotics. Provides an in-depth overview of robot manipulation and navigation, including kinematics, statics, and dynamics of robot manipulators, motion planning, state estimation, environment mapping, and robot control. Prerequisite: CS 5343. (3-0) R
CS 6343 Cloud Computing (3 semester credit hours) Different layers of cloud computing, infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS). Data centers. Resource management, power management, and health monitoring in IaaS cloud. Hadoop MapReduce for big data computing. PaaS examples such as GAE, Force.com. SaaS concepts and enabling technologies. Cloud storage theory and practical solutions such as GFS, Big Table, HDFS, HBase, Dynamo, Pnuts. Erasure coding and secret sharing based cloud storage. Virtualization and emulation. Server virtualization, storage virtualization, and network virtualization. Cloud security. Prerequisites: CS 5343 and CS 5348. (3-0) S
CS 6344 Data Representations (3 semester credit hours) Useful representations of data for efficient manipulation and visualization. These include, among others Dimensionality Reduction, Clustering, Euclidean Embedding, Graph Embedding, and Discriminant Functions. Techniques covered include principal component analysis (PCA), singular value decomposition (SVD), clustering, and various randomized techniques. Special emphasis is given to the performance of these techniques on big data. Prerequisite: CS 5343. (3-0) Y
CS 6346 Introduction to Multicore Programming (3 semester credit hours) Introduction to multi-core and GPU architecture concepts. Classic and modern algorithms for coordination and synchronization. Blocking and non-blocking synchronization. Correctness conditions and reasoning about concurrent algorithms. Data structures that exploit and extract performance from multiple cores. Concurrent memory reclamation techniques. GPU programming with CUDA. Prerequisites: CS 5343 and CS 5348. (3-0) Y
CS 6347 Statistical Methods in AI and Machine Learning (3 semester credit hours) Introduction to the probabilistic and statistical techniques used in modern computer systems. Probabilistic graphical models such as Bayesian and Markov networks. Probabilistic inference techniques including variable elimination, belief propagation and its generalizations, and sampling-based algorithms such as importance sampling and Markov Chain Monte Carlo sampling. Statistical learning techniques for learning the structure and parameters of graphical models. Sequential models such as Hidden Markov models and Dynamic Bayesian networks. Prerequisites: (CS 3341 or equivalent) and (CS 5343 or equivalent). (3-0) Y
CS 6348 Data and Applications Security (3 semester credit hours) The course will teach principles, technologies, tools and trends for data, and applications security and privacy. Topics to be covered include: confidentiality, privacy and trust management; advanced access control policy management; secure databases; secure distributed systems; encryption techniques for database security; blockchain based techniques for ensuring data integrity; data privacy; privacy-preserving data mining. Students will take one system or application and develop a secure version of that system or application for the programming project. Prerequisite: CS 5343. (3-0) Y
CS 6349 Network Security (3 semester credit hours) This course covers theoretical and practical aspects of network security. The topics include use of cryptography for building secure communication protocols and authentication systems; security handshake pitfalls, Kerberos and PKI, security of TCP/IP protocols including IPsec, BGP security, VPNs, IDSes, firewalls, and anonymous routing; security of TCP/IP applications; wireless LAN security; denial-of-service defense. Students are required to do a programming project building a distributed application with certain secure communication features and required to participate in several network security lab exercises and cyber war games. Prerequisites: CS 5390. (3-0) Y
CS 6350 Big Data Management and Analytics (3 semester credit hours) This course focuses on scalable data management and mining algorithms for analyzing very large amounts of data (i.e., Big Data). Included topics are: Mapreduce, NoSQL systems (e.g., key-value stores, column-oriented data stores, stream processing systems), association rule mining, large scale supervised and unsupervised learning, state of the art research in data streams, and applications including recommendation systems, web and big data security. Prerequisites: CS 6360 and Java programming. (3-0) S
CS 6352 Performance of Computer Systems and Networks (3 semester credit hours) Overview of case studies. Quick review of principles of probability theory. Queuing models and physical origin of random variables used in queuing models. Various important cases of the M/M/m/N queuing system. Little's law. The M/G/1 queuing system. Simulation of queuing systems. Product form solutions of open and closed queuing networks. Convolution algorithms and Mean Value Analysis for closed queuing networks. Discrete time queuing systems. Prerequisites: ENCS majors only and a first course on probability theory. (3-0) S
CS 6353 Compiler Construction (3 semester credit hours) Lexical analyzers, context-free grammars. Top-down and bottom-up parsing; shift reduce and LR parsing. Operator-precedence, recursive-descent, predictive, and LL parsing. LR(k), LL(k) and precedence grammars will be covered. Prerequisites: CS 5343 and CS 5349. (3-0) Y
CS 6356 (SE 6356 and SYSM 6308) Software Maintenance, Evolution, and Re-Engineering (3 semester credit hours) Principles and techniques of software maintenance. Impact of software development process on software justifiability, maintainability, evolvability, and planning of release cycles. Use of very high-level languages and dependencies for forward engineering and reverse engineering. Achievements, pitfalls, and trends in software reuse, reverse engineering, and re-engineering. Prerequisite: SE 5354. (3-0) Y
CS 6359 Object-Oriented Analysis and Design (3 semester credit hours) Analysis and practice of modern tools and concepts that can help produce software that is tolerant of change. Consideration of the primary tools of encapsulation and inheritance. Construction of software-ICs which show the parallel with hardware construction. Prerequisite: CS 5343. (3-0) S
CS 6360 Database Design (3 semester credit hours) Methods, principles, and concepts that are relevant to the practice of database software design. Database system architecture; conceptual database models; relational and object-oriented databases; database system implementation; query processing and optimization; transaction processing concepts, concurrency, and recovery; security. Prerequisite: CS 5343. (3-0) S
CS 6361 (SE 6361) Advanced Requirements Engineering (3 semester credit hours) System and software requirements engineering. Identification, elicitation, modeling, analysis, specification, management, and evolution of functional and non-functional requirements. Strengths and weaknesses of different techniques, tools, and object-oriented methodologies. Interactions and trade-offs among hardware, software, and organization. System and sub-system integration with software and organization as components of complex, composite systems. Transition from requirements to design. Critical issues in requirements engineering. Prerequisite: SE 5354. (3-0) S
CS 6363 Design and Analysis of Computer Algorithms (3 semester credit hours) The study of efficient algorithms for various computational problems. Algorithm design techniques. Sorting, manipulation of data structures, graphs, matrix multiplication, and pattern matching. Complexity of algorithms, lower bounds, NP completeness. Prerequisites: CS 5333 and CS 5343. (3-0) S
CS 6364 Artificial Intelligence (3 semester credit hours) Design of machines that exhibit intelligence. Particular topics include: representation of knowledge, vision, natural language processing, search, logic and deduction, expert systems, planning, language comprehension, and machine learning. Prerequisite: CS 5343. (3-0) Y
CS 6366 Computer Graphics (3 semester credit hours) Device and logical coordinate systems. Geometric transformations in two and three dimensions. Algorithms for basic 2-D drawing primitives, such as Brensenham's algorithm for lines and circles, Bezier and B-Spline functions for curves, and line and polygon clipping algorithms. Perspectives in 3-D, and hidden-line and hidden-face elimination, such as Painter's and Z-Buffer algorithms. Fractals and the Mandelbrot set. Prerequisites: CS 5330 and CS 5343 and MATH 2418. (3-0) Y
CS 6367 (SE 6367 and SYSM 6310) Software Testing, Validation and Verification (3 semester credit hours) Fundamental concepts of software testing. Functional testing. GUI based testing tools. Control flow based test adequacy criteria. Data flow based test adequacy criteria. White box based testing tools. Mutation testing and testing tools. Relationship between test adequacy criteria. Finite state machine based testing. Static and dynamic program slicing for testing and debugging. Software reliability. Formal verification of program correctness. Prerequisite: SE 5354. (3-0) Y
CS 6368 Telecommunication Network Management (3 semester credit hours) In-depth study of network management issues and standards in telecommunication networks. OSI management protocols including CMIP, CMISE, SNMP, and MIB. ITU's TMN (Telecommunication Management Network) standards, TMN functional architecture and information architecture. NMF (Network Management Forum) and service management, service modeling and network management API. Issues of telecommunication network management in distributed processing environment. Prerequisite: CS 5390. (3-0) Y
CS 6371 Advanced Programming Languages (3 semester credit hours) Functional programming, Lambda calculus, logic programming, abstract syntax, denotational semantics of imperative languages, fixpoints semantics, verification of programs, partial evaluation, interpretation and automatic compilation, axiomatic semantics, applications of semantics to software engineering. Prerequisites: CS 5343 and CS 5349. (3-0) S
CS 6373 Intelligent Systems (3 semester credit hours) Logical formalizations of knowledge for the purpose of implementing intelligent systems that can reason in a way that mimics human reasoning. Topics include: syntax and semantics of common logic, description logic, modal epistemic logic; reasoning about uncertainties, beliefs, defaults and counterfactuals; reasoning within contexts; implementations of knowledge base and textual inference reasoning systems; and applications. Prerequisite: CS 5343. (3-0) Y
CS 6374 Computational Logic (3 semester credit hours) Deductive, inductive and abductive reasoning, logic-based knowledge representation and reasoning. Logic programming, constraint programming, and the Prolog language. Non-monotonic reasoning, answer set programming, and automating common sense reasoning. Applications of the above. Prerequisites: CS 5343. (3-0) Y
CS 6375 Machine Learning (3 semester credit hours) Algorithms for training perceptions and multi-layer neural nets: back propagation, Boltzmann machines, and self-organizing nets. The ID3 and the Nearest Neighbor algorithms. Formal models for analyzing learnability: exact identification in the limit and probably approximately correct (PAC) identification. Computational limitations of learning machines. Prerequisite: CS 5343. (3-0) Y
CS 6376 Parallel Processing (3 semester credit hours) Topics include parallel processing, parallel machine models, parallel algorithms for sorting, searching and matrix operations. Parallel graph algorithms. Prerequisite: CS 5343. (3-0) T
CS 6377 Introduction to Cryptography (3 semester credit hours) This course covers the basic aspects of modern cryptography, including block ciphers, pseudorandom functions, symmetric encryption, Hash functions, message authentication, number-theoretic primitives, public-key encryption, digital signatures and zero knowledge proofs. Prerequisites: CS 5333 and CS 5343 and ENCS majors only. (3-0) T
CS 6378 Advanced Operating Systems (3 semester credit hours) Concurrent processing, inter-process communication, process synchronization, deadlocks, introduction to queuing theory and operational analysis, topics in distributed systems and algorithms, checkpointing, recovery, multiprocessor operating systems. Must have knowledge of C, UNIX, and Socket Programming. Prerequisites: CS 5343 and CS 5348 or equivalent. (3-0) S
CS 6380 Distributed Computing (3 semester credit hours) Topics include distributed algorithms, election algorithms, synchronizers, mutual exclusion, resource allocation, deadlocks, Byzantine agreement and clock synchronization, knowledge and common knowledge, reliability in distributed networks, and proving distributed programs correct. Prerequisite: CS 5348. (3-0) S
CS 6381 Combinatorics and Graph Algorithms (3 semester credit hours) Fundamentals of combinatorics and graph theory. Combinatorial optimization, optimization algorithms for graphs (max flow, shortest routes, Euler tour, Hamiltonian tour). Prerequisites: CS 5343 and CS 6363. (3-0) T
CS 6382 Theory of Computation (3 semester credit hours) Formal models of computation. Recursive function theory. Undecidability and incompleteness. Selected topics in theory of computation. Department consent required. (3-0) Y
CS 6384 Computer Vision (3 semester credit hours) Algorithms for extracting information from digital pictures. Particular topics include: analysis of motion in time varying image sequences, recovering depth from a pair of stereo images, image separation, recovering shape from textured images and shadows, object matching techniques, model based recognition, and the Hough transform. Prerequisite: CS 5343. (3-0) Y
CS 6385 (TE 6385) Algorithmic Aspects of Telecommunication Networks (3 semester credit hours) This is an advanced course on topics related to the design, analysis, and development of telecommunications systems and networks. The focus is on the efficient algorithmic solutions for key problems in modern telecommunications networks, in centralized and distributed models. Topics include: main concepts in the design of distributed algorithms in synchronous and asynchronous models, analysis techniques for distributed algorithms, centralized and distributed solutions for handling design and optimization problems concerning network topology, architecture, routing, survivability, reliability, congestion, dimensioning and traffic management in modern telecommunication networks. Prerequisites: CS 5343 and CS 5348 and (CS 3341 or ENGR 3341 or equivalent). (3-0) Y
CS 6386 Telecommunication Software Design (3 semester credit hours) Programming with sockets and remote procedure calls, real time programming concepts and strategies. Operating system design for real time systems. Encryption, file compression, and implementation of fire walls. An in-depth study of TCP/IP implementation. Introduction to discrete event simulation of networks. Prerequisite: CS 5390. (3-0) Y
CS 6390 Advanced Computer Networks (3 semester credit hours) Survey of recent advancements in high-speed network technologies. Application of quantitative approach to the study of broadband integrated networks including admission control, access control, and quality of service guarantee. Prerequisite: CS 5390. (3-0) Y
CS 6391 Optical Networks (3 semester credit hours) Enabling technologies for optical networks. Wavelength-division multiplexing. Broadcast-and-select optical networks. Wavelength-routed optical networks. Virtual topology design. Routing and wavelength assignment. Network control and management. Protection and restoration. Wavelength conversion. Traffic grooming. Photonic packet switching. Optical burst switching. Survey of recent advances in optical networking. Prerequisites: CS 5390 and (CS 6352 or CS 6385 or CS 6390). (3-0) Y
CS 6392 Mobile Computing Systems (3 semester credit hours) Topics include coping with mobility of computing systems, data management, reliability issues, packet transmission, mobile IP, end-to-end reliable communication, channel and other resource allocation, slot assignment, routing protocols, and issues in mobile wireless networks (without base stations). Prerequisite: CS 6378 or CS 6390. (3-0) Y
CS 6396 (CE 6308 and EEDG 6308) Real-Time Systems (3 semester credit hours) Introduction to real-time applications and concepts. Real-time operating systems and resource management. Specification and design methods for real-time systems. System performance analysis and optimization techniques. Project to specify, analyze, design, implement and test small real-time system. Prerequisite: CS 5348. (3-0) R
CS 6397 Synthesis and Optimization of High-Performance Systems (3 semester credit hours) A comprehensive study of high-level synthesis and optimization algorithms for designing high performance systems with multiple CPUs or functional units for critical applications such as Multimedia, Signal processing, Telecommunications, Networks, and Graphics applications, etc. Topics including algorithms for architecture-level synthesis, scheduling, resource binding, real-time systems, parallel processor array design and mapping, code generations for DSP processors, embedded systems and hardware/software codesigns. Prerequisite: CS 5343. (3-0) T
CS 6V81 Independent Study in Computer Science (1-9 semester credit hours) May be repeated for credit. Prerequisite: ENCS majors only and instructor consent required. ([1-9]-0) S
CS 6V98 Thesis (3-9 semester credit hours) Pass/Fail only. May be repeated for credit. Instructor consent required. Prerequisite: ENCS majors only. ([3-9]-0) S
CS 7301 (SE 7301) Recent Advances in Computing (3 semester credit hours) Advanced topics and publications will be selected from the theory, design, and implementation issues in computing. May be repeated for credit as topics vary. Prerequisites: ENCS majors only and instructor consent required. (3-0) Y
CS 8V02 Topics in Computer Science (1-6 semester credit hours) Pass/Fail only. May be repeated for credit (9 semester credit hours maximum). Instructor consent required. Prerequisite: ENCS majors only. ([1-6]-0) S
CS 8V07 Research (1-9 semester credit hours) Open to students with advanced standing subject to approval of the graduate advisor. Pass/Fail only. May be repeated for credit. Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S
CS 8V99 Dissertation (1-9 semester credit hours) Pass/Fail only. May be repeated for credit. Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S