UT Dallas 2014 Undergraduate Catalog

Computer Science

CS 1134 Computer Science Laboratory (1 semester credit hour) Laboratory course to accompany CS 1334. This course assists students in experiencing elementary programming in a high-level language. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Credit cannot be received for both courses, CS 1134 and CS 1136. Corequisite: CS 1334. (0-2) S (2015-04-20 23:59:46)

CS 1136 (COSC 1136) Computer Science Laboratory (1 semester credit hour) Laboratory course to accompany CS 1336. This course assists students in experiencing elementary programming in a high-level language. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Corequisite: CS 1336. (0-2) S (2015-04-20 23:59:46)

CS 1324 Introduction to Programming for Biomedical Engineers (3 semester credit hours) Computer programming in a high-level, block structured language with a focus on engineering applications in medicine. Basic data types and variables, memory usage, control structures, functions/procedures and parameter passing, recursion, input/output. Programming projects related to biomedical engineering applications. May not be used to satisfy degree requirements for majors in Computer Engineering, Computer Science, Software Engineering, and Telecommunications Engineering. Prerequisite: CS 1336 or equivalent. (3-0) S (2015-04-20 23:59:46)

CS 1325 Introduction to Programming (3 semester credit hours) Computer programming in a high-level, block structured language. Basic data types and variables, memory usage, control structures, functions/procedures and parameter passing, recursion, input/output. Programming projects related to engineering applications, numerical methods. May not be used to satisfy degree requirements for majors in Computer Engineering, Computer Science, Software Engineering, and Telecommunications Engineering. Prerequisite: CS 1336 or equivalent. (3-0) S (2015-04-20 23:59:46)

CS 1334 Programming Fundamentals for Non-Majors (3 semester credit hours) Introduction to computers. Primitive data types, variable declarations, variable scope, and primitive operations. Control statements. Methods/functions. Arrays and strings using primitive data arrays. Output formatting. Debugging techniques. Designed for students with no prior computer programming experience. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Credit cannot be received for both courses, CS 1334 and CS 1336. Note that a grade of C or better is required in order to register for CS 1335. Corequisite: CS 1134. (3-0) S (2015-04-20 23:59:46)

CS 1335 Computer Science I for Non-majors (3 semester credit hours) Introduction to object-oriented software analysis, design, and development. Classes and objects. Object composition and polymorphism. Sorting and searching. Strings using core classes. Inheritance and interfaces. Graphical User Interfaces. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science, especially majors in Computer Science and Engineering. Credit cannot be received for both courses, CS 1335 and (CE 1337 or CS 1337 or TE 1337). Prerequisite: CS 1334 with a grade of C or better or equivalent. (3-0) S (2015-04-20 23:59:46)

CS 1336 (COSC 1336) Programming Fundamentals (3 semester credit hours) Introduces the fundamental concepts of structured programming. Topics include software development methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging. Programming language of choice is C. The class is open to students in the School of Engineering and Computer Science only. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Note that a grade of C- or better in this class is required in order to register for (CS 1324 or CS 1325); a grade of C or better in this class is required to register for (CE 1337 or CS 1337 or TE 1337). Corequisite: CS 1136. (3-0) S (2015-04-20 23:59:46)

CS 1337 (COSC 1337) Computer Science I (3 semester credit hours) Review of control structures and data types with emphasis on structured data types. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering. Programming language of choice is C/C++. Prerequisite: CS 1336 with a grade of C or better or equivalent. (Same as CE 1337 and TE 1337) (3-0) S (2015-04-20 23:59:46)

CS 2305 (MATH 2305) Discrete Mathematics for Computing I (3 semester credit hours) Principles of counting. Boolean operations. Logic and proof methods. Recurrence relations. Sets, relations, functions. Elementary graph theory. Elementary number theory. Prerequisite: Score of at least 75% in ALEKS or MATH 2312 with a grade of C or better. (Same as CE 2305 and TE 2305) (3-0) S (2015-04-20 23:59:46)

CS 2335 Computer Science II for Non-majors (3 semester credit hours) Exceptions and number formatting. File input/output using Stream classes. Implementation of primitive data structures, including linked lists, stacks, queues, and binary trees. Advanced data manipulation using core classes. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Credit cannot be received for both courses, CS 2335 and (CE 2336 or CS 2336 or TE 2336). Prerequisite: CS 1335 or CE 1337 or CS 1337 or TE 1337. (3-0) S (2015-04-20 23:59:46)

CS 2336 (COSC 2336) Computer Science II (3 semester credit hours) Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Includes comprehensive programming projects. Programming language of choice is Java. Prerequisite: CE 1337 or CS 1337 or TE 1337 with a grade of C or better. Prerequisite or Corequisite: CE 2305 or CS 2305 or TE 2305 with a grade of C or better. (Same as CE 2336 and TE 2336) (3-0) S (2015-04-20 23:59:46)

CS 2V95 Individual Instruction in Computer Science (1-6 semester credit hours) Individual study under a faculty member's direction. May be repeated for credit as topics vary (6 semester credit hours maximum). Instructor consent required. ([1-6]-0) R (2015-04-20 23:59:46)

CS 3149 Competitive Learning in Computer Science (1 semester credit hour) In this course, students will work together in small teams to solve graduated problems, similar to those used in programming contests around the world. Approaches to categorizing problems and selecting appropriate data structures and algorithms will be covered, along with types of algorithms for solving problems (brute force, greedy, divide and conquer, dynamic programming). Students will do problem solving in a competitive environment against the clock. May be repeated for credit (3 semester credit hours maximum). Prerequisites: (CE 2336 or CS 2336 or TE 2336) with a grade of C or better and CS 3305 with a grade of C or better. (1-0) Y (2015-04-20 23:59:46)

CS 3162 Professional Responsibility in Computer Science and Software Engineering (1 semester credit hour) Professional and ethical responsibilities of computer scientists and software engineers as influenced by growth in computer use and networks. Costs and benefits of computer technology. Risks and liabilities of safety-critical systems. Social implications of the Internet. Interaction between human values and technical decisions involving computing. Intellectual Property. Global impact of computing. Prerequisites or Corequisites: CS 3345 and CS 3354 and ECS 3361. (Same as SE 3162) (1-0) S (2015-04-20 23:59:46)

CS 3305 Discrete Mathematics for Computing II (3 semester credit hours) Advanced counting methods; recurrence relations, divide and conquer algorithms, principle of inclusion and exclusion. Partial orders and lattices, Algorithmic complexity. Graph theory. Strings and languages. Number theory. Elements of modern algebra. Prerequisites: (CE 2305 or CS 2305 or TE 2305) with a grade of C or better, and (MATH 2414 or MATH 2419). (3-0) S (2015-04-20 23:59:46)

CS 3333 Data Structures (3 semester credit hours) Programming with basic data structures (arrays, stacks, queues, lists, and trees) and their associated algorithms. Various sorting and searching techniques. Fundamental graph algorithms. This course covers much of the same material as CS 3345 without requiring the analysis of algorithms. May not be used to satisfy degree requirements for majors in Computer Science. Credit cannot be received for both courses, (CE 2336 or CS 2336 or TE 2336) and CS 3333. Prerequisite: CS 1335 or (CE 1337 or CS 1337 or TE 1337) or CS 3335 or equivalent programming experience. (3-0) Y (2015-04-20 23:59:46)

CS 3335 C and C++ (3 semester credit hours) Numerous programming projects in both C and C++. All fundamentals of C, with special emphasis on use of pointers. Use of C++ extensions to create and extend (by inheritance) abstract data types. The use/advantages of virtual functions (dynamic polymorphism). Prerequisite: CS 2335 or (CE 2336 or CS 2336 or TE 2336) or equivalent. (3-0) T (2015-04-20 23:59:46)

CS 3340 Computer Architecture (3 semester credit hours) This course introduces the concepts of computer architecture by going through multiple levels of abstraction, and the numbering systems and their basic computations. It focuses on the instruction-set architecture of the MIPS machine, including MIPS assembly programming, translation between MIPS and C, and between MIPS and machine code. General topics include performance calculation, processor datapath, pipelining, and memory hierarchy. Credit cannot be received for both courses, (CS 3340 or SE 3340 or TE 3340) and (CE 4304 or EE 4304). Prerequisites: (CE 1337 or CS 1337 or TE 1337 with a grade of C or better or equivalent) and (CE 2305 or CS 2305 or TE 2305 with a grade of C or better). (Same as SE 3340 and TE 3340) (3-0) S (2015-04-20 23:59:46)

CS 3341 Probability and Statistics in Computer Science and Software Engineering (3 semester credit hours) Axiomatic probability theory, independence, conditional probability. Discrete and continuous random variables, special distributions of importance to CS/SE, and expectation. Simulation of random variables and Monte Carlo methods. Central limit theorem. Basic statistical inference, parameter estimation, hypothesis testing, and linear regression. Introduction to stochastic processes. Illustrative examples and simulation exercises from queuing, reliability, and other CS/SE applications. Credit cannot be received for both courses, (CS 3341 or SE 3341 or STAT 3341) and ENGR 3341. Prerequisites: (MATH 1326 or MATH 2414 or MATH 2419), and (CE 2305 or CS 2305 or TE 2305 with a grade of C or better). (Same as SE 3341 and STAT 3341) (3-0) S (2015-04-20 23:59:46)

CS 3345 Data Structures and Introduction to Algorithmic Analysis (3 semester credit hours) Analysis of algorithms including time complexity and Big-O notation. Analysis of stacks, queues, and trees, including B-trees. Heaps, hashing, and advanced sorting techniques. Disjoint sets and graphs. Course emphasizes design and implementation. Prerequisites: (CE 2305 or CS 2305 or TE 2305 with a grade of C or better) and (CE 2336 or CS 2336 or TE 2336 with a grade of C or better). Prerequisite or Corequisite: (CS 3341 or SE 3341 or ENGR 3341). (Same as CE 3345 and SE 3345 and TE 3345) (3-0) S (2015-04-20 23:59:46)

CS 3354 Software Engineering (3 semester credit hours) Introduction to software life cycle models. Software requirements engineering, formal specification and validation. Techniques for software design and testing. Cost estimation models. Issues in software quality assurance and software maintenance. Prerequisites: (CE 2336 or CS 2336 or TE 2336 with a grade of C or better or CS 3333) and (CE 2305 or CS 2305 or TE 2305 with a grade of C or better or equivalent). Prerequisite or Corequisite: ECS 3390. (Same as CE 3354 and SE 3354) (3-0) S (2015-04-20 23:59:46)

CS 3360 Computer Graphics for Artists and Designers (3 semester credit hours) Device and logical coordinate systems, and the nature of raster display. Algorithms for basic 2-D drawing primitives, such as line-drawing, clipping and Bezier curves. Perspectives in 3-D, and hidden-face elimination, such as Painter's and Z-Buffer algorithms. Color and texture. Fractals and the Mandelbrot set. May not be used to satisfy degree requirements for majors in the School of Engineering and Computer Science. Prerequisite: CS 2335. (3-0) Y (2015-04-20 23:59:46)

CS 3376 C/C++ Programming in a UNIX Environment (3 semester credit hours) Advanced programming techniques utilizing procedural and object oriented programming in a UNIX environment. Topics include file input and output, implementation of strings, stacks, queues, lists, and trees, and dynamic memory allocation/management. Design and implementation of a comprehensive programming project is required. Prerequisite: (CE 2336 or CS 2336 or TE 2336) with a grade of C or better or equivalent. (Same as SE 3376) (3-0) S (2015-04-20 23:59:46)

CS 3385 Ethics, Law, Society, and Computing (3 semester credit hours) Issues of professional ethics; computer crime; wiretapping and encryption; protecting software and other intellectual property; privacy and information; careers and computers; reliability and safety; constitutional issues. Broader issues on the impact and control of computers. (3-0) S (2015-04-20 23:59:46)

CS 3V95 Undergraduate Topics in Computer Science (1-9 semester credit hours) Subject matter will vary from semester to semester. May be repeated for credit as topics vary (9 semester credit hours maximum). ([1-9]-0) S (2015-04-20 23:59:46)

CS 4141 Digital Systems Laboratory (1 semester credit hour) Laboratory to accompany CS 4341. The purpose of this laboratory is to give students an intuitive understanding of digital circuits and systems. Laboratory exercises include construction of simple digital logic circuits using prototyping kits and board-level assembly of a personal computer. Corequisite: CS 4341 or TE 4341. (Same as TE 4141) (0-2) S (2015-04-20 23:59:46)

CS 4314 Intelligent Systems Analysis (3 semester credit hours) Convergence analysis of the behavior of nonlinear high-dimensional deterministic and stochastic dynamical systems which are widely used in the fields of machine learning and artificial neural network modeling. Topics include: artificial neural network architectures, Lyapunov stability theory, nonlinear optimization theory, stochastic approximation theory, and Monte Carlo Markov Chain (MCMC) algorithms. Prerequisites: (STAT 3341 or equivalent) and MATH 2418 and MATH 2419. (Same as CGS 4314) (3-0) T (2015-04-20 23:59:46)

CS 4315 Intelligent Systems Design (3 semester credit hours) Mathematical analysis of estimation (learning) and inference in nonlinear high-dimensional deterministic and stochastic dynamical systems widely used in the fields of machine learning and artificial neural network modeling. The course uses a mathematical statistics perspective that emphasizes parametric statistical methods for the direct analysis of generalization performance in artificially intelligent dynamical systems. Topics include: (1) Markov Random Field probability representations, and (2) asymptotic mathematical statistical theory for: parameter estimation, model selection, and hypothesis testing. Prerequisites: (STAT 3341 or equivalent) and MATH 2418 and MATH 2419. (Same as CGS 4315) (3-0) T (2015-04-20 23:59:46)

CS 4332 Introduction to Programming Video Games (3 semester credit hours) Video game programming concepts. Programming with game engine. 2D and 3D computer graphics techniques and data structures. Computer animation, physics-based methods and collision detection. GPU and shader programming. Artificial intelligence for video games. Networking and multiplayer. Prerequisite: CE 3345 or CS 3345 or SE 3345 or TE 3345. (3-0) Y (2015-04-20 23:59:46)

CS 4334 Numerical Analysis (3 semester credit hours) Solution of linear equations, roots of polynomial equations, interpolation and approximation, numerical differentiation and integration, solution of ordinary differential equations, computer arithmetic, and error analysis. Prerequisites: (CE 1337 or CS 1337 or TE 1337) and (MATH 2418 and MATH 2451). (Same as MATH 4334) (3-0) Y (2015-04-20 23:59:46)

CS 4336 Advanced Java (3 semester credit hours) Advanced Java programming techniques integrating the technologies of advanced swing GUI components, JavaBeans, Java Servlets and Server Pages, XML, Security, Java Database Connectivity, Remote Method Invocation, and Software applications for Wireless Devices. Students will have the opportunity to work on their own E-Business Solutions. Prerequisite: CE 2336 or CS 2336 or TE 2336 or equivalent. (3-0) T (2015-04-20 23:59:46)

CS 4337 Organization of Programming Languages (3 semester credit hours) Principles of design and implementation of contemporary programming languages. Formal description including specification of syntax and semantics of programming languages. Language definition structures including binding, scoping, data types, control structures, parameter passing, abstraction mechanism, and run-time considerations. Design issues of imperative languages, object-oriented languages, functional languages and logic languages. Design, implement, and debug programs in various programming language paradigms. Prerequisites: ((CE 2336 or CS 2336 or TE 2336) with a grade of C or better or CS 3333) and (CE 2305 or CS 2305 or TE 2305) with a grade of C or better and (CS 3340 or SE 3340 or TE 3340 or CE 4304 or EE 4304). (Same as CE 4337) (3-0) S (2015-04-20 23:59:46)

CS 4341 Digital Logic and Computer Design (3 semester credit hours) Boolean algebra and logic circuits; synchronous sequential circuits; gate level design of ALSU, registers, and memory unit; register transfer operations; design of data path and control unit for a small computer; Input-Output interface. Credit cannot be received for both courses, (CS 4341 or TE 4341) and (CE 3320 or EE 3320). Prerequisites: (CE 2310 or EE 2310) or (CS 3340 or SE 3340 or TE 3340) and PHYS 2326. Corequisite: (CS 4141 or TE 4141). (Same as TE 4341) (3-0) S (2015-04-20 23:59:46)

CS 4347 Database Systems (3 semester credit hours) This course emphasizes the concepts and structures necessary for the design and implementation of database management systems. Topics include data models, data normalization, data description languages, query facilities, file organization, index organization, file security, data integrity, and reliability. Prerequisite: CE 3345 or CS 3345 or SE 3345 or TE 3345. (Same as SE 4347) (3-0) Y (2015-04-20 23:59:46)

CS 4348 Operating Systems Concepts (3 semester credit hours) An introduction to fundamental concepts in operating systems: their design, implementation, and usage. Topics include process management, main memory management, virtual memory, I/O and device drivers, file systems, secondary storage management, and an introduction to critical sections and deadlocks. Prerequisites: (CS 3340 or SE 3340 or TE 3340 or equivalent), and (CE 3345 or CS 3345 or SE 3345 or TE 3345), and a working knowledge of C and UNIX. (Same as CE 4348 and SE 4348 and TE 4348) (3-0) S (2015-04-20 23:59:46)

CS 4349 Advanced Algorithm Design and Analysis (3 semester credit hours) Asymptomatic analysis, recurrences, and graph algorithms. Algorithm design techniques such as greedy method, dynamic programming, and divide-and-conquer. Issues from computational complexity. Course emphasizes a theoretical approach. Prerequisites: CS 3305 with a grade of C or better, and (CE 3345 or CS 3345 or SE 3345 or TE 3345). (3-0) S (2015-04-20 23:59:46)

CS 4352 Human Computer Interactions I (3 semester credit hours) Methods and principles of human-computer interaction (HCI), user-centered design (UCD), and usability evaluation. Provides broad overview of HCI and how HCI informs UCD processes throughout product development lifecycle. (Same as CGS 4352) (3-0) T (2015-04-20 23:59:46)

CS 4353 Human Computer Interactions II (3 semester credit hours) Detailed exploration of human-computer interaction (HCI) through readings in journal articles and research reports. Practical experience in methodology typically used in the design of usable systems. (Same as CGS 4353) (3-0) T (2015-04-20 23:59:46)

CS 4361 Computer Graphics (3 semester credit hours) Review of graphic display architecture and graphic input devices. Two- and three-dimensional transformations, matrix formulations, and concatenation. Clipping and windowing. Data structures for graphics systems, segmented display files, rings, etc. Hidden line and surface elimination. Shading. Graphics packages and applications. Prerequisites: MATH 2418, and (CE 2336 or CS 2336 or TE 2336), and (CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent). (3-0) Y (2015-04-20 23:59:46)

CS 4365 Artificial Intelligence (3 semester credit hours) Basic concepts and techniques that enable computers to perform intelligent tasks. Examples are taken from areas such as natural language understanding, computer vision, machine learning, search strategies and control, logic, and theorem proving. Prerequisite: CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4375 Introduction to Machine Learning (3 semester credit hours) Algorithms for creating computer programs that can improve their performance through learning. Topics include: cross-validation, decision trees, neural nets, statistical tests, Bayesian learning, computational learning theory, instance-based learning, reinforcement learning, bagging, boosting, support vector machines, Hidden Markov Models, clustering, and semi-supervised and unsupervised learning techniques. Prerequisites: (CS 3341 or SE 3341) and (CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent). (3-0) Y (2015-04-20 23:59:46)

CS 4376 Object-Oriented Programming Systems (3 semester credit hours) In-depth study of the features/advantages of object-oriented approach to problem solving. Special emphasis on issues of object-oriented analysis, design, implementation, and testing. Review of basic concepts of object-oriented technology (abstraction, inheritance, and polymorphism). Object-oriented programming languages, databases, and productivity tools. Prerequisite: (CE 2336 or CS 2336 or TE 2336) with a grade of C or better or equivalent. (Same as SE 4376) (3-0) S (2015-04-20 23:59:46)

CS 4384 Automata Theory (3 semester credit hours) A review of the abstract notions encountered in machine computation. Topics include finite automata, regular expressions, PDAs, and context-free languages. Prerequisite: CS 3305 with a grade of C or better. (3-0) S (2015-04-20 23:59:46)

CS 4386 Compiler Design (3 semester credit hours) Basic phases of a compiler and their design principles. Topics include lexical analysis, basic parsing techniques such as LR(K) and LL(K) grammars. Prerequisite: CE 3345 or CS 3345 or SE 3345 or TE 3345 (or equivalent). (3-0) R (2015-04-20 23:59:46)

CS 4389 Data and Applications Security (3 semester credit hours) Data as a critical resource. Threats to data and applications security including access control violations, integrity violations, unauthorized intrusions and sabotage; techniques to enforce security. Prerequisite: CS 4347 or SE 4347. (3-0) Y (2015-04-20 23:59:46)

CS 4390 Computer Networks (3 semester credit hours) The design and analysis of computer networks. Topics include the ISO reference model, transmission media, medium-access protocols, LANs, data link protocols, routing, congestion control, internetworking, and connection management. Credit cannot be received for both courses, (CE 4390 or CS 4390 or TE 4390) and EE 4390. Prerequisite: CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent. (Same as CE 4390 and TE 4390) (3-0) S (2015-04-20 23:59:46)

CS 4391 Introduction to Computer Vision (3 semester credit hours) Techniques for manipulating and extracting information from digital images and video. Topics include color representations, analysis and processing based on image histograms, geometric transformations, convolutions, image blurring and sharpening, extraction of edges, matching, image and video motion. Prerequisites: CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4392 Computer Animation (3 semester credit hours) Introduction to traditional animation. Kinematics of motion. Key framing. Coordinate systems and transformations (review), Euler angles and Quaternions, Catmull Rom and B-Splines, Advanced Key framing, articulated figures (forward kinematics), human and animal modeling (soft tissue, skin, etc.). Facial animation (parametric). Physically based modeling (rigid, collision detection). Physically based modeling (deformable). Behavioral and heuristic models. Algorithmic animation. Optimization techniques. Animation languages and systems. Motion capture and real time control. Virtual reality and animation. Rendering and temporal aliasing. 2D and 3D morphing. 3D modeling. Prerequisites: MATH 2418 and (CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent). (3-0) Y (2015-04-20 23:59:46)

CS 4393 Computer and Network Security (3 semester credit hours) The study of security and vulnerabilities in computer and network systems. Common attacking techniques such as buffer overflow, viruses, worms, etc. Security in existing systems such as UNIX, Windows, and JVM. Fundamental access control and information flow concepts. Symmetric Ciphers such as DES and AES. Public-key encryption techniques and related number theory. Message authentication, hash functions, and digital signatures. Authentication applications, IP security and Web security. Prerequisite: CE 4348 or CS 4348 or SE 4348 or TE 4348 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4394 Implementation of Modern Operating Systems (3 semester credit hours) This course focuses on developing systems implementation skills through a set of projects. Each project will explore one fundamental component of operating systems such as process scheduling, memory management, device drivers, file systems, and network communication management. The projects are expected to involve kernel-level programming. Prerequisites: (CE 4348 or CS 4348 or SE 4348 or TE 4348) and CS 3335, or equivalent programming experience. (3-0) R (2015-04-20 23:59:46)

CS 4395 Human Language Technologies (3 semester credit hours) Introduction to human language technologies (HLT), the study of natural languages from a computational perspective. Topics include computational models of syntax and semantics, natural language applications (such as machine translation, speech processing, information retrieval, and information extraction), and general machine-learning techniques commonly used in state-of-the-art HLT research. Prerequisites: (CS 3341 or SE 3341) and (CE 3345 or CS 3345 or SE 3345 or TE 3345 or equivalent). (3-0) Y (2015-04-20 23:59:46)

CS 4396 Networking Laboratory (3 semester credit hours) This course takes a lab-oriented approach to demonstrate how basic networking concepts are applied in a real network. The hands-on projects include setting up simple network topologies, configuring devices to run basic network protocols, and using various debugging tools to identify, locate, and fix common problems in networking. Prerequisite or Corequisite: CS 4390 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4397 Embedded Computer Systems (3 semester credit hours) Introduction to embedded computer applications and concepts. Real-time operating systems and resource management. Real-time scheduling and communication. Senior data acquisition, processing and fusion. Error handling, fault tolerance, and graceful degradation. System performance analysis and optimization techniques. Includes a project to develop and analyze a small embedded computer application. Prerequisite: CE 4348 or CS 4348 or SE 4348 or TE 4348 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4398 Digital Forensics (3 semester credit hours) Creating and preserving digital evidence, data recovery and evidence collection algorithms, evidence construction and reconstruction, methods for certifying evidence, storing evidence, data acquisition, forensic analysis algorithms, image files, network forensics, logging methods to trace back attacks and digital trails, e-mail investigations. Prerequisites: (CE 4348 or CS 4348 or SE 4348 or TE 4348) and (CE 4390 or CS 4390 or TE 4390) or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 4399 Senior Honors in Computer Science (3 semester credit hours) For students conducting independent research for honors theses or projects. Topics may vary. Instructor consent required. (3-0) R (2015-04-20 23:59:46)

CS 4485 Computer Science Project (4 semester credit hours) This course is intended to complement theory and to provide an in-depth, hands-on experience in all aspects of a software development project. Students will work in teams on projects of interest to industry and will be involved in specifying the problem and its solution, designing and analyzing the solution, developing the software architecture, along with implementation and testing plans. The deliverables will include reports that document these steps as well as a final project report, including the challenges they faced, and a user manual of the developed system. Students will explore security issues of their project and its potential impact on society. Teams will also make presentations as well as demonstrate their software. Additionally, this course will cover topics related to computer science profession including ethics and professional responsibility, entrepreneurship, leadership, and project management. Prerequisites: (CE 3345 or CS 3345 or SE 3345 or TE 3345), and (CE 3354 or CS 3354 or SE 3354 or equivalent), and at least three CS 43XX classes. (4-0) S (2015-04-20 23:59:46)

CS 4V95 Undergraduate Topics in Computer Science (1-9 semester credit hours) Subject matter will vary from semester to semester. May be used as CS Guided Elective on CS degree plans. May be repeated for credit as topics vary (9 semester credit hours maximum). Instructor consent required. ([1-9]-0) R (2015-04-20 23:59:46)

CS 4V98 Undergraduate Research in Computer Science (1-9 semester credit hours) Topics will vary from semester to semester. May be repeated for credit as topics vary (9 semester credit hours maximum). Instructor consent required. ([1-9]-0) R (2015-04-20 23:59:46)

CS 5301 (EEGR 5301) Professional and Technical Communication (3 semester credit hours) This course utilizes an integrated approach to writing and speaking for the technical professions. The advanced writing components of the course focus on writing professional quality technical documents such as proposals, memos, abstracts, reports, letters, emails, etc. The advanced oral communication components of the course focus on planning, developing, and delivering dynamic, informative and persuasive presentations. Advanced skills in effective teamwork, leadership, listening, multimedia and computer generated visual aids are also emphasized. Graduate students will have a successful communication experience working in a functional team environment using a real time, online learning environment. (3-0) Y (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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. Corequisite: CS 5303. (3-0) R (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 5336 Programming Projects in Java (3 semester credit hours) Overview of the object-oriented philosophy. Implementation of object-oriented designs using the Java programming environment. Emphasis on using the browser to access and extend the Java class library. Prerequisite: CS 5303 or equivalent experience. (3-0) R (2015-04-20 23:59:46)

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. Prerequisites: CS 5303 and CS 5333. (3-0) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 5354 (CE 5354 and SE 5354) Software Engineering (3 semester credit hours) Formal specification and program verification. Software life-cycle models and their stages. System and software requirements engineering; user-interface design. Software architecture, design, and analysis. Software testing, validation, and quality assurance. Prerequisite or Corequisite: CS 5343. (3-0) S (2015-04-20 23:59:46)

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. (3-0) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 5V71 Cooperative Education (1-3 semester credit hours) Placement in a faculty-supervised work environment in industry or government. Sites may be local or out-of-state. The cooperative education program provides exposure to a professional working environment, application of theory to working realities, and an opportunity to test skills and clarify goals. Experience gained may also serve as a work credential after graduation. May be repeated for credit (9 semester credit hours maximum). Prerequisites: ENCS majors only and department consent required. ([1-3]-0) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6301 Special Topics in Computer Science (3 semester credit hours) May be repeated for credit as topics vary. (3-0) S (2015-04-20 23:59:46)

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 3340 or EE 4304. (3-0) Y (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 or instructor consent required. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 & 3D transformations, skeletons, forward and inverse kinematics, skinning, keyframing, particle systems, rigid bodies, cloth animation, collision detection, and animation for video games. Prerequisites: CS 6366 and a good working knowledge of graphical programming (either OpenGL, DirectX, or Java3D). (3-0) Y (2015-04-20 23:59:46)

CS 6324 (CE 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 (2015-04-20 23:59:46)

CS 6325 Introduction to Bioinformatics (3 semester credit hours) The course provides a broad overview of the bioinformatics field. Comprehensive introduction to molecular biology and molecular genetics for a program of study in bioinformatics. Discussion of elementary computer algorithms in biology (e.g., sequence alignment and gene finding). Biological databases, data analysis and management. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6329 (SE 6329) Object-Oriented Software Engineering (3 semester credit hours) Concepts, methods and techniques necessary to efficiently capture software requirements in use cases and transform them into design and implementation. Use of UML in the context of an iterative, agile process with an OO model transformation approach. Use of an advanced CASE tool that allows the synchronization between the various models and the code. Prerequisites: CS 3354 or (CE 5354 or CS 5354 or SE 5354) and knowledge of Java. (3-0) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6332 Systems Security and Malicious 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 (2015-04-20 23:59:46)

CS 6333 Algorithms in Computational Biology (3 semester credit hours) The principles of algorithm design for biological datasets, and analysis of influential problems and techniques. Biological sequence analysis, gene finding, RNA folding, protein folding, sequence alignment, genome assembly, comparative genomics, phylogenetics, clustering algorithms. Prerequisite: CS 6325. (3-0) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 and CS 5343 or equivalent or instructor consent required. (3-0) Y (2015-04-20 23:59:46)

CS 6348 Data and Applications Security (3 semester credit hours) The course will teach principles, technologies, tools and trends for data and applications security. Topics to be covered include: confidentiality, privacy and trust management; secure databases; secure distributed systems; secure multimedia and object systems; secure data warehouses; data mining for security applications; assured information sharing; secure knowledge management; secure collaboration; secure digital libraries; trustworthy semantic web; biometrics; digital forensics; secure e-commerce; secure sensor information management and secure social networks. Students will take one system or application and develop a secure version of that system or application for the programming project. Prerequisites: CS 5343 and department consent required. (3-0) Y (2015-04-20 23:59:46)

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 and department consent required. (3-0) Y (2015-04-20 23:59:46)

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. Corequisite: CS 6364 or CS 6375. (3-0) S (2015-04-20 23:59:46)

CS 6352 (CE 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 (2015-04-20 23:59:46)

CS 6353 (CE 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 (2015-04-20 23:59:46)

CS 6354 (CE 6354 and SE 6354) Advanced Software Engineering (3 semester credit hours) This course covers advanced theoretical concepts in software engineering and provides an extensive hands-on experience in dealing with various issues of software development. It involves a semester-long group software development project spanning software project planning and management, analysis of requirements, construction of software architecture and design, implementation, and quality assessment. The course will introduce formal specification, component-based software engineering, and software maintenance and evolution. Must have knowledge of Java. Prerequisite: CE 5354 or CS 5354 or SE 5354 or equivalent. (3-0) S (2015-04-20 23:59:46)

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: CE 5354 or CS 5354 or SE 5354. (3-0) Y (2015-04-20 23:59:46)

CS 6359 (SE 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. Prerequisites: (CE 5354 or CS 5354 or SE 5354) and (CS 3335 or CS 5336). (3-0) S (2015-04-20 23:59:46)

CS 6360 (SE 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 (2015-04-20 23:59:46)

CS 6361 (SE 6361 and SYSM 6309) 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: CE 5354 or CS 5354 or SE 5354. (3-0) S (2015-04-20 23:59:46)

CS 6362 (SE 6362) Advanced Software Architecture and Design (3 semester credit hours) Concepts and methodologies for the development, evolution, and reuse of software architecture and design, with an emphasis on object-orientation. Identification, analysis, and synthesis of system data, process, communication, and control components. Decomposition, assignment, and composition of functionality to design elements and connectors. Use of non-functional requirements for analyzing trade-offs and selecting among design alternatives. Transition from requirements to software architecture, design, and to implementation. State of the practice and art. Prerequisite: CE 5354 or CS 5354 or SE 5354. (3-0) S (2015-04-20 23:59:46)

CS 6363 (CE 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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6365 Data and Text Mining for Computational Biology (3 semester credit hours) The course introduces data and text mining as practiced currently in the bioinformatics field. Major topics include: sequence alignment for determining similarity between proteins and genes; properties of similarities and distances; genomic, proteomic, and text databases in the real world; finding patterns (motifs) in genes and proteins; differentiating between valid patterns and noise; classification; clustering and its application to phylogenetic trees; and selected topics from text mining. Prerequisite: CS 6325. (3-0) Y (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6367 (CE 6367 and 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: CE 5354 or CS 5354 or SE 5354 or instructor consent required. (3-0) Y (2015-04-20 23:59:46)

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 or CS 6390 or CS 6385 or equivalent. (3-0) Y (2015-04-20 23:59:46)

CS 6369 Complexity of Combinatorial Algorithms (3 semester credit hours) Topics include bounded reducibility and completeness, approximation algorithms and heuristics for NP-hard problems, randomized algorithms, and additional complexity classes. Prerequisite: CS 6363. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6374 Computational Logic (3 semester credit hours) Methods and algorithms for the solution of logic problems. Topics include problem formulation in first order logic and extensions, theorem proving algorithms, polynomially solvable cases, logic programming, and applications. Prerequisites: CS 5343 and knowledge of C. (3-0) Y (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 6363. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6378 (CE 6378 and TE 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 and UNIX. Prerequisite: CS 5348 or equivalent. (3-0) S (2015-04-20 23:59:46)

CS 6379 Biological Database Systems and Data Mining (3 semester credit hours) Relational data models and database management systems; theories and techniques of constructing relational databases to store biological data, including sequences, structures, genetic linkages and maps, and signal pathways. Introduction to a relational database query language (SQL) with emphasis on answering biologically important questions. Summary of current biological databases. Data integration from various sources and security. Novel data mining methods in bioinformatics with an emphasis on protein structure prediction, homology search, genomic sequence analysis, gene finding and gene mapping. Future directions for biological database development. Prerequisites: (BIOL 6373 or BMEN 6391) and BIOL 5381 and CS 5343 or instructor consent required. (3-0) T (2015-04-20 23:59:46)

CS 6380 (CE 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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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. Instructor consent required. (3-0) Y (2015-04-20 23:59:46)

CS 6383 Computational Systems Biology (3 semester credit hours) The course will provide a system-level understanding of biological systems by analyzing biological data using computational techniques. The major topics include: computational inference of biological networks (regulatory, protein interactions, and metabolic) and the effects of biological networks in cellular processes, development, and disease. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 ENGR 3341 or equivalent. (3-0) Y (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6387 (SE 6387) Advanced Software Engineering Project (3 semester credit hours) This course is intended to provide experience in a group project that requires advanced technical solutions, such as distributed multi-tier architectures, component-based technologies, automated software engineering, etc., for developing applications, such as web-based systems, knowledge-based systems, real-time systems, etc. The students will develop and maintain requirements, architecture and detailed design, implementation, and testing and their traceability relationships. Best practices in software engineering will be applied. Prerequisites: (CS 6381 or SE 6361) or SYSM 6309, and (CS 6362 or SE 6362). Corequisite: (CE 6367 or CS 6367 or SE 6367) or SYSM 6310. (3-0) S (2015-04-20 23:59:46)

CS 6388 (SE 6388) Software Project Planning and Management (3 semester credit hours) Techniques and disciplines for successful management of software projects. Project planning and contracts. Advanced cost estimation models. Risk management process and activities. Advanced scheduling techniques. Definition, management, and optimization of software engineering processes. Statistical process control. Software configuration management. Capability Maturity Model Integration (CMMI). Prerequisite: CE 5354 or CS 5354 or SE 5354. (3-0) Y (2015-04-20 23:59:46)

CS 6389 (SE 6389) Formal Methods and Programming Methodology (3 semester credit hours) Formal techniques for building highly reliable systems. Use of abstractions for concisely and precisely defining system behavior. Formal logic and proof techniques for verifying the correctness of programs. Hierarchies of abstractions, state transition models, Petri Nets, communicating processes. Operational and definitional specification languages. Applications to reliability-critical, safety-critical, and mission-critical systems, ranging from commercial computer communication systems to strategic command control systems. Prerequisite: CE 5354 or CS 5354 or SE 5354. (3-0) Y (2015-04-20 23:59:46)

CS 6390 (CE 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) S (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6392 (CE 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 (2015-04-20 23:59:46)

CS 6393 Advanced Algorithms in Biology (3 semester credit hours) Recent advanced topics in algorithms in biology will be discussed. Topics will be chosen from: sorting and transformational operations on strings and permutations, structural analysis of proteins, pooling design and nonadaptive group testing, approximation algorithms, and complexity issues. Prerequisites: CS 6363 and CS 6325 and ENCS majors only. (3-0) Y (2015-04-20 23:59:46)

CS 6395 Speech Recognition, Synthesis, and Understanding (3 semester credit hours) Basic speech processing techniques: isolated word recognition using dynamic time warping, acoustic modeling using hidden Markov models, statistical language modeling, search algorithms in large vocabulary continuous speech recognition, components in text-to-speech systems, and architecture and components in spoken dialog systems. Prerequisite: CS 5343. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

CS 6397 (CE 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 (2015-04-20 23:59:46)

CS 6398 (CE 6398 and EEDG 6398) DSP Architectures (3 semester credit hours) Typical DSP algorithms, representation of DSP algorithms, data-graph, FIR filters, convolutions, Fast Fourier Transform, Discrete Cosine Transform, low power design, VLSI implementation of DSP algorithms, implementation of DSP algorithms on DSP processors, DSP applications including wireless communication and multimedia. Prerequisite: CS 5343. (3-0) Y (2015-04-20 23:59:46)

CS 6399 (CE 6399) Parallel Architectures and Systems (3 semester credit hours) A comprehensive study of the fundamentals of parallel systems and architecture. Topics including parallel programming environment, fine-grain parallelism such as VLIW and superscalar, parallel computing paradigm of shared-memory, distributed-memory, data-parallel and data-flow models, cache coherence, compiling techniques to improve parallelism, scheduling theory, loop transformations, loop parallelizations and run-time systems. Prerequisite: CS 5348. (3-0) T (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)

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 (2015-04-20 23:59:46)