Computer Science Course Catalog


CSE 101, Introduction to Computer Science and Information Technology, 2 cr, 2 cl hrs

Usually offered in both Fall and Spring semesters.
Description: Brief overview of the discipline of computer science and information technology topics including computer architecture, operating systems and networks, automata and models of computation, programming languages and compilers, algorithms, databases, security and information assurance, artificial intelligence, graphics, and social/ethical issues of computing. (Same as IT 101)


CSE 107, Introduction to Computer Programming using Python, 4 cr, 3 cl hrs, 2 lab hrs

Corequisite: Math 103
Usually offered in the Fall semester.
Description: The course is designed to introduce programming and its applications to scientists and engineers. The first part of the class focuses on problem solving, algorithm development, top-down design, modular programming, debugging, testing, data types, flow-control, looping, iteration and recursion, fundamental data structures, and an introduction to object oriented programming. The second part of the class explores data analysis with Python. (Same as IT 107)


CSE 113, Introduction to Programming, 4 cr, 3 cl hrs, 3 lab hrs

Corequisite: MATH 131
Usually offered in both Fall and Spring semesters.
Description: The course is designed to introduce problem solving and programming in C to Computer Science majors and those interested in applications of the language that involve dynamic structures and memory management. Topics include algorithm development; top-down design; modular programming; debugging; testing; control structures including selection, iteration and recursion; number systems; data representation; data types including arrays, strings, pointers and dynamic structures involving memory management. Concepts implemented through extensive programming using good programming style. (Same as IT 113)


CSE 122, Algorithms and Data Structures, 3 cr, 3 cl hrs

Prerequisite: CSE 113
Corequisite: MATH 132
Usually offered in both Fall and Spring semesters.
Description: Fundamental data structures including linked lists, trees, hash tables, and graphs. Algorithms for sorting, searching, and other fundamental operations. Introduction to mathematical foundations for analysis of iterative and recursive algorithms and for bask correctness proofs. Analysis of algorithms. Implementation of selected algorithms using sound programming methodologies. (Same as IT 122)


CSE 209, Programming Language Practicum, 1 cr, 3 lab hrs

Prerequisite: Knowledge of elementary programming and CSE 101
Description: A practical course teaching the use of a programming language of current interest. May be repeated for credit with different languages.


CSE 213, Introduction to Object Oriented Programming, 3 cr, 3 cl hrs

Prerequisite: CSE 101, 113, 122
Usually offered in the Spring semester.
Description: Introduction to programming in an object oriented language (e.g., Java): review of problem solving, algorithm development, top-down design, modular programming, debugging, testing, control structures including selection, iteration and recursion, data types including arrays, strings, pointers, and dynamic structures. Object oriented concepts will include: objects, classes, inheritance, instances, methods, interfaces, packages, encapsulation, and polymorphism. Concepts implemented through extensive programming using good programming style. (Same as IT 213)


CSE 221, Computer System Organization, 3 cr, 3 cl hrs

Prerequisite: CSE 101, 122
Usually offered in the Fall semester.
Description: 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)


CSE 222, Systems Programming, 3 cr, 3 cl hrs

Prerequisite: CSE 101, 122
Usually offered in the Spring semester
Description: 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.


CSE 241, Foundations of Computer Science, 3 cr, 3 cl hrs

Prerequisite: CSE 101, Math 132
Usually offered in the Fall semester
Description: Propositional and predicate logic. Analytic reasoning and mathematical proofs. Abstraction, iteration, recursion, and induction. Fundamental discrete structures. Basic concepts of algorithms, formal languages, and computation.


CSE 321, Internet and Web Programming, 3 cr, 3 cl hrs

Prerequisite: CSE 213
Description: This course has a practical emphasis on the design and techniques for developing internet-based applications, mainly focusing on web programming. Topics include HTML, client-side scripting language (JavaScript), server-side programming (e.g., Servlets, JSP, and J2EE), and XML/web services (e.g., Java and .NET). This course will also cover some important topics needed for internet-based application developments, such as Internet architectures, basic object-oriented programming (OOP) concepts, and web security. Course work includes substantial programming homework and team-based projects. (Same as IT 321)


CSE 324, Principles of Programming Languages, 3 cr, 3 cl hrs

Prerequisite: CSE 122
Usually offered in the Spring semester.
Description: Introduction to low (micro/macro) and high level languages (L/HLLs) — features and positions within the computer system. definition of HLLs of syntax and semantics. Data types, control structures, concurrency, declarations, procedures. Recursion and recursive definitions. Procedural and data abstraction. Critique of major programming languages features and design issues (e.g., power, efficiency, security, modularity, readability, etc).Examples from major realms of current programming languages — imperative (block structured, object oriented), declarative (function, logic) paradigms.


CSE 325, Principles of Operating Systems, 4 cr, 3 cl hrs, 3 lab hrs

Prerequisite: CSE 221 and 222
Usually offered in the Fall semester.
Description: This course provides an introduction to the fundamentals of operating systems and their components. Topics include processes and threads, process scheduling, process synchronization, deadlocks, memory management, file systems, storage systems, I/O systems, security and protection, and introduction to distributed systems. Each student is expected to design and implement components of a small operating system.


CSE 326, Software Engineering, 3 cr, 3 cl hrs

Prerequisite: CSE 122, 213

Prerequisite/Co-requisite: ENGL 341

Usually offered in the Spring semester.
Description: This course provides an 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, secure software construction, and software project management. Course work includes a team-based project. (Same as IT 326)


CSE 328, Secure Software Construction, 3 cr, 2 cl hrs, 1 lab hr

Prerequisite: CSE 222, CSE 213
Description: 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)


CSE 331, Computer Architecture, 3 cr, 3 cl hrs

Prerequisite: CSE 221
Usually offered in the Spring semester.
Description: The course introduces the fundamentals of modern computer architecture and design. Topics include instruction set architectures, pipleling, memory hierarchies, instruction-level parallelism, introduction to distributed and parallel computing, and performance modeling and measurements.


CSE 342, Formal Languages and Automata, 3 cr, 3 cl hrs

Prerequisite: CSE 241

Prerequisite/Co-requisite: MATH 352
Usually offered in the Spring semester.
Description: 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.


CSE 344, Design and Analysis of Algorithms, 4 cr, 3 cl hrs, 1 lab hr

Prerequisite: CSE 122, CSE 241; MATH 352
Usually offered in the Fall semester.
Description: Asymptotic complexity of algorithms. Analysis of iterative and recursive algorithms; amortized analysis. Design paradigms: greedy and dynamic programming approaches. Interplay of data structures and algorithms. Graph algorithms. Introduction to the theory of complexitity classes and NP–completeness.


CSE 351, Modeling and Simulation Technologies for Information Systems, 3 cr, 3cl hrs

Prerequisite: CSE 122; CSE 241
Description: 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)


CSE 353, Introduction to Computer Networks, 3 cr, 3 cl hrs

Prerequisite: CSE 222
Usually offered in the fall semester.
Description: Introduction to computer networking, the ISOOSI protocol stack, LAN, MAN, and WAN. Physical layer: transmission media (wireline and wireless); data signaling, modulation, and coding; multiplexing. Fiber optics networking technology: protocols & examples. Data link Layer: error/flow control– protocols design issues; MAC protocols for channel access and allocation. Wireless technology and protocols standards ‐‐ IEEE 802.11 physical layer and MAC sublayer protocols. Network layer: subnet switching (CS/DG/VC) & routing protocols (Non/Adaptive); Congestion Control and QoS protocols. ISO vs. (TCP-UDP)/IP the Internet protocol stacks. Internet relays and protocols, e.g., routers, gateways, etc. Introduction to network security. Application layer protocols, e.g., DNS, E-mail, etc. (Same as IT 353)


CSE 373, Introduction to Database Systems, 3 cr, 3 cl hrs

Prerequisite: CSE 122, CSE 241
Description: 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. Non-relational models such as NoSQL and graph databases. Introduction to concurrency control and recovery. Course work includes a project using SQL and the Oracle Database Management System. (Same as IT 373)


CSE 382, 382D, Ethical and Social Implications of Computing and Information Technology, 3 cr, 3 cl hrs

Prerequisite: CSE 326
Usually offered in the Fall semester
Description: Philosophy of ethics. Social and ethical issues associated with computing and information technologies. Ethics and the responsibilities of computing professionals. Legal ramifications will be explored whenever possible. (Same as IT 382)


CSE 391, Directed Study, cr and topics arranged


CSE 423, Compiler Writing, 4 cr, 3 cl hrs, 3 lab hrs

Prerequisite: CSE 342 with a grade of a C or higher; CSE 324, 326, 344
Corequisite: CSE 331
Usually offered in the Spring semester.
Description: 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.


CSE 441, Cryptography and Applications, 3 cr, 3 cl hrs (Same as IT 441)

Prerequisite: CSE 122, CSE 241
Description: This course provides an introductory overview of modern cryptographic theory and techniques, mainly focusing on their application into real systems. Topics include number theory, probability and information theory, computational complexity, symmetric and asymmetric cryptosystems, one-way functions, block and stream ciphers, Kerberos authentication systems, public key infrastructure (PKI), secure socket layer/transport layer security (SSL/TLS), and cryptographic protocols/applications in many real systems. (Same as IT 441)


CSE 451, Introduction to Parallel Processing, 3 cr, 3 cl hrs

Prerequisite: CSE 122
Description: 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)


CSE 452, Introduction to Sensor Networks, 4 cr, 3 cl hrs, 2 lab hrs

Prerequisite: CSE 325 and CSE 353, or consent of instructor
Description: Introduction to sensory technology with special focus on wireless sensor networks (WSNs) applications, topologies, deployment, sensed data manipulation, mobile ad-hoc wireless communication, security. Low power consumption and data rates WSNs protocols (e.g., ZigBee/IEEE808.15.4). Students will get familiar with sensor nodes’ hardware (motes and sensor boards) and programming (TinyOS and ZigBee application objects) via a set of practical lab/field experiments that covers the design, implementation, deployment, and data collection/analysis of some actual WSNs data/vent acquisition systems (e.g., environment monitoring, remote asynchronous event detection–forest fire, border intrusion, tsunami, earthquake, volcanic activities, etc).


CSE 453, Advances in Computer Networks and the Internet, 3 cr, 3 cl hrs

Prerequisite: CSE 353
Description: In depth coverage of layering protocols’ stacks (ISOOSI and TCP/IP) and computer networks architectures, modern examples of LANs, MANs, WANs protocols/architectures Recent developments in Fiber optics technology– protocols and architectures. high speed “all-fiber-optics” networks. Internetworking: global addresses/names and translation, virtual networks and tunnels, routing, subnetwork switching protocols, IPv6, multicasting. Mobile IP. End-to‐end protocols, TCP and UDP. Advances in Congestion control and resource allocation. Client‐server models & applications. . The QoS mechanism integrated/differentiated), ATM QoS. Network security: information and link security, encryption, internetworking security, IPsec, firewalls, VPN, wireless security. Analysis of networks protocols. (Same as IT 453)


CSE 454, Computer Graphics, 3 cr, 3 cl hrs

Prerequisite: CSE 213, 222; MATH 254
Description: 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.


CSE 463, Information Assurance, 3 cr, 3 cl hrs

Prerequisite: Senior standing
Description: 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)


CSE 464, Introduction to Soft Computing, 3 cr, 3 cl hrs

Prerequisite: CSE 344; MATH 382
Description: 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.


CSE 476, Visualization, 3 cr, 3 cl hrs

Prerequisite: CSE 122 or consent of instructor
Description: 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)


CSE 485 Undergraduate Seminar on Special Topics. 3cr, 3cl hrs.

Prerequisite: Senior standing, one semester of upper division courses in computer science, and consent of the instructor.
A research seminar for undergraduate students with a focus either on special topics in computer science or on the methodology and skills required for research in computer science. This class use as a technical elective is limited (see requirements above), but it may be taken multiple times as general elective.


CSE 489, Special Topics in Computer Science, 3 cr, 3 cl hrs

Prerequisite: CSE 213, 222 each with a grade of a C or high, consent of instructor, and junior standing
Description: Undergraduate special topics in computer science. For a list of recent offerings, please visit the department’s website.


CSE 491, Directed Study, cr and topics arranged

Description: Can not be used toward graduation.


CSE 500, Directed Research, cr and topics arranged

Description: This course may not be used to fulfill graduate degree requirements. Research under the guidance of a faculty member.


CSE 523, Advanced Compiler Writing, 3 cr, 3 cl hrs

Prerequisite: CSE 423
Description: Advanced topics in compilation, such as theory of parsing, error recovery, optimization, semantics- directed translation, and hardware-independent and hardware-specific code generation.


CSE 524, Advanced Programming Languages, 3 cr, 3 cl hrs

Prerequisite: CSE 324, 344
Description: In depth coverage of High Level languages pure/hybrid Paradigms, data manipulation and coding complexity. Modern trends in the design and philosophy of languages. Formal semantics of programming languages. Selected topics from current research.


CSE 525, Advanced Operating Systems, 3 cr, 3 cl hrs

Prerequisite: CSE 325 and 331; or consent of instructor
Description: Advanced topics in operating systems such as real-time, distributed systems, fault-tolerance, parallel I/O, performance, safety-critical systems, and verification.


CSE 528, Formal Methods in Software Development, 3 cr, 3 cl hrs

Prerequisite: CSE 342; CSE 325 or 328 or 423 or equivalent experience
Description: 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.


CSE 531, Advanced Computer Architecture, 3 cr, 3 cl hrs

Prerequisite: CSE 331
Description: This course covers advanced topics in computer architecture which may include superscalar and superpipelined architectures, memory hierarchies, multicore systems, multiprocessor systems, vector processors, interconnection networks.


CSE 532,Fault-Tolerant Computing, 3 cr, 3 cl hrs

Prerequisite: CSE 331; or consent of instructor
Description: Techniques for design of fault-tolerant digital devices with on-line self-error-detection and self-error-correction. Fault-tolerant PLAs, gate arrays, and computer memories. Fault-tolerant computer architectures. Application of error-detecting and error-correcting codes for design of reliable devices with self-error detection/correction. Design of self-checking checkers. Combining on-line and off-line error-detecting techniques. Reliability analysis of fault-tolerant devices. Self-error detection/correction for multiprocessors.


CSE 542, Advanced Formal Language Theory, 3 cr, 3 cl hrs

Prerequisite: CSE 342
Description: Extensive study of context-sensitive and recursively enumerable languages; closure properties, decidability, and ambiguity of various language classes. Special topics as time permits.


CSE 544, Advanced Algorithms, 3 cr, 3 cl hrs

Prerequisite: CSE 344 or consent of instructor
Description: Analysis of correctness and complexity of asymptotically efficient algorithms. Hybrid data structures; Competitive algorithms; Graph algorithms including flow networks and maximum bipartite matching; Algorithms for matrix inversion and solution of linear equations; Linear Programming; Computational geometry; NP‐complete problems and Approximation algorithms. Algorithms in areas of current interest.


CSE 546, Theory of Computation, 3 cr, 3 cl hrs

Prerequisite: CSE 342
Description: 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.


CSE 551, Advanced Parallel Processing, 3 cr, 3 cl hrs

Prerequisite: CSE 451; or consent of instructor
Description: 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.


CSE 553, Advanced Computer Networks, 3 cr, 3 cl hrs

Prerequisite: CSE 353 or consent of instructor
Description: Models of computer networks. Design and analysis issues. Abstract syntax notation, data compression, security and authentication. Recent developments in the field.


CSE 563, Access Control and System Security, 3 cr, 3 cl hrs

Prerequisite: Consent of instructor
Description: Topics include theoretical foundations for access control, formal access control models, access control mechanisms, tools and techniques, information flow policy, trust management, security architectures, and current issues of advanced research in access control. In addition, the protection mechanisms of general‐purpose operating systems, software systems, and web applications are discussed.


CSE 565, Neural Nets, 3 cr, 3 cl hrs

Prerequisite: CSE 344; MATH 254 and 382; or consent of instructor
Description: 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.


CSE 567, Soft Computing, 3 cr, 3 cl hrs

Prerequisite: MATH 254, 382; CSE 344 or equivalent, or consent of instructor
Description: 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 MENG 567: Smart Engineering Systems)


CSE 568, Intelligent Systems, 3 cr, 3 cl hrs

Prerequisite: MATH 254, 382; CSE 344 or equivalent, or consent of instructor
Description: 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 MENG 568: Smart Engineering Systems II)


CSE 569, Embedded Systems Design, 3 cr, 3 cl hrs

Prerequisite: consent of instructor
Description: Hardware/software systems and codesign. 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.


CSE 570, Privacy in Mobile Environments, 3 cr, 3 cl hrs

Prerequisite: consent of instructor
Description: The notion of privacy; privacy threat model; Anonymity through k‐anonymity, l‐diversity, t‐closeness, etc. Approaches to protest the location, identity, and query history of mobile users. Recent developments.


CSE 572, Advanced Data Management, 3 cr, 3 cl hrs

Prerequisite: consent of instructor
Description: Semi‐structures, unstructured, and graph data; Large data versus BigData; Relational versus NoSQL and centralized versus distributed databases; Query processing and the MapReduce model; Storage, Recovery, Concurrency, Consistency, Availability, and Scalability.


CSE 573, Database and Knowledge-base Systems, 3 cr, 3 cl hrs

Prerequisite: CSE 373; CSE 241
Description: Databases, object bases, and knowledge bases.Data models. Logical foundations of database and knowledge-base systems.Query optimization.Selected topics from current research.


CSE 576, Advanced Visualization, 3 cr, 3 cl hrs

Prerequisite: consent of instructor
Description: 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.


CSE 581, Directed Study, cr to be arranged


CSE 585, Graduate Seminar, 3 cr

Prerequisite: CSE Graduate Standing
Description: An introduction to the methodology and skills required for academic research with emphasis on computer science. Students will learn the skills involved in discussing technical ideas; articulating research problems; critiquing, writing, and defending research proposals; reading, reviewing, and presenting research articles with appropriate visual aids; and exploring ethical issues associated with research. Students are expected to atend all presentations by outside speakers in the CS Speaker Series during the semester. Typically offered each fall.


CSE 589, Special Topics in Computer Science, 3 cr, 3 cl hrs

Prerequisite: Two semesters of upper division courses in computer science and consent of instructor.
Description: Graduate special topics in computer science.


CSE 590, Independent Study, cr to be arranged

Description: 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.


CSE 591, Thesis (master’s program), cr to be arranged


CSE 595, Dissertation (doctoral degree program), cr to be arranged

Prerequisite: Successful completion of PhD candidacy exam and Academic Advisor recommendation for candidacy.