Unless otherwise stated, the courses listed here involve 3 credits.
Unless otherwise stated, the courses listed here must be taken for an A-F grade.
Unless otherwise stated, a course from the list below cannot be repeated on a program of study.
CS 4104: Data and Algorithm Analysis
This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability. A grade of C or better required in CS prerequisite 2604 or 2606. Pre: (2604 or 2606), (MATH 3134 or MATH 3034).
CS 4114: Introduction to Formal Languages and Automata Theory
The course presents a study of formal languages and the correspondence between language classes and the automata that recognize them. Formal definitions of grammars and acceptors, deterministic and nondeterministic systems, grammar ambiguity, finite state and push-down automata, and normal forms will be discussed. Pre: MATH 3134 or MATH 3034.
CS 4124: Theory of Computation
Theoretical analysis of the computational process; fundamental concepts such as abstract programs, classes of computational machines and their equivalence, recursive function theory, unsolvable problems, Church's thesis, Kleene's theorem, program equivalence, and generability, acceptability, decidability will be covered. Pre: MATH 3134 or MATH 3034.
CS 4204: Computer Graphics
Hardware and software techniques for the display of graphical information. 2D and 3D geometry and transformations, clipping and windowing, software systems. Interactive graphics, shading, hidden surface elimination, perspective depth. Modeling and realism. A grade of C or better required in CS prerequisite 2604 or 2606. Pre: 2604 or 2606.
CS 4214: Simulation and Modeling
Overview of discrete-event digital computer simulation and modeling. Fundamentals of model development, Monte Carlo simulation, the life cycle of a simulation study, input and output data analysis, world views and time control, random number and variate generation, credibility assessment of simulation results, simulation languages, applications of simulation using the General Purpose Simulation System (GPSS). A grade of C or better required in CS prerequisite 1706. Pre: 1706, STAT 4714.
CS 4224: Performance Evaluation of Computer Systems
Overview of techniques for measuring, improving, and tuning the performance of computer systems. Procurement, workload characterization, measurement principles, the representation of measurement data, software and hardware monitors, capacity planning, bottleneck detection, system and program tuning, simulation and analytic models and their applications, case studies. Pre: 3204, (STAT 4714 or STAT 4105 or STAT 4705).
CS 4234: Parallel Computation
Survey of parallel computer architectures, models of parallel computation, and interconnection networks. Parallel algorithm development and analysis. Programming paradigms and languages for parallel computation. Example applications. Performance measurement and evaluation. A grade of C or better required in CS prerequisite 3204. Pre: 3204.
CS 4244: Internet Software Development
Key technology underlying the World-Wide Web. Web architecture, including server design, caching, network protocols, and related standards (e.g. http, SHTTP, TCP/IP, MIME). Programming systems (e.g. Java, Active-X, component models). Security and cryptography. Document representations (e.g. XML, HTML, PDF, VRML). Legal and social issues of the Web. A grade of C or better required in CS prerequisite 3204. Pre: 3204.
CS 4254: Computer Network Architecture and Programming
Introduction to computer network architecture, and methods for programming network services and applications (e.g. DNS, Email and MIME, http, SNMP, multimedia). Wired, wireless, and satellite network architectures. OSI protocol model, with an emphasis on upper layers. Congestion control, quality of service, routing. Internet protocol suite (e.g. IP, TCP, ARP, RARP). Server design (e.g. connectionless, concurrent). Network programming abstractions (e.g. XDR, remote procedure calls, sockets, DCOM). Case studies (e.g. TELNET). A grade of C or better required in CS prerequisite 3204. Pre: 3204.
CS 4264: Principles of Computer Security
Survey of computer security problems and fundamental computer security design principles and models for software systems. Cryptographic models and methods. Modern cyber security techniques for robust computer operating systems, software, web applications, large-scale networks and data protection. Privacy models and techniques. Contemporary computer and network security examples. Pre: 3214 or (ECE 2500 and ECE 3574), with grade of C or better.
CS 4304: Compiler Design and Implementation
This course includes the theory, the design, and the implementation of a large language translator system. Lexical analysis, syntactic analysis, code generation, and optimization are emphasized. A grade of C or better required in CS prerequisite 3204. Pre: 3204
CS/MATH 4414: Issues in Scientific Computing
Theory and techniques of modern computational mathematics, computing environments, computational linear algebra, optimization, approximation, parameter identification, finite difference and finite element methods and symbolic computation. Project-oriented course; modeling and analysis of physical systems using state-of-the-art software and packaged subroutines. Pre: MATH 2214, MATH 3214. (2H,3L,3C)
CS/ECE 4504: Computer Organization
Information representation and transfer; instructions and data access methods; the control unit and microprogramming; memories; input/output and interrupts; secondary storage; the von Neumann SISD organization; high level language machines; the RISC concept; special purpose processors including operating system, file, text, floating point, communication, etc. Multicomputers; multiprocessors; concurrent processing support; Pipeline machines, processor arrays, database machines; the data flow/data directed approach; computer networks. A grade of C or better required in CS prerequisite 3204. Pre: 3204.
CS/ECE 4570: Wireless Networks and Mobile Systems
Multidisciplinary, project-oriented design course that considers aspects of wireless and mobile systems including wireless networks and link protocols, mobile networking including support for the Internet Protocol suite, mobile middleware, and mobile applications. Students complete multiple experiments and design projects. Pre: 4254 or ECE 4564.
CS 4604: Introduction to Database Management Systems
Emphasis on introduction of the basic data base models, corresponding logical and physical data structures, comparisons of models, logical data design, and data base usage. Terminology, historical evolution, relationships, implementation, data base personnel, future trends, applications, performance considerations, data integrity. Senior standing required. A grade of C or better required in CS prerequisite 2604 or 2606. Pre: 2604 or 2606.
CS 4624: Multimedia, Hypertext, and Information Access
Introduces the architectures, concepts, data, hardware, methods, models, software, standards, structures, technologies, and issues involved with: networked multimedia (e.g., image, audio, video) information, access and systems; hypertext and hypermedia; electronic publishing; virtual reality. Coverage includes text processing, search, retrieval, browsing, time-based performance, synchronization, quality of service, video conferencing and authoring. Senior standing required. A grade of C or better required in CS prerequisite 2604. or 2606. Pre: 2604 or 2606.
CS 4634: Design of Information
Survey of the higher-order properties that allow data to become information, that is, to inform people. The course focuses on the design of user interface layouts, and on the design of texts and hypertexts, as well as on the information development process. Senior standing required. A grade of C or better required in CS prerequisite 2604 or 2606. Pre: 2604 or 2606.
CS 4704: Software Engineering
Introduction to the basic principles of software engineering. Issues in the software life cycle. Emphasis on methods for software design and testing. Project management and quality assurance. Significant software project required. A grade of C or better required in CS prerequisite 3704. Pre: 3704.
CS 4804: Introduction to Artificial Intelligence
Overview of the areas of problem solving, game playing, and computer vision. Search trees and/or graphs, game trees, block world vision, syntactic pattern recognition, object matching, natural language, and robotics. Senior standing required. A grade of C or better required in CS prerequisite 2604 or 2606. Pre: 2604 or 2606.