Computer Science - CS

Computer Science CS 401 Computer Algorithms I 3 OR 4 hours. Design and analysis of computer algorithms. Divide-and-conquer, dynamic programming, greedy method, backtracking. Algorithms for sorting, searching, graph computations, pattern matching, NP-complete problems. Same as MCS 401. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in MCS 360; or Grade of C or better in CS 202.
Computer Science CS 411 Artificial Intelligence I 3 OR 4 hours. Problem representation; rule-based problem-solving methods; heuristic search techniques. Application to expert systems, theorem proving, language understanding. Individual projects. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 484. Prerequisite(s): CS 202. 
Computer Science CS 415 Computer Vision I 3 OR 4 hours. Computer vision system design. Segmentation and representation of regions and boundaries; image filtering; object recognition; advanced topics (examples: texture, stereo, color); applications. Programming assignments. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 487. Prerequisite(s): CS 202 or MCS 360; or consent of the instructor. 
Computer Science CS 421 Natural Language Processing 3 OR 4 hours. Design of natural language processing systems; part-of speech tagging, statistical and symbolic parsers; semantic interpretation; discourse and dialogue processing; natural language generation; applications. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): CS 301 or MCS 441. 
Computer Science CS 422 User Interface Design and Programming 3 OR 4 hours. User interface design, implementation, and evaluation: user-centered design methodologies, windowing systems, I/O devices and techniques, event-loop programming, user studies. Programming projects. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 478. Prerequisite(s): CS 340. 
Computer Science CS 424 Visualization and Visual Analytics 3 OR 4 hours. Geospatial visualization, scientific visualization, medical visualization, information visualization, and social network visualization, interaction, data analysis, human factors, dynamic data, privacy, uncertainty, data transforms. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite(s): CS 201 or graduate standing; or consent of the instructor.
Computer Science CS 426 Video Game Design and Development 3 OR 4 hours. Theory and practice of video game design and programming. Students will form interdisciplinary teams, to design, build and demonstrate video games or related interactive simulation environments. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): CS 107 and CS 201 and CS 488; or consent of the instructor.
Computer Science CS 440 Software Engineering I 3 OR 4 hours. Software life-cycle model, requirement specification techniques, large-scale software design techniques and tools, implementation issues, testing and debugging techniques, software maintenance. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 470. Prerequisite(s): CS 340. 
Computer Science CS 441 Distributed Object Programming Using Middleware 3 OR 4 hours. Design and implementation of distributed object programs using middleware software standards; interface definition languages and programming language mappings; static and dynamic object communication mechanisms. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite(s): CS 340 and CS 385. 
Computer Science CS 442 Software Engineering II 3 OR 4 hours. Advanced concepts in software development: requirements engineering, cost estimation, risk analysis, extreme programming, regression test case selection, and design patterns.  Software lab assignments required.   3 undergraduate hours.  4 graduate hours.  Extensive computer use required.  Prerequisite(s):  CS 440.
Computer Science CS 450 Introduction to Networking 3 OR 4 hours. Network protocols, algorithms, and software issues. Topics include the Open Systems Interconnect model, data link, network and transport layers, TCP/IP, ATM, mobile networks. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 433. Credit is not given for CS 450 if the student has credit for ECE 433. Prerequisite(s): CS 202 and CS 385; and STAT 381 or STAT 401 or IE 342. 
Computer Science CS 455 Design and Implementation of Network Protocols 3 OR 4 hours. Network protocols and their software, Examines OS network interface through network layers. Topics include routing, congestion control, fault tolerance, security, name servers, multicast, and performance. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): CS 340 and CS 450. 
Computer Science CS 466 Advanced Computer Architecture 3 OR 4 hours. Design and analysis of high performance uniprocessors. Topics include arithmetic: multiplication, division, shifting; processor: pipelining, multiple function units. instruction sets; memory: caches, modules; virtual machines. Same as ECE 466. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): ECE 366 or CS 366.
Computer Science CS 469 Computer Systems Design 3 OR 4 hours. Analysis and modeling of digital systems; hardware description languages; CAD tools for simulation, synthesis, and verification of computer systems. Project: a simple processor design. 3 undergraduate hours. 4 graduate hours. Same as ECE 469. Prerequisite(s): CS 366; or ECE 366 and ECE 368.
Computer Science CS 473 Compiler Design 3 OR 4 hours. Language translation: lexical analysis, parsing schemes, symbol table management, syntax and semantic error detection, and code generation. Development of fully-functional compiler. Same as MCS 411. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Grade of C or better in CS 301 or grade of C or better in MCS 441; and grade of C or better in CS 202 or grade of C or better in MCS 360; and grade of C or better in CS 266. 
Computer Science CS 474 Object-Oriented Languages and Environments 3 OR 4 hours. Data abstraction, classes and objects, messages and methods, polymorphism and dynamic binding, inheritance. Object-oriented design. Pure and hybrid object-oriented languages. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 474. Prerequisite(s): CS 340. 
Computer Science CS 475 Object-Oriented Programming 3 OR 4 hours. OO Paradigm: classes, messages, methods, variables, inheritance, polymorphism; the C++ and Java languages; programming labs required. 3 undergraduate hours. 4 graduate hours. Credit is not given for CS 475 if the student has credit for CS 340 or CS 474. Extensive computer use required. Prerequisite(s): CS 202; and consent of the instructor. 
Computer Science CS 476 Programming Language Design 3 OR 4 hours. Definition, design, and implementation of programming languages. Syntactic and semantic description; variable bindings, control and data structures, parsing, code generation, optimization; exception handling; data abstraction. Same as MCS 415. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 476. Prerequisite(s): MCS 360 or CS 340. 
Computer Science CS 480 Database Systems 3 OR 4 hours. Database design, logical design, physical design. Relational databases. Recovery, concurrency control. Normalization. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 480. Prerequisite(s): CS 202. 
Computer Science CS 485 Networked Operating Systems Programming 4 OR 5 hours. Concepts, design, and programming of multi-process and distributed systems; inter-process communications; fault tolerance; distributed programming semantics. Programming assignments and project required. 4 undergraduate hours. 5 graduate hours. Previously listed as EECS 471. Prerequisite(s): CS 385. 
Computer Science CS 487 Building Secure Computer Systems 3 OR 4 hours. Building and programming secure systems; protecting systems from threats and reduction of vulnerabilities; Includes application, host and network security. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite(s): Grade of C or better in CS 385; and senior standing or above; or consent of the instructor.
Computer Science CS 488 Computer Graphics I 0 TO 4 hours. Principles of interactive computer graphics. Raster and vector display, techniques and hardware considerations. Introduction to two-dimensional and three dimensional rendering. Laboratory. Same as AD 488. 3 undergraduate hours. 4 graduate hours. Previously listed as EECS 488. Prerequisite(s): Credit or concurrent registration in CS 340. 
Computer Science CS 491 Seminar 1 TO 4 hours. Topics of mutual interest to a faculty member and a group of students. Offered as announced by department bulletin or the Timetable. May be repeated. Previously listed as EECS 491. Prerequisite(s): Consent of the instructor. 
Computer Science CS 493 Special Problems 2 TO 4 hours. Special problems or reading by special arrangement with the faculty. Previously listed as EECS 493. No graduate credit for Computer Science majors. Prerequisite(s): Consent of the instructor. 
Computer Science CS 499 Professional Development Seminar 0 hours. Graduating seniors will be provided with information regarding future career paths and will provide information regarding the program to be used for assessment purposes. Students take the CS Major Field Exam as part of this course. Satisfactory/Unsatisfactory grading only. Prerequisite(s): Open only to seniors; and approval of the department. Must be taken in the student's last semester of study.
Computer Science CS 501 Computer Algorithms II 4 hours. Continuation of MCS 401 (same as CS 401). Advanced topics in algorithms. Lower bounds. Union-find problems. Fast Fourier transform. Complexity of arithmetic, polynomial, and matrix calculations. Approximation algorithms. Parallel algorithms. Same as MCS 501. Prerequisite(s): MCS 401 or CS 401. 
Computer Science CS 502 Design and Analysis of Efficient Algorithms in Computational Molecular Biology 4 hours. Design and analysis of efficient algorithms for computational problems in molecular biology such as genome sequencing and construction of evolutionary trees. Prerequisite(s): Grade of B or better in CS 401; or consent of the instructor. Recommended background: CS 501 and some exposure to basic chemistry and biology.
Computer Science CS 503 Applied Graph Theory 4 hours. Paths, circuits, trees, cutsets, planarity, duarity, matrices and vector space of graphs, directed graphs, coloring, covering, matching and applications to switching networks and computer science. Previously listed as EECS 563. Prerequisite(s): Consent of the instructor. 
Computer Science CS 505 Computability and Complexity Theory 4 hours. Turing machines, undecidability, Rice's theorem, recursively enumerable sets, complexity theory, hierarchy theorems, alternation, parallel complexity classes, complete problems. Previously listed as EECS 561. Prerequisite(s): CS 301. 
Computer Science CS 511 Artificial Intelligence II 4 hours. Predicate logic and resolution strategies, reasoning under uncertainty, incomplete information reasoning, state and change, planning, temporal reasoning knowledge representation, learning, advanced search techniques and current topics. Previously listed as EECS 584. Prerequisite(s): CS 411. 
Computer Science CS 514 Expert Systems 4 hours. Anatomy of expert systems, types of expert systems, architecture of an expert system, expert system tools, building an expert system; expert systems in the marketplace. Previously listed as EECS 585. Prerequisite(s): CS 411. 
Computer Science CS 515 Advanced Computer Vision 4 hours. Analysis of 3-D scene images. Shape from shading, texture, line drawings, and surface orientation. Surface representation methods and reconstruction of 3-D scenes. Design of knowledge-based vision systems and 3-D applications. Previously listed as EECS 587. Prerequisite(s): CS 415. 
Computer Science CS 521 Statistical Natural Language Processing 4 hours. Statistical techniques for Natural Language Processing, including maximum likelihood estimation, Hidden Markov Models, and probabilistic grammars; and their applications, including parsing, semantic inference, dialogue processing and summarization. Prerequisite(s): CS 421; or consent of the instructor.
Computer Science CS 522 Human-Computer Interaction 4 hours. The computer-user interface: media, languages, interaction techniques, user modeling. Human factors in software development. Theory, experimental methods, evaluation, tools. Project required. Previously listed as EECS 578. Prerequisite(s): CS 422. 
Computer Science CS 523 Multi-Media Systems 4 hours. Principles of multi-media interface design for computer applications. Multi-disciplinary approaches to integrating text, still images, animation, and sound into human-computer interfaces. Previously listed as EECS 579. Prerequisite(s): CS 422; or consent of the instructor. 
Computer Science CS 524 Visualization and Visual Analytics II 4 hours. Current topics in scientific visualization, medical visualization, information visualization, volume rendering, isosurfaces. Extensive computer use required. Prerequisite(s): CS 424 or CS 488; and graduate standing; or consent of the instructor.
Computer Science CS 525 Advanced Graphics Processor Programming 4 hours. Graphics Processing Unit (GPU) Programming languages, vertex shaders, fragment shaders, general purpose computing on GPUs. Prerequisite(s): CS 488; or graduate standing; and consent of the instructor. 
Computer Science CS 526 Computer Graphics II 4 hours. State of the art in computer graphics, visualization and interactive techniques. Same as AD 588. Prerequisite(s): CS 488; or consent of the instructor. 
Computer Science CS 527 Computer Animation 4 hours. Theoretical and practical aspects of computer animation: keyframing, kinematics, simulation, and motion capture. Laboratory required. Prerequisite(s): CS 488; or consent of the instructor. 
Computer Science CS 528 Virtual Reality 4 hours. Principles of virtual reality and virtual environments: hardware, software, input and control devices, design issues, and quantitative assessment of user performance. Prerequisite(s): CS 488 or consent of the instructor.
Computer Science CS 540 Advanced Topics in Software Engineering 4 hours. Formal methods; requirements and specification languages; program flow analysis; validation and verification; software metrics; program representations; software tools; software testing; software process. Previously listed as EECS 570. Prerequisite(s): CS 440; or consent of the instructor. 
Computer Science CS 541 Software Engineering Environments 4 hours. Software configuration management; software quality assurance; software engineering economics; software factory; software reuse; computer aided software engineering; software prototyping. Previously listed as EECS 571. Prerequisite(s): CS 540; or consent of the instructor. 
Computer Science CS 542 Distributed Software Engineering 4 hours. Fundamental concepts of distributed software. Task allocation algorithms, language concepts for concurrency and communication, analysis methods and tools, and formal models. Previously listed as EECS 572. Prerequisite(s): CS 440. 
Computer Science CS 545 Formal Methods In Concurrent and Distributed Systems 4 hours. Formal methods in concurrent and distributed systems, particularly temporal logic and automata for specifying and reasoning real-time properties. Automated and manual techniques for checking correctness. Previously listed as EECS 575. Prerequisite(s): Consent of the instructor. 
Computer Science CS 553 Distributed Computing Systems 4 hours. Distributed Computing systems terminology and design issues. Data communications protocols; distributed operating systems, resource management, and synchronization; security; database systems. Previously listed as EECS 573. Prerequisite(s): CS 366 and CS 385. 
Computer Science CS 554 Advanced Topics in Concurrent Computing Systems 4 hours. Petri nets, methods and their applications to concurrent, distributed, parallel, and data-flow systems; and logic programming and rule-based systems. Previously listed as EECS 564. Prerequisite(s): Consent of the instructor. 
Computer Science CS 559 Neural Networks 4 hours. Artificial neural networks, perceptron, backpropagation, Kohonen nets, statistical methods, Hopfield nets, associative memories, large memory networks, cognition.  Same as ECE 559.  Prerequisite(s): Consent of the instructor.
Computer Science CS 560 Fuzzy Logic 4 hours. Crisp and fuzzy sets; membership functions; fuzzy operations; fuzzy relations and their solution; approximate reasoning; fuzzy modeling and programming; applications; project. Previously listed as EECS 560. Prerequisite(s): Consent of the instructor. 
Computer Science CS 565 Physical Design Automation 4 hours. Computer-aided physical design of integrated circuits; circuit partitioning and placement; floorplanning; global and detailed routing; timing optimization; general optimization tools: local search, constraint relaxation. Same as ECE 565. Prerequisite(s): CS 401; and CS 466 or ECE 465.
Computer Science CS 566 Parallel Processing 4 hours. Parallel processing from the computer science perspective. Includes Architecture (bus based, lockstep, SIMD), Programming Languages (Functional, traditional and extensions), compilers, interconnection networks, and algorithms. Same as ECE 566. Prerequisite(s): CS 466 or ECE 466; and CS 401.
Computer Science CS 567 Principles of Computational Transportation Science 4 hours. Builds on the fundamentals of transportation science and emphasizes its high-level computational aspects. Topics covered include database design and theory, spatial and temporal information systems issues and travel modeling. Same as CME 567 and UPP 567. Prerequisite(s): Grade of B or better or concurrent registration in UPP 560. Open only to Ph.D. students; or consent of the instructor.
Computer Science CS 569 High-Performance Processors and Systems 4 hours. Instruction-level parallelism, multiple-instruction issue, branch prediction, instruction and data prefetching, novel cache and DRAM organization, high-performance interconnect, compilation issues, case studies. Same as ECE 569. Prerequisite(s): CS 466 or ECE 466; and graduate standing.
Computer Science CS 577 Object Stores 4 hours. Use, design, and implementation of object stores. An object store enables object-oriented programming to be extended by storing objects on disk and communicating objects between processes. Previously listed as EECS 577. Prerequisite(s): CS 385 and CS 480; and knowledge of C++, or consent of the instructor. 
Computer Science CS 580 Query Processing in Database Systems 4 hours. Query processing in deductive databases and in distributed/parallel databases systems. Same as IDS 511. Previously listed as EECS 580. Prerequisite(s): CS 480. 
Computer Science CS 581 Database Management Systems 4 hours. Concurrency control; reliability, recovery, data integrity, database machines and current topics. Previously listed as EECS 581. Prerequisite(s): CS 480. 
Computer Science CS 582 Information Retrieval 4 hours. Document retrieval, office automation. Optimal retrieval, relevance feedback, clustered search, construction of clusters, model of term weighting, thesaurus construction, multimedia data, handling of audio and video. Previously listed as EECS 582. Prerequisite(s): CS 480. 
Computer Science CS 583 Data Mining and Text Mining 4 hours. Provide students with a sound knowledge in data and text mining tasks and techniques, as well as, ensure students ability to use this technology.   Prerequisite(s):  CS 401.  Recommended background:  Algorithm Probability.
Computer Science CS 584 Advanced Data Mining 4 hours. Data stream mining - including stream clustering, classification and frequent pattern mining.  And, relation/link/graph mining - including frequent subgraphs, relational clustering and classification. Prerequisite(s): CS 583 and graduate standing; or consent of the instructor.
Computer Science CS 586 Data and Web Semantics 4 hours. Data modeling and semantics; knowledge representation, querying, and reasoning for the semantic web; metadata; data integration and interoperation; web services; applications.   Extensive computer use required.  Prerequisite(s):  CS 480 or equivalent.
Computer Science CS 587 Computer Systems Security 4 hours. Security policies; security properties; protection mechanisms for single systems, networked systems, and distributed computing; trust; attacks on computer systems.   Extensive computer use required.  Prerequisite(s):  CS 485 or CS 450; or consent of the instructor.
Computer Science CS 588 Security and Privacy in Networked and Distributed Systems 4 hours. Introduction to cryptographic principles; network authentication; confidentiality; integrity; distributed denial of service; certificates and distributed architectures for security; multiorganization trust; privacy, anonymity in distributed systems. Prerequisite(s): CS 401; and CS 450 or CS 485; or consent of the instructor.
Computer Science CS 594 Special Topics 4 hours. Subject matter varies from term to term and section to section, depending on the specialities of the instructor. May be repeated. Students may register in more than one section per term. Previously listed as EECS 594. Prerequisite(s): Consent of the instructor. 
Computer Science CS 595 Departmental Seminar 0 hours. Seminar by faculty and invited speakers. Satisfactory/Unsatisfactory grading only. May be repeated. Previously listed as EECS 595. 
Computer Science CS 596 Individual Study 1 TO 4 hours. Individual study or research under close supervision of a faculty member. May be repeated. Students may register in more than one section per term. No graduation credit for students in the following: MS in Computer Science or PhD in Computer Science.  Previously listed as EECS 596. Prerequisite(s): Consent of the instructor. For Computer Science majors only. 
Computer Science CS 597 Project Research 0 TO 9 hours. A research design or reading project approved by the committee appointed by the director of graduate studies. Satisfactory/Unsatisfactory grading only. May be repeated. Students may register in more than one section per term. Previously listed as EECS 597. Prerequisite(s): Consent of the instructor. For CS majors only. 
Computer Science CS 598 M.S. Thesis Research 0 TO 16 hours. M.S. thesis work under the supervision of a graduate advisor. Satisfactory/Unsatisfactory grading only. May be repeated. Students may register in more than one section per term. Previously listed as EECS 598. Prerequisite(s): Consent of the instructor. For CS majors only. 
Computer Science CS 599 Ph.D. Thesis Research 0 TO 16 hours. Ph.D. thesis work under supervision of a graduate advisor. Satisfactory/Unsatisfactory grading only. May be repeated. Students may register in more than one section per term. Previously listed as EECS 599. Prerequisite(s): Consent of the instructor. For CS students only.