Courses
Course Descriptions
CS 100 Computer Literacy 3 Hours. No graduation credit for students enrolled in a major offered by the Departments of Computer Science or Electrical and Computer Engineering. Introduction to computing; the Internet; Web; file systems; electronic mail; basic tools (such as editors, databases); programming concepts; computer ethics; security and privacy. Computer lab. Prerequisite: NONE
CS 101 Introduction to Computing 3 Hours. Introduction to computing resources and tools. Computer access, security, and responsibility. Navigation and communication. Networks; Internet resources. Applications. Programming languages, concepts and practice. Programming exercises. Prerequisite: NONE
CS 102 Introduction to Programming 3 Hours. Programming languages and program design; data types and operators, expressions, control structures, procedures and modularity. Language definition and programming laboratory. Prerequisite:
CS 101 or consent of the instructor and credit or concurrent registration in Math 180.
CS 107 Introduction to Computing and Programming 4 Hours. Credit is not given for CS 107 if the student has credit in CS 101 or CS 102. Access and use of computing resources. Programming and program design. Problem solving. Data types, control structures, modularity, information hiding. Prerequisite: Credit or concurrent registration in Math 180.
CS 108 FORTRAN Programming for Engineers 3 Hours. Program design using FORTRAN: data types and operators; control structures; subprograms, file I/O; common storage. Engineering applications: matrix representations and operations; equation solutions Prerequisite: Credit or concurrent registration in Math 180.
CS 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: Credit or concurrent registration in Math 180.
CS 201 Data Structures and Discrete Mathematics I 4 Hours. Credit is not given for CS 201 if the student has credit in MCS 261. Lists, stacks, queues, sets, hash tables, introduction to trees and graphs. Algorithm correctness and complexity, inductive proofs, logic. Programming projects. Prerequisite: Math 180 and a grade of C or better in
CS 102 or in
CS 107CS 202 Data Structures and Discrete Mathematics II 3 Hours. Combinatorics; complex data structures: trees, heaps, and graphs. Sorting and searching algorithms. Programming projects. Prerequisite: Grade of C or better in
CS 201CS 266 Computer Architecture I: Logic and Computer Structures 4 Hours. Credit is not given for CS 266 if the student has credit in ECE 265 or ECE 267 or ECE 366. 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. Prerequisite:
CS 102
CS 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. Prerequisite: Grade of C or better in
CS 201 and credit or concurrent registration in
CS 202CS 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. Prerequisite:
CS 202CS 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. Prerequisite:
CS 202CS 366 Computer Architecture II: Hardware-Software Interface 4 Hours. Credit is not given for CS 366 if the student has credit in ECE 265 or ECE 267 or ECE 366. 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. Prerequisite:
CS 266CS 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: Engl 161 and
CS 102CS 385 Operating Systems Concepts and Design 4 Hours. Operating systems issues, operations. Process execution, scheduling; memory management, virtual memory design; concurrent process coordination, properties: deadlock, mutual exclusion synchronization primitives; distributed systems issues; network design. Prerequisite:
CS 201 and either
CS 366 or ECE 267
CS 398 Undergraduate Design/Research 3 Hours. Undergraduate Design/Research Prerequisite: Consent of the instructor
CS 401 Computer Algorithms I 3 Hours. Same as Mathematical Computer Science 401. 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. Prerequisite: Grades of C or better in Stat 381 and MCS 360; or
CS 202CS 411 Artificial Intelligence I 3 Hours. Problem representation; rule-based problem-solving methods; heuristic search techniques. Application to expert systems, theorem proving, language understanding. Individual projects. Prerequisite:
CS 202CS 415 Computer Vision I 3 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. Prerequisite:
CS 202 or MCS 360 or consent of the instructor
CS 421 Natural Language Processing 3 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. Prerequisite:
CS 301 or MCS 441
CS 422 User Interface Design and Programming 3 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. Prerequisite:
CS 340CS 426 Video Game Design and Development 3 Hours. Interdisciplinary teams will design, develop and demonstrate real-time interactive applications such as video games and computer-based museum installations. Topics will focus on emerging computer science techniques that are relevant to the development of these types of environments. Prerequisite:
CS 107 and
CS 201CS 440 Introduction to Software Engineering 3 Hours. Software life-cycle model, requirement specification techniques, large-scale software design techniques and tools, implementation issues, testing and debugging techniques, software maintenance. Prerequisite:
CS 340CS 441 Distributed Object Programming Using Middleware 3 Hours. Extensive computer use required. Design and implementation of distributed object programs using middleware software standards; interface definition languages and programming language mappings; static and dynamic object communication mechanisms. Prerequisite:
CS 340 and
CS 385CS 442 Software Engineering II 3 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:
CS 440CS 450 Introduction to Networking 3 Hours.
Course Wiki. Credit is not given for CS 450 if the student has credit in ECE 433. Network protocols, algorithms, and software issues. Topics include the open systems interconnect model, data link, network and transport layers, TCP/IP, ATM, mobile networks. Prerequisite:
CS 202 and
CS 385, and either Stat 381 or Stat 401 or IE 342
CS 455 Design and Implementation of Network Protocols 3 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. Prerequisite:
CS 340 and
CS 450CS 466 Advanced Computer Architecture 3 Hours. Credit is not given for CS 466 if the student has credit in ECE 466. Design of high performance computer architecture. Cost-performance; instruction sets; pipelining; memory hierarchy; I/O. Prerequisite:
CS 366CS 469 Computer Systems Design 3 Hours. Credit is not given for CS 469 if the student has credit in ECE 368 or ECE 469. Analysis and modeling of digital systems; hardware description languages; CAD tools for simulation, synthesis, and verification of computer systems. Project: a simple processor design. Prerequisite:
CS 366CS 473 Compiler Design 3 Hours. Same as Mathematical Computer Science 411. Language translation: lexical analysis, parsing schemes, symbol table management, syntax and semantic error detection, and code generation. Development of fully-functional compiler. Prerequisite: Grade of C or better in either
CS 301 or MCS 441, and in either
CS 202 or MCS 360 and
CS 266CS 474 Object-Oriented Languages and Environments 3 Hours. Data abstraction, classes and objects, messages and methods, polymorphism and dynamic binding, inheritance. Object-oriented design. Pure and hybrid object-oriented languages. Prerequisite:
CS 340CS 476 Programming Language Design 3 Hours. Same as Mathematical Computer Science 415. 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. Prerequisite: MCS 261 and MCS 275; or
CS 340CS 480 Database Systems 3 Hours. Database design, logical design, physical design. Relational, hierarchical and network databases. Recovery, concurrency control. Normalization. Prerequisite:
CS 202CS 485 Networked Operating Systems Programming 4 Hours. Concepts, design, and programming of multi-process and distributed systems; inter-process communications; fault tolerance; distributed programming semantics. Programming assignments and project required. Prerequisite:
CS 385CS 487 Building Trustworthy Computing Systems 3 Hours. Introduction to computer security. Techniques for secure programming of systems (avoiding stack smashing attacks, race conditions). Security and privacy issues in existing host systems including viruses, worms, sandboxing. Network security including TCP/IP security, firewalls and intrusion detection. Prerequisite:
CS 385;
CS 450 Recommended
CS 488 Computer Graphics I 3 Hours. Same as Art and Design 488. Principles of interactive computer graphics. Raster and vector display, techniques and hardware considerations. Introduction to two-dimensional and three dimensional rendering. Laboratory. Prerequisite: Credit or concurrent registration in
CS 340CS 491 Seminar 4 Hours. May be repeated for credit. Topics of mutual interest to a faculty member and a group of students. Offered as announced by department bulletin or the Timetable Prerequisite: Consent of the instructor.
In Fall 2009 there will be a Seminar in Visualization and Visual Analytics.
CS 493 Special Problems 4 Hours. No graduate credit for computer science majors. Special problems or reading by special arrangement with the faculty. Prerequisite: Consent of the instructor
CS 501 Advanced Algorithms 4 Hours. Same as MCS 501. Continuation of CS 401 (same as MCS 401). Advanced topics in algorithms. Lower bounds. Union-find problems. Fast Fourier transform. Complexity of arithmetic, polynomial, and matrix calculations. Approximation algorithms. Parallel algorithms. Prerequisite:
CS 401CS 502 Design and Analysis of Efficient Algorithms in Computational Biology 4 Hours. Sequence alignment, motifs, RNA structure and protein secondary structure from sequence, phylogeny reconstruction, haplotype problem, gene expression, biological networks, pedigree and kinship reconstruction. Prerequisite:
CS 401CS 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. Prerequisite: Consent of the instructor
CS 505 Automata Theory 4 Hours. Turing machines, undecidability, Rice's theorem, recursively enumerable sets, complexity theory, hierarchy theorems, alternation, parallel complexity classes, complete problems. Prerequisite:
CS 301CS 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. Prerequisite:
CS 411CS 513 Logic Programming 4 Hours. Logic programming theory and its application to databases, knowledge representation and knowledge bases. Prerequisite:
CS 480 or
CS 411 or consent of the instructor
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. Prerequisite:
CS 411CS 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 in robotics and industrial environments. Prerequisite:
CS 415CS 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:
CS 421; or consent of the instructor.
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. Prerequisite:
CS 422CS 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. Prerequisite:
CS 422 or consent of the instructor.
CS 525 Graphics Processing Unit (GPU) Programming 4 Hours.
course website. Graphics Processing Unit (GPU) Programming languages, vertex shaders, fragment shaders, general purpose computing on GPUs. Prerequisite:
CS 488 or consent of the instructor.
CS 526 Computer Graphics II 4 Hours.
course website. Same as AD 588. State of the art in computer graphics, visualization, and interactive techniques. Prerequisite:
CS 488 or consent of the instructor.
CS 527 Computer Animation 4 Hours.
course website. Theoretical and practical aspects of computer animation: keyframing, kinematics, simulation, and motion capture. Prerequisite:
CS 488 or consent of the instructor.
CS 528 Virtual Reality 4 Hours.
course website. Principles of virtual reality and virtual environments: hardware, software, input and control devices, design issues, quantitative assessment of user performance. Prerequisite:
CS 488 or consent of the instructor.
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. Prerequisite:
CS 440 or consent of the instructor
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. Prerequisite:
CS 540 or consent of the instructor
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. Prerequisite:
CS 440CS 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 about security properties and real-time properties. Automated and manual techniques for checking correctness. Prerequisite: Consent of the instructor
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. Prerequisite:
CS 366 and
CS 385CS 554 Concurrent Computing Systems 4 Hours. Petri nets, methods and their applications to concurrent, distributed, parallel, and data-flow systems; logic programming and rule-based systems. Prerequisite: Consent of the instructor
CS 559 Neural Networks 4 Hours. Artificial neural networks for parallel computing including perceptrons, backpropagation and Kohonen nets, statistical methods in neural computing, Hopfield nets, associative memories, cognition and neocognition. Prerequisite: Consent of the instructor
CS 565 Algorithms for VLSI Physical Design 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. Prerequisite:
CS 401 and
CS 466CS 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. Prerequisite:
CS 466CS 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. Prerequisite:
CS 466CS 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. Prerequisite:
CS 385,
CS 480 and knowledge of C++, or consent of the instructor.
CS 580 Query Processing in Database Systems 4 Hours. Same as IDS 511. Query processing in deductive databases and in distributed/parallel databases systems. Prerequisite:
CS 480CS 581 Database Management Systems 4 Hours. Concurrency control; reliability, recovery, data integrity, database machines and current topics. Prerequisite:
CS 480CS 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. Prerequisite:
CS 480CS 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:
CS 401. Recommended background: Algorithm Probability.
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:
CS 480CS 587 Computer Systems Security 4 Hours. Security of computer systems, including security definitions, models, and properties; structure of computer systems and its interaction with computer security; authentication; errant programs; access control models; and covert channels. Prerequisite: Consent of the instructor.
CS 588 Security and Privacy in Networked and Distributed Systems 4 Hours. Security and privacy in networked and distributed systems including applied cryptography; network security protocols for authentication, confidentiality and integrity; distributed denial of service attacks and defenses; distributed authentication architectures; and privacy and anonymity. Prerequisite: Consent of the instructor
CS 594 Special Topics 4 Hours. May be repeated for credit. Students may register for more than one section per term. Subject matter varies from term to term and section to section, depending on the specialties of the instructor. Prerequisite: Consent of the instructor
CS 595 Departmental Seminar 0 Hours. May be repeated. S/U grade only. Seminar by faculty and invited speakers. Prerequisite: NONE
CS 596 Individual Study 4 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. Individual study or research under close supervision of a faculty member. For CS majors only. Prerequisite: Consent of the instructor
CS 597 Project Research 9 Hours. S/U grade only. Students may register for more than one section per term. For CS majors only. A research design or reading project approved by the committee appointed by the director of graduate studies. Prerequisite: Consent of the instructor
CS 598 M.S. Thesis Research 16 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. For CS majors only. MS thesis work under the supervision of a graduate advisor. Prerequisite: Consent of the instructor
CS 599 Ph.D. Thesis Research 16 Hours. S/U grade only. May be repeated for credit. Students may register for more than one section per term. For CS majors only. PhD thesis work under supervision of a graduate advisor. Prerequisite: Consent of the instructor
IT 101 Java Programming for Information Technology 3 Hours. Elementary data types, arithmetic & logical operations, control structures & error handling, methods & functions, introduction to object-oriented programming design & implementation. Emphasis is placed on the development of problem-solving skills. Prerequisite: NONE
IT 201 Introduction to Computer Configuration and Operating System Software 3 Hours. Introduction to concepts of computer configuration, and OSS. Comparisons of commercially available CPU families, peripherals, system performance and evaluation. Discussions of technological developments and commercially available systems. Prerequisite: NONE
IT 202 Web and Multimedia Programming 3 Hours. Introduction to internet, multimedia concepts, protocols, and tools. HTML document markup language. Web site design. Script programming for interactive web pages. Creating, editing images, video, and audio for internet use. Programming exercises. Prerequisite: NONE
IT 301 Networks and Distributed Computing 3 Hours. Introduction to the use of computers on a network. Installation and configuring of networking components: Firewalls, nameserver and gateways. Use of both wired and wireless networks. Prerequisite: NONE
IT 302 Database Administration and Installation 3 Hours. A study of the use of existing databases (bibliographic and non-bibliographic formats), their data structure, processing and retrieval data, integrity and security, and interface design issues. Prerequisite: NONE