Computer Science - CS


The information below lists courses approved in this subject area effective Spring 2015. Not all courses will necessarily be offered these terms. Please consult the Schedule of Classes for a listing of courses offered for a specific term.

500-level courses require graduate standing.

Back to Course Index


100 Discovering Computer Science
3 hours. Fundamentals of computing; history of computation; computer organization; program design, testing and debugging; web design; computer animation; software tools; societal and legal issues in computing. Credit is not given for CS 100 if the student has credit in either CS 101 or MCS 260. No graduation credit for students enrolled in a major offered by the Departments of Computer Science or Electrical and Computer Engineering. Extensive computer use required. Natural World - No Lab course.

107 Introduction to Computing and Programming
4 hours. Access and use of computing resources. Programming and program design. Problem solving. Data types, control structures, modularity, information hiding. Credit is not given for CS 107 if the student has credit for CS 102. Previously listed as EECS 171. Prerequisite(s): Credit or concurrent registration in MATH 180.

108 Fortran Programming for Engineers with MatLab
3 hours. Program design using Fortran: data types and operators, control structures, subprograms, file I/O, common storage. Engineering applications: matrices, equation solutions, MetLab environment. Programming assignments. Extensive computer use required. Prerequisite(s): Credit or concurrent registration in MATH 180.

109 C/C ++ Programming for Engineers with MatLab
3 hours. Program design using C/C++: Data types and operators, control structures, functions, file I/O, arrays and structures. Engineering applications: Matrices, equation solution, MatLab. Programming assignments. Extensive computer use required. Prerequisite(s): Credit or concurrent registration in MATH 180.

111 Program Design I
3 hours. Introduction to programming: control structures; variables and data types; problem decomposition and procedural programming; input and output; aggregate data structures including arrays; programming exercises. 3 hours. Previously listed as CS 101. Extensive computer use required.

141 Program Design II
3 hours. Data abstraction and modular design; recursion; lists and stacks; dynamic memory allocation; file manipulation; programming exercises. 3 hours. Previously listed as CS 102. Extensive computer use required. Credit is not given for CS 141 if the student has credit for CS 102 or CS 107. Prerequisite(s): CS 111 and credit or concurrent registration in MATH 180.

151 Mathematical Foundations of Computing
3 hours. Discrete mathematics concepts fundamental to computing: propositional logic, predicates and quantifiers; proofs; sets; recursive definitions and induction; functions, relations and graphs; combinatorics and discrete probability; applications. 3 hours. Credit is not given for CS 151 if the student has credit in MCS 361. Prerequisite(s): MATH 180; and Grade of C or better in CS 111.

201 Data Structures and Discrete Mathematics I
4 hours. Lists, stacks, queues, sets, hash tables, introduction to trees and graphs. Algorithm correctness and complexity, inductive proofs, logic. Programming projects. Previously listed as EECS 260. Credit is not given for CS 201 if the student has credit for MCS 261. Prerequisite(s): MATH 180; and grade of C or better in CS 102 or grade of C or better in CS 107.

202 Data Structures and Discrete Mathematics II
3 hours. Combinatorics; complex data structures: trees, heaps, and graphs. Sorting and searching algorithms. Programming projects. Previously listed as EECS 360. Prerequisite(s): Grade of C or better in CS 201.

211 Programming Practicum
2 hours. Software development tools and practices; debugging and testing; advanced language features; standard libraries; code management. 2 hours. Extensive computer use required. Prerequisite(s): Grade of C or better in CS 141.

251 Data Structures
4 hours. Design, usage and analysis of data structures: review of lists, stacks and queues; hash tables, priority queues, search trees, introduction to graphs; searching and sorting; runtime analysis; programming projects and lab exercises. 4 hours. Credit is not given for CS 251 if the student has credit in CS 202. Prerequisite (s): CS 151and credit or concurrent registration in CS 211. To be properly registered, students must enroll in one Lecture-Discussion and one Laboratory.

261 Machine Organization
3 hours. Data representation and computer arithmetic; machine language; addressing; memory hierarchy; subroutines; data structures; processor architecture: hardwdare components, pipelining. 3 hours. Credit is not given for CS 261 if the student has credit for CS 366 or ECE 267 or ECE 366. Extensive computer use required. Prerequisite(s): Credit or concurrent registration in CS 211.

266 Computer Architecture I: Logic and Computer Structures
4 hours. Architecture from gate level up. Combinational and sequential logic. Logical minimization. Integer number systems, arithmetic. Datapath design. Finite state machines. Register-based architecture. Memory technologies. Credit is not given for CS 266 if the student has credit in any of the following: EECS 265 or EECS 365 or EECS 366 or ECE 265 or ECE 267 or ECE 366. Prerequisite(s): CS 102.

301 Languages and Automata
3 hours. Regular sets and finite automata. Context-free languages and push-down automata. Parsing. Computability theory including Turing machines and decidability. Previously listed as EECS 361. Prerequisite(s): Grade of C or better in CS 201; and credit or concurrent registration in CS 202.

335 Computer Ethics
2 hours. Ethical, societal and environmental issues for computer professionals. Professional ethics, software ownership, unreliability, responsibility, privacy, computer crime, veracity, expert systems, workplace and health issues. Previously listed as EECS 375. Prerequisite(s): CS 202.

340 Software Design
4 hours. Programming language semantics, scope, overloading, data abstraction, constructors. Procedural and object-oriented design, programming tools and environments. Interactive application structure and interface, windows, events, widgets. Previously listed as EECS 370. Prerequisite(s): CS 202.

341 Programming Language Design and Implementation
3 hours. Programming language paradigms, design and implementation: syntax and semantics; parsing; runtime systems; control; data types; subroutines and exceptions; data and procedural abstraction; functional programming. Extensive computer use required.

342 Software Design
3 hours. Software design principles and practices: Object-oriented design; design patterns; software reuse; testing; event driven programming and concurrency; graphical user interface design and development; Team development. Extensive computer use required. Credit is not given for CS 342 if the student has credit for CS 340. Prerequisite(s): CS 251.

361 Computer Systems
3 hours. Study of computer systems emphasizing impact on application level programming. Virtual memory and memory management; code optimization; system-level I/O; concurrency: processes, threads, synchronization; introduction to network programming. 3 hours. Extensive computer use required. Credit Restrictions: Credit is not given for CS 361 if the student has credit for CS 366 or ECE 366. Prerequisite(s): CS 251 and CS 261.

362 Computer Design
3 hours. Computer hardware building blocks. logic gates; combinational circuits; arithmetic circuits; flip flops and sequential circuits; registers and memory; CPU design; I/O design. 3 hours. Extensive computer use required. Credit is not given for CS 362 if the student has credit in CS 266 or ECE 265. Prerequisite(s): CS 261.

366 Computer Architecture II: Hardware-Software Interface
4 hours. A continuation of CS 266. Control-unit and I/O design; assembly language and machine programming; hardware control and I/O; memory hierarchy and caching. Credit is not given for CS 366 if the student has credit for any of the following: EECS 265 or EECS 365 or EECS 366 or ECE 265 or ECE 267 or ECE 366. Prerequisite(s): CS 266.

376 Practicum in Computer Science Presentations
1 hours. Techniques for effective presentation of computer science topics: terminology, organization, visual aides and delivery of technical talks; presentations and presentation evaluation required. Prerequisite(s): ENGL 161 and CS 102.

377 Communication and Ethical Issues in Computing
3 hours. Communication skills for computing professionals: presentation organization, visual aides, delivery techniques, argument support. Ethical and societal issues in computing: privacy, intellectual property and ownership, crime. 3 hours. Extensive computer use required. Credit is not given for CS 377 if the student has credit in CS 335 or CS 376. Prerequisite(s): CS 251.

385 Operating Systems Concepts and Design
3 hours. Principles of operating systems. Effective management of machine resources: resource allocation and scheduling, mutual exclusion, deadlock avoidance, memory management policies, devices and file systems, client-server systems, virtualization. Previously listed as EECS 371. Extensive computer use required. Prerequisite(s): CS 361; or CS 201 and ECE 267.

398 Undergraduate Design/Research
3 hours. Design and/or research experience for undergraduate Computer Science majors under close supervision of a CS faculty member. Previously listed as EECS 398. Prerequisite(s): Consent of the instructor.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

477 Public Policy, Legal, and Ethical Issues in Computing, Privacy, and Security
3 OR 4 hours. Contemporary topics involving legal, public policy, and/or ethical issues in computing, especially privacy, security, and surveillance. 3 undergraduate hours. 4 graduate hours. Prerequisite(s): Consent of the instructor.

478 Software Development for Mobile Platforms
3 OR 4 hours. Design and implementation of mobile applications; operating systems, object-oriented languages and programming environments for mobile platforms; integration with hardware components; and location-aware applications. Programming assignments required. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite(s): CS 342.

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.

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.

486 Secure Operating System Design and Implementation
3 OR 4 hours. Design of operating systems; operating system kernel implementation; secure coding and systems; virtual machines; extensive programming in a systems language such as C. 3 undergraduate hours. 4 graduate hours. Extensive computer use required. Prerequisite(s): Credit or concurrent registration in CS 385; and credit or concurrent registration in CS 450 or consent of the instructor.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

590 Research Methods in Computer Science
4 hours. Introduces a variety of issues pertaining to doing research in computer science: exposure to methods in different areas of computer science; bibliographic search; producing research papers and oral presentations; evaluating the work of others; ethics. Satisfactory/Unsatisfactory grading only. Prerequisite(s): Open only to Ph.D. degree students; and consent of the instructor.

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.

595 Departmental Seminar
0 hours. Seminar by faculty and invited speakers. Satisfactory/Unsatisfactory grading only. May be repeated. Previously listed as EECS 595.

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.

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.

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.

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.


Information provided by the Office of Programs and Academic Assessment.

This listing is for informational purposes only and does not constitute a contract. Every attempt is made to provide the most current and correct information. Courses listed here are subject to change without advance notice. Courses are not necessarily offered every term or year. Individual departments or units should be consulted for information regarding frequency of course offerings.