|
Catalog of Computer Science Courses
CS 111, Introduction to Computer Science and
Programming, 4 cr, 3 cl hrs, 3 lab hrs Corequisite: MATH 103 or equivalent Introduction to the discipline of computer science: Computer architecture, operating systems and networks, automata and models of computation, programming languages and compilers, data structures, algorithms, databases, security and information assurance, artificial intelligence, graphics, and social/ethical issues of computing. The lab will focus on an introduction to programming in a structured language (e.g., C): problem solving, algorithm development, top-down design, modular programming, control structures including selection, iteration and recursion, data types including arrays, strings, and dynamic structures. Concepts implemented through extensive programming using good programming style. (Same as IT 111)
CS 122, Algorithms and Data Structures,
3 cr, 3 cl hrs Prerequisite: CS 111 Fundamental data structures such as linked lists, trees, and hash tables. Algorithms for sorting, searching, and other fundamental operations. Introduction to recursive algorithms. (Same as IT 122)
CS 209, Programming Language Practicum, 1 cr, 3 lab hrs Prerequisite: knowledge of elementary programming A practical course teaching the use of a programming language of current interest. May be repeated for credit with different languages.
CS 221, Computer System Organization, 3 cr, 3 cl hrs Prerequisites: CS 122 The hardware/software interface. Basic organization of hardware and operating systems. Memories, buses, interrupts, input and output, and instruction set architecture. Programming in assembly language. (Same as IT 221)
CS 222, Systems Programming, 3 cr, 3 cl hr Prerequisite: CS 221
This course provides an introductory overview of operating systems
and system programming, mainly focusing on system-level programming
based on OS services and other APIs. Topics include
system calls, file I/O, files and directories, memory management,
process control, inter-process communication (IPC), socket-based
network programming, remote procedure call (RPC) programming, and
basic security mechanisms. Course work includes substantial
programming homework and team-based projects.
CS 324, Principles of Programming Languages, 3 cr, 3 cl hrs Prerequisite: CS 122 Introduction to the definition of syntax and semantics. Data types, control structures, concurrency, declarations, procedures. Recursion and recursive definitions. Procedural and data abstraction. Examples from current programming languages.
CS 325, Principles of Operating Systems, 4 cr, 3 cl hrs, 2 lab hrs Prerequisites: CS 221 and 222 Software I/O buffering. Discussion of concurrent processes, including mutual exclusion, synchronization, and deadlock. Processor scheduling, memory management, and resource control. Hoare's monitors. File systems. Each student is expected to design and implement a small operating system as a substantial portion of the course grade.
CS 326, Software Engineering, 3hrs
Prerequisite: CS 122
This course provides the introductory overview of software
engineering, concentrating on large-scale software system design and
implementation. Topics include software life cycle, UML-based design
language, design tools and techniques, design documentation,
software testing, and software project management. Course work
includes a team-based project. (Same as IT 326)
CS 328, Secure Software Construction, 3 cr, 2 cl hrs, 1 lab
hr Prerequisite:
CS 222 Formal methods and
practical techniques for the specification, design, implementation,
and validation of computer software. Current software engineering
and management practices, with
emphasis on ensuring software reliability, safety, and security.
Course work includes a team project to develop a sizeable, real
world application software. (Same as IT 328)
CS 331, Computer Architecture, 3 cr, 3 cl hrs Prerequisite: CS 221 Computer design fundamentals and hardware components: instruction set design, memory hierarchies, ALU's, control units, bus architectures, input and output, system design. Performance modeling and measurement.
CS 342, Formal Languages and Automata, 3 cr, 3 cl hrs Prerequisite: MATH 221 Regular expressions. Regular, context-free, context-sensitive and unrestricted grammars and languages. Finite and pushdown automata. Turing machines, recursive and recursively enumerable languages. Decidability and the halting problem.
CS 344, Design and Analysis of Algorithms, 3 cr, 3 cl hrs Prerequisites: CS 122; MATH 221 Interplay of data structures and algorithms. Time and space complexity of algorithms. Design paradigms and analysis techniques. Fundamental algorithms; combinatorial and graph algorithms; numerical algorithms. Introduction to the theory of NP-completeness.
CS 351,
Modeling and Simulation Technologies for Information Systems, 3 cr, 3cl hrs Prerequisites: CS 122; MATH 221
Fundamentals and techniques for designing and
using simulation, modeling, and optimization algorithms with
applications in system performance modeling, business infrastructure
modeling, and distributed and parallel computing. An introduction to
advanced complex systems models. (Same as IT 351)
CS 353, Data and Computer Communication, 3 cr, 3 cl hrs Prerequisites: CS 122, 221 Basic concepts of data communication. Transmission media (wireline and wireless) characteristics and utilization. Digital and analog data signaling, modulation, and coding. Signal and channel analysis. Concepts from information theory. Data multiplexing and switching. Connection-oriented vs. connectionless networking. Synchronous and asynchronous carriers (ATM, SONET/ SDH). Overview of the OSI vs. TCP/IP protocol stacks. The Internet protocol structure- ÒsubnetÓ and interfaces. Channel access and allocation. Examples of LAN, MAN, and WAN. Data link control, design issues, link management, error and flow control. Principles of internetworking: relays and protocols. (Same as IT 353)
CS 373, Introduction to Database Systems, 3 cr, 3 cl hrs Prerequisites: CS
122
Conceptual modeling and database design using the
entity-relationship model. The relational model; relational algebra
and relational query languages; design theory for relational
databases.
Database integrity. Physical data organization. Introduction to
problems of concurrency control, recovery, security, and distributed
databases. Course work includes a project using SQL and the
Oracle Database Management System. (Same as IT 373)
CS 382, Legal, Ethical, and Social Issues of Information Technology, 3 cr, 3 cl hrs Prerequisite: Upper-division standing in the CS or IT program; or consent
of instructor A survey of current legal IT (and general business and management) issues. Social and ethical issues associated with IT and management of secure information systems. (Same as IT 382)
CS 391, Directed Study, cr and topics arranged
CS 423, Compiler Writing, 4 cr, 3 cl hrs, 2 lab hrs Prerequisites: CS 324, 342, 344. Corequisite: CS 331 Implementation of compilers for higher level computer languages including: parsing, symbol table management, code emission, and code optimization. Each student implements a small compiler and designs an optimizing compiler as a substantial portion of the course grade. Individual and group projects. Practice in developing software requirement, specification, design, and test plan documents.
CS 441, Cryptography and Applications, 3 cr, 3 cl hrs Prerequisites: CS 122; MATH 221 Basic theory of encryption and decryption. The RSA algorithm and the public/private key system. Cryptography systems in use for Internet and business applications. (Same as IT 441)
CS 451, Introduction to Parallel Processing, 3 cr, 3 cl hrs Prerequisites: CS/IT 222,
CS 344 Introduction to supercomputers and massively-parallel machine architecture, models of parallel computation, parallel algorithms, synchronization, parallel languages, data and functional parallelism, parallel performance analysis, popular interfaces, and parallel debugging. Students will gain experience in parallelization of sequential algorithms and implementation of parallel algorithms. (Same as IT 451)
CS 453, Computer Networks and the Internet, 3 cr, 3 cl hrs Prerequisite: CS 353 Layering of protocols (ISO, ITU and TCP/IP stacks) and network architectures. Fiber optics technology and high speed networks. Internetworking: global addresses/names and translation, virtual networks and tunnels, routing, subnetting, IPv6, multicasting. Mobile IP. End-to-end protocols, TCP and UDP. Congestion control and resource allocation. Socket interfacing, client-server and API. The QoS mechanism integrated/differentiated), ATM QoS. Network security: information and link security, encryption, internetworking security, IPsec, firewalls, VPN, wireless security. (Same as IT 453)
CS 454, Computer Graphics, 3 cr, 3 cl hrs Prerequisites: CS 222; MATH 254 Design and implementation of visual interfaces. Graphics input and output hardware, display programming, 2-D transformations, approximation techniques for curve and surface representation. Introduction to the creation of 3-D computer-generated images, color theory, lighting and shading.
CS 463, Information Assurance, 3 cr, 3 cl hrs Prerequisite: Senior standing Defense and offensive information warfare. Information system security. Computer break-ins, hacking, and other attack methods. Vulnerability and risk analysis. Theory and applications of cryptography. Intrusion detection and incident response. Security planning and management. (Same as IT 463)
CS 464, Introduction to Soft Computing, 3 cr, 3 cl hrs Prerequisites: CS 344; MATH 382 Major types of artificial neural networks. Fuzzy logic theory and fuzzy systems construction. Genetic algorithms and evolutionary computing. Intelligent systems and engineering applications. Comparative study of the soft computing paradigm as a problem solving methodology.
CS 476, Visualization, 3 cr, 3 cl hrs
Prerequisite: CS 222
or consent of instructor
This course presents application of graphical visualization to
current problems, with a focus on extracting and representing
information in multidimensional data sets using 2D and 3D graphics.
Topics include visualization tools and techniques, human vision and
perception, color mapping, sound, data representation for insight
extraction, time visualization, visual analytics, volume
rendering, surface extraction and rendering. Students will develop
visualizations of real world problems. (Same as IT 476)
CS 489, Special Topics in Computer Science, 3 cr, 3 cl hrs
Prerequisite: CS222 and consent of instructor
Undergraduate special topics in computer
science.
CS 491, Directed Study, cr and topics arranged
Can not be used toward graduation.
CS 523, Advanced Compiler Writing, 3 cr, 3 cl hrs Prerequisite: CS 423 Advanced topics in compilation, such as theory of parsing, error recovery, optimization, semantics- directed translation, and hardware independent and hardware-specific code generation.
CS 525, Advanced Operating Systems, 3 cr, 3 cl hrs Prerequisites: CS 325 and 331; or consent of instructor Advanced topics in operating systems such as real-time, distributed systems, fault-tolerance, parallel I/O, performance, safety-critical systems, and verification.
CS 528, Formal Methods in Software Development, 3 cr, 3 cl hrs Prerequisites: CS 342; CS 325 or 328 or 423 or equivalent experience Use of mathematics, logic, and computer science theory in software development. Formal specifications; systematic development of programs from specifications. Correctness proofs and other analysis techniques.
CS 531, Advanced Computer Architecture, 3 cr, 3 cl hrs Prerequisite: CS 331 Advanced topics in computer architecture.
CS 542, Advanced Formal Language Theory, 3 cr, 3 cl hrs Prerequisite: CS 342 Extensive study of context-sensitive and recursively enumerable languages; closure properties, decidability, and ambiguity of various language classes. Special topics as time permits.
CS 544, Analysis of Algorithms, 3 cr, 3 cl hrs Prerequisite: CS 344 Analysis of correctness and complexity of asymptotically efficient algorithms. Set partitioning, dominators of dags (with applications in code optimization), Strassen's matrix multiplication algorithm, FFT, Schonnage-Strassen integer multiplication algorithm, pattern matching, NP complete problems (both time and space), lower bounds. Discussion of problems for which no efficient algorithms exist.
CS 546, Theory of Computation, 3 cr, 3 cl hrs Prerequisite: CS 342 Effective computability of functions and sets in terms of Turing machines and other computational models. Universal machines and examples of unsolvable problems. The Church-Turing thesis and formal proofs of the equivalence of Turing machines, systems of recursion equations, and other models of computation. Mathematical properties of the classes of recursive functions. Recursive and recursively enumerable sets.
CS 551, Advanced Parallel Processing, 3 cr, 3 cl hrs Prerequisites: CS 452; or consent of instructor This course focuses on the application of models of parallel computation, parallel algorithms, synchronization, parallel languages, parallel performance analysis, and parallel debugging to large problems and complex systems. Topics include: integrating data and shared memory parallelism, multilevel domain decompositions, portability, and scalability. Student will parallelize and analyze the performance of a complex system or application.
CS 553, Advanced Computer Networks, 3 cr, 3 cl hrs Prerequisite: CS 453 Models of computer networks. Design and analysis issues. Abstract syntax notation, data compression, security and authentication. Recent developments in the field.
CS 563, Computational Logic, 3 cr, 3 cl hrs Prerequisites: CS 342
or MATH 452; elementary knowledge of LISP Mechanical theorem proving using resolution, natural deduction, and other methods. Proofs and models; methods for first-order predicate calculus, integer arithmetic, and other theories,
and applications.
CS 565, Neural Nets, 3 cr, 3 cl hrs Prerequisites: CS 344; MATH 254 and 382; or consent of instructor Neuron modeling. The perceptron and multilayer perceptrons. Learning algorithms. The Kohonen model, the Grossberg model, the Hopfield model. Associative memory. Applications. Recent developments in the field. (Same as MATH 505)
CS 567, Soft Computing, 3 cr, 3 cl hrs Prerequisites: MATH 254, 382; CS 344 or equivalent, or consent of instructor Artificial neural networks, with emphasis on multiplayer feedback networks, self-organizing networks, and Hopfield-style networks. Learning algorithms. Introduction to fuzzy systems and evolutionary computing. Engineering applications of soft computing. (Same as EM 567)
CS 568, Intelligent Systems, 3 cr, 3 cl hrs
Prerequisites: MATH 254, 382; CS 344 or equivalent, or consent of instructor Overview of the major paradigms of soft computing: neural networks, fuzzy systems, and evolutionary computing. In-depth coverage of selected topics in each area as relevant to intelligent systems. Recent advances in the field, and case studies of intelligent systems. Coursework includes a large-scale project. (Same as EM 568)
CS 569: Embedded Systems Design, 3 cr, 3 cl hrs
Prerequisites: consent of instructor
Hardware/software systems and co-design. Embedded processor
architecture and programming. Models of computation for embedded
systems. Behavioral design. OS primitives for
concurrency, timeouts, scheduling, communication and
synchronization. Architecture selection. Simulation, synthesis, and
verification. Hardware/software implementation. Performance
analysis and optimization. Application-level embedded system design
concepts such as basic signal processing and feedback control.
Design methodologies and tools. Design examples and case studies.
CS 570: Real-Time Systems, 3 cr, 3 cl hrs
Prerequisites: consent of instructor
Classification of real-time systems. Fundamental theorems and
corollaries of deadline and fixed priority real-time scheduling
techniques. Schedulability analysis. Scheduling techniques to
guarantee an array of timing requirements. Implementation of a set
of tasks with periodic and aperiodic timing requirements. Execution
time estimation of a piece of code. Modification of
scheduling algorithms in a real-time kernel. Performance evaluation
of an operating system for realtime applications.
CS 573, Database and Knowledge-base Systems, 3 cr, 3 cl hrs
Prerequisites: CS 373; MATH 221 Databases, object bases, and knowledge bases. Data models. Logical foundations of database and knowledge-base systems. Query optimization. Selected topics from current research.
CS 576, Advanced Visualization, 3 cr, 3 cl hrs
Prerequisites: consent of instructor
This course presents application of graphical
visualization to large problems and complex systems, with a focus on
extracting and representing information in multidimensional data
sets using
2D and 3D graphics. Topics include visualization tools and
techniques, human vision and perception, color mapping, sound, data
representation for insight extraction, time visualization, visual
analytics, volume rendering, surface extraction and rendering.
Students will perform visual analytics research for large problems
and/or complex systems.
CS 581, Directed Study, cr to be arranged
CS 585, Graduate Seminar, 3 cr
CS 588, Special Topics in Computer Science, 3 cr, 3 cl hrs
Prerequisites: Two semesters of upper
division courses in computer science and consent of instructor.
Graduate special topics in computer science.
CS 590, Independent Study, cr to be arranged
Under the direction of a faculty member appointed by the department, the student shall prepare a paper making use of standard reference sources on some topics not covered by other course work.
CS 591, Thesis (master's program), cr to be arranged
CS 595, Dissertation (doctoral degree program), cr to be arranged
|