University Catalog

Computer Science and Engineering (CSE)

Courses

CSE 1000. FRESHMAN UNDERGRADUATE RESEARCH. 0 Hours.

Freshman level undergraduate research course. Prerequisites: Departmental good standing and permission of instructor. May be taken a maximum of 3 times.

CSE 1105. INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING. 1 Hour.

Introduction to engineering concepts, the computer science and engineering disciplines, skills for written communication, and departmental orientation.

CSE 1106. INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING. 1 Hour.

A practical approach to hands-on computer hardware and software systems in a laboratory environment. Students will be exposed to basic engineering concepts such as simple circuits, digital logic, embedded controllers, computer networking, software design, and Linux operating systems. Prerequisite: C or better in CSE 1310.

CSE 1205. INTRODUCTION TO COMPUTER SCIENCE AND ENGINEERING. 2 Hours.

A practical approach to hands-on computer hardware and software systems in a laboratory environment. Students will be exposed to basic engineering concepts such as simple circuits, digital logic, embedded controllers, computer networking, software design, and Linux operating systems. Some College of Engineering requirements are satisfied by the content of this course. Prerequisite: CSE 1310.

CSE 1301. COMPUTER LITERACY. 3 Hours. (TCCN = COSC 1301)

For those persons having an interest in finding out what a computer is (and is not), the types of problems suited for computers, and how to utilize a computer to solve problems. The organization and characteristics of computers; application of commercial software such as word processors, spreadsheets, database packages, and communications packages.

CSE 1310. INTRODUCTION TO COMPUTERS & PROGRAMMING. 3 Hours. (TCCN = COSC 1320)

An introduction to the computer, to the algorithmic process, and to programming using basic control and data structures, using a procedural language. Prerequisite: C or better in MATH 1302 or MATH 1402 or C or better in (or concurrent enrollment in) a subsequent mathematics course (MATH 1421, MATH 1426, MATH 2425, MATH 2326, MATH 3330, HONR-SC 1426 or HONR-SC 2425) or a qualifying score on the ALEKS PPL and C or better in UNIV 1131 (or concurrent enrollment) or ENGR 1101 (or concurrent enrollment).

CSE 1311. INTRODUCTION TO PROGRAMMING FOR ENGINEERS. 3 Hours.

An introduction to the computer, to the algorithmic process, and to programming using basic control and data structures. This class is currently using the C language. Prerequisite: C or better in (or concurrent enrollment in) one of the following; (MATH 1421, MATH 1426, MATH 2425, MATH 2326, MATH 3330, HONR-SC 1426, or HONR-SC 2425).

CSE 1320. INTERMEDIATE PROGRAMMING. 3 Hours.

Programming concepts beyond basic control and data structures. Emphasis is given to data structures including linked-lists and trees as well as modular design consistent with software engineering principles. Prerequisite: C or better in CSE 1310 and C or better in (or concurrent enrollment in) (MATH 1421, MATH 1426, MATH 2425, MATH 2326, MATH 3330, HONR-SC 1426, or HONR-SC 2425) or a qualifying score on the ALEKS PPL and C or better in UNIV 1131 (or concurrent enrollment) or ENGR 1101 (or concurrent enrollment.).

CSE 1325. OBJECT-ORIENTED PROGRAMMING. 3 Hours.

Object-oriented concepts, class diagrams, collection classes, generics, polymorphism, and reusability. Projects involve extensive programming and include graphical user interfaces and multithreading. Prerequisite: CSE 1320.

CSE 1392. SPECIAL TOPICS. 3 Hours.

New developments in the field of computer science and engineering. Topic may vary from semester to semester. May be repeated for credit when topic changes. Departmental approval required in advance to use for degree credit. Prerequisite: consent of advisor.

CSE 2000. SOPHOMORE UNDERGRADUATE RESEARCH. 0 Hours.

Sophomore level undergraduate research course. Prerequisites: Departmental good standing and permission of instructor. May be taken a maximum of 3 times.

CSE 2100. PRACTICAL COMPUTER HARDWARE/SOFTWARE SYSTEMS. 1 Hour.

A practical approach to hands-on computer hardware and software systems in a laboratory environment. Students will be exposed to basic design concepts using off-the-shelf hardware components and to tools that enable the design of complex software systems. Prerequisite: CSE 1320.

CSE 2312. COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING. 3 Hours.

Computer organization from the viewpoint of software, including instruction set architectures, memory addressing, integer and floating-point representation and arithmetic, instruction pipelining, cache, memory virtualization, and I/O. The relationship of higher-level programming languages to assembly language and instruction set architecture is also explored. Prerequisite: a C or better in CSE 1320 and a C or better in CSE 1205 or CSE 1106.

CSE 2315. DISCRETE STRUCTURES. 3 Hours.

Propositional and predicate logic, mathematical proof techniques, sets, combinatorics, functions and relations, graphs, and graph algorithms. Prerequisite: C or better in CSE 1310 and C or better in MATH 1426 (or C or better in or concurrent enrollment in MATH 2425).

CSE 2392. SPECIAL TOPICS. 3 Hours.

New developments in the field of computer science and engineering. Topic may vary from semester to semester. May be repeated for credit when topic changes. Departmental approval required in advance to use for degree credit. Prerequisite: consent of advisor.

CSE 2440. CIRCUIT ANALYSIS. 4 Hours.

Basic principles of electrical circuits using resistors, capacitors and inductors. Filter analysis and synthesis using complex algebra. Introduction to operational amplifiers. Time domain and frequency domain analysis and taxonomy of signals. Concurrent laboratory experiments complement lecture topics. Prerequisite: Grade C or better in MATH 2425 and PHYS 1444.

CSE 2441. DIGITAL LOGIC DESIGN I. 4 Hours.

Analysis, design and testing of combinational and sequential logic circuits. Topics include Boolean algebra, logic circuit minimization techniques, synchronous sequential circuit design, algorithmic state machine design, design of arithmetic/logic and control units, and Verilog programming of FPGA devices. Prerequisite: CSE 1320 and CSE 2315.

CSE 3000. JUNIOR UNDERGRADUATE RESEARCH JUNIOR UNDERGRADUATE RESEARCH. 0 Hours.

Junior level undergraduate research course. Prerequisites: Departmental good standing and permission of instructor. May be taken a maximum of 3 times.

CSE 3302. PROGRAMMING LANGUAGES. 3 Hours.

Introduction, analysis, and evaluation of the important concepts found in a variety of programming languages. Formalisms useful in specifying language syntax and semantics; programming language paradigms such as algorithmic, functional, logic, and object-oriented. Prerequisite: C or better in each of the following: CSE 1325, CSE 2312 and CSE 3318.

CSE 3310. FUNDAMENTALS OF SOFTWARE ENGINEERING. 3 Hours.

Software engineering principles, processes, and techniques; software development approaches focusing on functional analysis and functional design methods. Configuration management, implementation strategies, and testing. Team project. Prerequisite: C or better in each of the following: CSE 1320, CSE 1325 and CSE 2315.

CSE 3311. OBJECT-ORIENTED SOFTWARE ENGINEERING. 3 Hours.

Study of an agile unified methodology and its application to object-oriented software development. Topics include requirements acquisition, use case derivation, modeling and design of interaction behavior and state behavior, introduction to design patterns, derivation of design class diagrams, implementation considerations and deployment. Team project. Prerequisite: C or better in each of the following: CSE 3310 and CSE 3318.

CSE 3313. INTRODUCTION TO SIGNAL PROCESSING. 3 Hours.

Examines models for presentation and processing of digital signals. Sampling theorem, correlation and convolution, time and frequency analysis of linear systems, Fourier transform, Z-transform, design of digital filters structures for discrete time systems. Prerequisite: C or better in each of the following: CSE 3318 and either CSE 3380 or MATH 3330.

CSE 3314. PROFESSIONAL PRACTICES. 3 Hours.

Ethics. Contemporary social aspects and responsibilities of computing in a global, societal context. Lifelong learning goals and resources. Entrepreneurship and intellectual property. Project involving written and oral communication. Prerequisite: C or better in CSE 3318 and COMS 2302.

CSE 3315. THEORETICAL CONCEPTS IN COMPUTER SCIENCE AND ENGINEERING. 3 Hours.

Selected theoretical concepts including regular and context free languages, finite state and pushdown automata, Turing machines, computability, and NP-completeness. Prerequisite: C or better in CSE 2315.

CSE 3318. ALGORITHMS & DATA STRUCTURES. 3 Hours.

Design and analysis of algorithms with an emphasis on data structures. Approaches to analyzing lower bounds on problems and upper bounds on algorithms. Classical algorithm design techniques including algorithms for sorting, searching, and other operations on data structures such as hash tables, trees, graphs, strings, and advanced data structures, dynamic programming and greedy approaches. Prerequisite: CSE 1320 and CSE 2315.

CSE 3320. OPERATING SYSTEMS. 3 Hours.

Functions and components of an operating system, including process synchronization, job scheduling, memory management, file systems protection, and deadlocks. Related system software, such as loaders, linkers, assemblers, and windowing systems. Prerequisite: C or better in CSE 2312.

CSE 3323. ELECTRONICS. 3 Hours.

Design, analysis and testing of electronic circuits. Topics include operational amplifiers, diodes, bipolar-junction transistors (BJTs), and field-effect transistors (FETs) and their applications. Concurrent laboratory experiments complement lecture topics. Prerequisite: C or better in CSE 2440.

CSE 3330. DATABASE SYSTEMS AND FILE STRUCTURES. 3 Hours.

Database system architecture; file structures for databases, including indexing hashing, and B+-trees; the relational model and algebra; the SQL database language; Entity-Relationship data modeling; functional dependencies and basic normalization. Prerequisite: C or better in each of the following: CSE 1325 and CSE 3318.

CSE 3340. INTRODUCTION TO HUMAN COMPUTER INTERACTION. 3 Hours.

Introduction to the interdisciplinary field of Human-Computer Interaction. Studio-based course that bridges cognitive science, ethnography, and anthropology to provide a profound understand of user experience, while concurrently fostering frontend development skills in software, hardware, and wireless communication for the crafting of state-of-the-art user interfaces. Emphasizing a human-centered design ethos, the course encourages the design of interfaces that are not only functional but also meaningful and critically reflective. Prerequisite: C or better in CSE 3318, and C or better in CSE 3310.

CSE 3341. DIGITAL LOGIC DESIGN II. 3 Hours.

Hierarchical organization, design, simulation, implementation, and testing of digital systems. Industrial standard computer-aided design tools including hardware description languages (HDLs), field-programmable gate arrays (FPGAs), and other prototyping hardware and software will be employed. Design of arithmetic and other algorithmic processes will be covered. A term project will be required. Prerequisite: C or better in CSE 2441.

CSE 3380. LINEAR ALGEBRA FOR CSE. 3 Hours.

Solving systems of equations, matrix algebra, determinants, vector spaces, orthogonality and least squares, with applications to computer science. Prerequisite: C or better in CSE 2315.

CSE 3392. SPECIAL TOPICS. 3 Hours.

New developments in the field of computer science and engineering. Topic may vary from semester to semester. May be repeated for credit when topic changes. Departmental approval required in advance to use for degree credit. Prerequisite: consent of advisor.

CSE 3442. EMBEDDED SYSTEMS I. 4 Hours.

Design of microcontroller-based systems, including microprocessor programming, component and system architectures, memory interfacing, asynchronous and synchronous serial interfaces, timer-based peripherals, analog to digital (A/D) and digital to analog (D/A) converters, and typical applications. Prerequisite: C or better in each of the following: CSE 2312, CSE 2440 and CSE 2441.

CSE 4000. SENIOR UNDERGRADUATE RESEARCH SENIOR UNDERGRADUATE RESEARCH. 0 Hours.

Senior level undergraduate research course. Prerequisites: Departmental good standing and permission of instructor. May be taken a maximum of 3 times.

CSE 4191. INDIVIDUAL PROJECTS. 1 Hour.

Special problems in computer science and engineering on an individual basis. Topics may change from semester to semester. May be repeated for credit. Departmental approval must be obtained in advance for degree credit. Prerequisite: consent of instructor and department chairperson.

CSE 4303. COMPUTER GRAPHICS. 3 Hours.

Theory and practice for the visual representation of data by computers including display devices, output primitives, planes and curved surfaces, two- and three-dimensional transformations, parallel and perspective viewing, removal of hidden lines and surfaces, illumination models, ray tracing, radiosity, color models, and computer animation. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, and either CSE 3380 or MATH 3330.

CSE 4304. GAME DESIGN AND DEVELOPMENT. 3 Hours.

Fundamentals of what it takes to create a game that is simultaneously economically attractive enough to produce as well as being fun to play. The former characteristic is objective, though often tricky to bound adequately while the latter is subjective, though easily demonstrated. This is a team-based class; each team conceives, designs, and develops a complete game through a series of exercises that build upon each other and using freely available tools. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3380 or MATH 3330.

CSE 4305. COMPILERS FOR ALGORITHMIC LANGUAGES. 3 Hours.

Review of programming language structures, translation, and storage allocation. Theory and practice of compilers and issues in compiler construction including parsing, intermediate code generation, local optimization problems such as register allocation, data-flow analysis, and global optimization. Prerequisite: Admitted into an Engineering Professional Program. C or better in the following: CSE 3302 and CSE 3315.

CSE 4308. ARTIFICIAL INTELLIGENCE. 3 Hours.

An introduction to the field of artificial intelligence studying basic techniques such as heuristic search, deduction, learning, problem solving, knowledge representation, uncertainty reasoning and symbolic programming languages such as LISP. Application areas may include intelligent agents, data mining, natural language, machine vision, planning and expert systems. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318 and (IE 3301 or MATH 3313).

CSE 4309. FUNDAMENTALS OF MACHINE LEARNING. 3 Hours.

This course offers an introduction to machine learning. Topics include naive Bayes classifiers, linear regression, linear classifiers, neural networks and backpropagation, kernel methods, decision trees, feature selection, clustering, and reinforcement learning. A strong programming background is assumed, as well as familiarity with linear algebra (vector and matrix operations), and knowledge of basic probability theory and statistics. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, MATH 2326 or consent of instructor, IE 3301 or MATH 3313, and CSE 3380 or MATH 3330.

CSE 4310. FUNDAMENTALS OF COMPUTER VISION. 3 Hours.

This course introduces students to basic concepts and techniques in computer vision. The topics covered include morphological operations, connected component analysis, image filters, edge detection, feature extraction, object detection, object recognition, tracking, gesture recognition, image formation and camera models, calibration, and stereo vision. A strong programming background is assumed, as well as familiarity with linear algebra (vector and matrix operations), and knowledge of basic probability theory and statistics. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, IE 3301 or MATH 3313, and CSE 3380 or MATH 3330.

CSE 4311. NEURAL NETWORKS AND DEEP LEARNING. 3 Hours.

This course offers an introduction to neural networks and deep learning. Topics include perceptrons, single-layer neural networks, multi-layer neural networks, Tensorflow and Keras, convolutional neural networks, transfer learning, deep learning methods for object recognition and object detection in images, and sequential learning models for analyzing text. Auto-encoders and generative adversarial networks will be covered to some extent. A strong programming and algorithmic background is assumed, as well as familiarity with linear algebra (vector and matrix operations). Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3380 or MATH 3330, and C or better in IE 3301 or MATH 3313.

CSE 4314. PROFESSIONAL PRACTICES. 3 Hours.

Ethics. Contemporary social aspects and responsibilities of computing in a global, societal context. Lifelong learning goals and resources. Entrepreneurship and intellectual property. Project involving written and oral communication. Prerequisite: Admitted into an Engineering Professional Program. C or better in COMS 2302.

CSE 4316. COMPUTER SYSTEM DESIGN PROJECT I. 3 Hours.

Analysis and design of an industry-type project that involves hardware and software components to meet desired needs within realistic constraints and standards. The project is to be completed in CSE 4317 the following semester. Multidisciplinary teams of CSE 4316 students are required to develop, review, and present problem definition, project planning, requirements formulation, and design specification. Prerequisites: Admitted into a CSE Professional Program. For academic plan CS__CS or SE__SE, C or better in CSE 3310 and CSE 3320, and C or better in CSE 3314 (or concurrently). For academic plan CSE_CP, C or better in CSE 3320 and CSE 3442, and C or better in CSE 3314 (or concurrently).

CSE 4317. COMPUTER SYSTEM DESIGN PROJECT II. 3 Hours.

Implementation, integration, quality assurance through peer review and testing, and deployment of the project designed in CSE 4316; oral presentation, documentation and project demonstration. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 4316 and continuation with the same team.

CSE 4321. SOFTWARE TESTING & MAINTENANCE. 3 Hours.

Study of software quality assurance, software testing, and software maintenance processes, methods and techniques including formal review techniques, software verification, validation, and testing, types of software maintenance, maintenance activities, and regression testing. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3310.

CSE 4322. SOFTWARE PROJECT MANAGEMENT. 3 Hours.

Introduction to software project management. Issues include effort estimation and costing, project planning and scheduling, option analysis, software quality assurance, and formal technical reviews. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3310.

CSE 4323. QUANTITATIVE COMPUTER ARCHITECTURE. 3 Hours.

Pipelined processors, parallel processors including shared and distributed memory, multicore, Very Long Instruction Word (VLIW) and graphics processors, memory and cache design, computer peripherals, and computer clusters. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4331. DATABASE IMPLEMENTATION AND THEORY. 3 Hours.

Review of the relational model and algebra; relational calculus; relational database design theory; advanced data modeling concepts; object-oriented and object-relational databases; database system implementation techniques, including concurrency control, recovery, atomic commitment, and query processing and optimization, database security; introduction to advanced concepts, such as active, deductive, spatial, temporal, multimedia and distributed databases. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3330.

CSE 4333. CLOUD COMPUTING FUNDAMENTALS AND APPLICATIONS. 3 Hours.

Cloud Computing has transformed the IT industry by opening the possibility for infinite or at least highly elastic scalability in the delivery of enterprise applications and software as a service (SaaS). Cloud computing is a method of computing where a shared group of resources such as file storage, web servers, data processing services, and applications are accessed via a public internet connection or a private VPN and/or direct network connection. Cloud computing gives mature enterprises and new start-ups the option to deploy their applications to systems of infinite computational power with practically no initial capital investment and with modest operating costs proportional to the actual use. Examples of cloud computing services include Amazon Web Services, Microsoft Azure, Google Cloud Platform, and IBM Softlayer. This course introduces students to the fundamental and design concepts of writing software applications for the cloud. This course will discuss tools required by an application programmer in building, deploying, and maintaining cloud applications. A combination of lectures and lab activities will expose students to the programming interface utilized in developing cloud applications. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3330, and C or better in CSE 3320.

CSE 4334. DATA MINING. 3 Hours.

Automatic discovery of patterns and knowledge from large data repositories, including databases, data warehouses, Web, document collections, and transactions. Basic topics of data mining including data preprocessing, data warehousing and online analytical processing (OLAP), data cube, frequent pattern and association rule mining, correlation analysis, classification and prediction and clustering, as well as advanced topics covering the techniques and applications of data mining on Web and text documents. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: IE 3301 (or MATH 3313). Co-requisite: CSE 3330.

CSE 4340. FUNDAMENTALS OF WIRELESS NETWORKS. 3 Hours.

Fundamentals of wireless networks, radio spectrum, coding and modulation, multiple access techniques, antennas, noise and interference, channels, demodulation and decoding, error rates and capacity, link budgets, medium access control, rate adaption, and wireless LAN/PAN, ad-hoc, and sensor networks. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 4344 or CSE 4352 or consent of instructor.

CSE 4342. EMBEDDED SYSTEMS II. 3 Hours.

Advanced course in design of microcontroller-based systems. Emphasis is on the application of microcontrollers to real-time problems. Topics include the study of the differences in bare metal and embedded Linux implementations, simple Linux character device drivers, bootloader design, watchdog and supervision concepts, and developing applications such as PID controllers. Course includes significant laboratory content and a project with extensive hardware and software requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3323, CSE 3442, and CSE 3313.

CSE 4344. COMPUTER NETWORK ORGANIZATION. 3 Hours.

Design and analysis of computer networks. Emphasis on the OSI architecture but discusses other schemes (e.g., ARPAnet). Data link control, local networks, protocols/architectures, network access protocols, transport protocols, internetworking, and ISDN. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4345. COMPUTATIONAL METHODS. 3 Hours.

Introduction to numerical methods for solving problems in computer science and computer engineering. Topics include computer arithmetic, linear and nonlinear equations, eigenvalue problems, least squares, optimization, interpolation, and simulation. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following IE 3301 or MATH 3313, CSE 3318, and either CSE 3380 or MATH 3330.

CSE 4351. PARALLEL PROCESSING. 3 Hours.

Theory and practice of parallel processing, including characterization of parallel processors, models for memory, algorithms, and interprocess synchronization. Issues in parallelizing serial computations, efficiency and speedup analysis. Programming exercises using one or more concurrent programming languages, on one of more parallel computers. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4352. IOT AND NETWORKING. 3 Hours.

Study of protocol stacks and layers, implementation of an Ethernet protocol stack, and design of a basic low-latency, small footprint IoT protocol on bare metal embedded devices and embedded Linux systems. Course includes multiple projects with hardware construction and extensive software and integration requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3442.

CSE 4354. REAL-TIME OPERATING SYSTEMS. 3 Hours.

Implementation of a real-time operating system with cooperative and preemption context switching, priority scheduling, semaphores, message queues, and inter-process communications on bare metal microcontrollers. Course includes multiple projects with hardware construction and rigorous software requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in both CSE 3320 and CSE 3442.

CSE 4355. ELECTROMECHANICAL SYSTEMS AND SENSORS. 3 Hours.

Applications of electronics and microcontrollers to the control of electromechanical systems. Topics include driving brushless motors (including stepper motors), brushed permanent magnet motors, and other mechanical actuators; the use of the sensors including IMU,LIDAR, RADAR, GPS, capacitive/inductive sensing, laser distance, thermocouples, strain, pressure, optical encoders, and Hall devices; and control applications. Course includes significant laboratory content and a project with extensive hardware and software requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in both CSE 3323 and CSE 3442.

CSE 4356. SYSTEM ON CHIP (SOC) DESIGN. 3 Hours.

Design of FPGA-based system on chip solutions, including processor subsystems, FPGA fabric, processor to FPGA bridges, and Linux device drivers. Course includes a project with extensive software requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3442.

CSE 4358. MICROPROCESSOR SYSTEMS. 3 Hours.

Asynchronous and synchronous memory interfacing and timing, design and implementation of DMA controllers and SDRAM controllers. Course includes a project with significant system design. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3442.

CSE 4360. AUTONOMOUS ROBOT DESIGN AND PROGRAMMING. 3 Hours.

An introduction to robotics and the design and programming of autonomous robot systems. Topics include basic kinematics, dynamics, and control, as well as sensors, knowledge representation, and programming techniques. Course work includes individual and group projects involving the building and programming of simulated and real robots. Prerequisite: Admitted into an Engineering Professional Program. C or better in each of the following: CSE 3318, CSE 3320 and CSE 3380 (or MATH 3330).

CSE 4361. SOFTWARE DESIGN PATTERNS. 3 Hours.

In-depth study of software design patterns including description of patterns, design principles and techniques used by patterns as well as application of patterns to solving practical design problems. Team project. Prerequisites: Admitted into an Engineering Professional Program. C or better in CSE 3311.

CSE 4372. RISC PROCESSOR DESIGN. 3 Hours.

Design of a RISC processor, based on RISC V and custom instruction set architectures with implementation on an FPGA target for test and verification. Course includes a project with extensive software requirements. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3442.

CSE 4373. GENERAL PURPOSE GPU PROGRAMMING. 3 Hours.

Study of general purpose computation on a GPU. Topics include GPU architectures, stream processing, and programming languages such as OpenCL and CUDA that realize data-parallel, high-throughput compute kernels on GPU architectures. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4376. DIGITAL COMMUNICATION SYSTEMS. 3 Hours.

Study of digital communication systems including source and channel coding, digital modulation techniques, inter-symbol interference, and multi-channel combining and multiple-access methods. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3313.

CSE 4377. WIRELESS COMMUNICATION SYSTEMS. 3 Hours.

Study of wireless systems including modulation, amplification, linearization techniques, filtering, antennas, propagation, reception, and demodulation. Topics include software defined radio design, link budget, and interference analysis. Course includes significant laboratory content. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3313 and CSE 3442.

CSE 4378. INTRODUCTION TO UNMANNED VEHICLE SYSTEMS. 3 Hours.

Introduction to UVS (Unmanned Vehicle Systems) such as UAS (Unmanned Aircraft Systems), UGS (Unmanned Ground System) and UMS (Unmanned Maritime System), their history, missions, capabilities, types, configurations, subsystems, and the disciplines needed for UVS development and operation. UVS missions could include student competitions sponsored by various technical organizations. This course is team-taught by engineering faculty. Prerequisite: Admission to a professional engineering or science program.

CSE 4379. UNMANNED VEHICLE SYSTEM DEVELOPMENT. 3 Hours.

Introduction to the technologies needed to create an UVS (Unmanned Vehicle System). Integration of these technologies (embodied as a set of sensors, actuators, computing and mobility platform sub-systems) into a functioning UVS through team work. UVS could be designed to compete in a student competition sponsored by various technical organizations or to support a specific mission or function defined by the instructors. This course is team-taught by engineering faculty. Prerequisite: B or better in CSE 4378 and admission to the UVS certificate program.

CSE 4380. INFORMATION SECURITY. 3 Hours.

Hands-on introduction to the basics of security. Includes system security, buffer overflows, a high-level overview of cryptography, firewalls and intrusion detection/prevention, malware, penetration testing, forensics, and system administration. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4381. INFORMATION SECURITY II. 3 Hours.

Deeper study of the fundamentals of security, including symmetric key cryptography, public key cryptography, cryptographic protocols, malware design, network attacks and defenses, data security, privacy, and wireless security. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320 and C or better in CSE 4344 (or concurrently).

CSE 4382. SECURE PROGRAMMING. 3 Hours.

This course is an introduction to methods of secure software design and development. Students will learn about the major security problems found in software today. Using this knowledge, they will work in teams to find these bugs in software, fix the bugs, and design software so that it has fewer security problems. Static analysis tools will be a core part of the class, but students will also be exposed to black box testing tools. Topics will include input validation, buffer overflow prevention, error handling, web application issues, and XML. Prerequisite: Admitted into an Engineering Professional Program. C or better in CSE 3320.

CSE 4391. INDIVIDUAL PROJECTS. 3 Hours.

Special problems in computer science and engineering on an individual basis. Topics may change from semester to semester. May be repeated for credit. Departmental approval must be obtained in advance for degree credit. Prerequisite: consent of instructor and department chairperson.

CSE 4392. SPECIAL TOPICS. 3 Hours.

New developments in the field of computer science and engineering. Topic may vary from semester to semester. May be repeated for credit when topic changes. Departmental approval required in advance to use for degree credit. Prerequisite: consent of instructor.

CSE 5191. INDIVIDUAL STUDY IN COMPUTER SCIENCE. 1 Hour.

Topics dealing with special problems in Computer Science on an individual instruction basis. May be repeated for credit.

CSE 5192. INDIVIDUAL STUDY IN COMPUTER SCIENCE. 1 Hour.

Topics dealing with special problems in Computer Science on an individual instruction basis. May be repeated for credit.

CSE 5194. ORIENTATION SEMINAR. 1 Hour.

Presentation of computer science research by CSE faculty, students, and invited speakers. Preparation of program of work.

CSE 5300. FOUNDATION OF COMPUTING. 3 Hours.

Basics of programming, data structures, and algorithms. Introduction to databases and operating systems. Basics of discrete structures and computability. Course is used for the Master's in Data Science degree program and certificate programs for non-CSE majors. It cannot be taken for credit towards any CSE degree.

CSE 5301. DATA ANALYSIS & MODELING TECHNIQUES. 3 Hours.

Concepts and techniques for performing experiments and analyzing their results. Topics cover fundamental statistics, probability and data-representation concepts, interference through hypothesis testing, information theory, queuing models, and selected topics such as capacity planning and bottleneck analysis, clustering and classification, and hidden Markov models with computer science applications as examples.

CSE 5305. FOUNDATIONS OF GRADUATE LEVEL STUDIES IN COMPUTER SCIENCE. 3 Hours.

This course serves as a leveling course for Computer Science and Software Engineering Master's Degree students who need reinforcement of fundamental concepts. Topics include, but are not limited to, computer architecture and organization, analysis of algorithms, data structures, operating systems, discrete structures, automata theory and grammars.

CSE 5306. DISTRIBUTED SYSTEMS. 3 Hours.

Issues and challenges in distributed systems, including: communication, distributed processes, naming and name services, synchronization, consistency and replication, transactions, fault tolerance and recovery, security, distributed objects, and distributed file systems.

CSE 5307. PROGRAMMING LANGUAGE CONCEPTS. 3 Hours.

Study and evaluation of concepts in programming language for modern computer systems. Programming projects are selected from string-based, symbolic, algorithmic, and object-oriented languages.

CSE 5311. DESIGN AND ANALYSIS OF ALGORITHMS. 3 Hours.

Techniques for analyzing upper bounds for algorithms and lower bounds for problems. Problem areas include: sorting, data structures, graphs, dynamic programming, combinatorial algorithms, introduction to parallel models.

CSE 5314. COMPUTATIONAL COMPLEXITY. 3 Hours.

Sequential and parallel complexity classes (e.g., NP-complete and P-complete) and representative problems in languages, logic and graphs. Reduction techniques. Approximate solutions. Complexity hierarchies.

CSE 5315. NUMERICAL METHODS. 3 Hours.

Selected topics from the theory and practice of using automatic digital computers for approximating arithmetic operations, approximating functions, solving systems of linear and non-linear equations, and solving ordinary and partial differential equations.

CSE 5316. MODELING, ANALYSIS, AND SIMULATION OF COMPUTER SYSTEMS. 3 Hours.

Mathematical formalism and techniques used for computer system modeling and analysis. Reviews probability, transform theory, coding theory, and Petri nets. Topics may include knowledge based modeling, validation procedures, various simulation techniques for stochastic process and real-time distributed systems.

CSE 5317. DESIGN AND CONSTRUCTION OF COMPILERS. 3 Hours.

Review of programming language structures, translation, and storage allocation. Introduction to context-free grammars and their description. Design and construction of compilers including lexical analysis, parsing and code generation techniques. Error analysis and simple code optimizations will be introduced. Prerequisite: MATH 1426, or equivalent, or permission of advisor.

CSE 5318. APPLIED GRAPH THEORY AND COMBINATORICS. 3 Hours.

Connected and disconnected graphs; trees; graph planarity; Hamiltonian circuits and Euler tours; coloring; flow and graph optimization algorithms, fundamentals of combinatorics; generating functions and recurrence relations; inclusion-exclusion principle; applications in telecommunications; mobile computing, parallel processing and multiprocessor architectures.

CSE 5319. SPECIAL TOPICS IN THEORY & ALGORITHMS. 3 Hours.

May be repeated for credit when topics vary.

CSE 5320. SPECIAL TOPICS IN SOFTWARE ENGINEERING. 3 Hours.

May be repeated for credit when topics vary.

CSE 5321. SOFTWARE TESTING. 3 Hours.

Study of software quality assurance, software testing process, methods, techniques and tools. Topics include formal review techniques, black box testing, white box testing, integration testing, acceptance testing, regression testing, performance testing, stress testing, and testing of object-oriented software.

CSE 5322. SOFTWARE DESIGN PATTERNS. 3 Hours.

Study and application of object-oriented software design patterns to software development and maintenance in the object-oriented paradigm. Prerequisite: CSE 5324 or concurrent enrollment.

CSE 5323. SOFTWARE ENGINEERING PROCESSES. 3 Hours.

Introduces software lifecycle models, process disciplines, project management concepts, and applies them by mastering the Personal Software Process (PSP).

CSE 5324. SOFTWARE ENGINEERING: ANALYSIS, DESIGN, AND TESTING. 3 Hours.

Motivations, principles, and goals of software engineering; technical aspects of software projects, including: review of structured analysis and structured design, emphasis on object-oriented methods of requirements analysis and specification, design, and implementation; software testing concepts; team project.

CSE 5325. SOFTWARE ENGINEERING: MANAGEMENT, MAINTENANCE, AND QUALITY ASSURANCE. 3 Hours.

Issues and principles for software management; managerial and support aspects of software projects, including: processes, estimation techniques, planning and scheduling, risk analysis, metrics, and quality assurance. Other topics include: configuration management, verification and validation, and maintenance; team project.

CSE 5326. REAL-TIME SOFTWARE DESIGN. 3 Hours.

Specification, design, and analysis of real-time systems including real-time logics and decidability of real-time conditions; real-time scheduling approaches, system requirement specification; procedural and object-oriented methods; specialized analysis techniques for distributed and for control applications; team project. Prerequisite: CSE 5324 or concurrent enrollment.

CSE 5327. TELECOMMUNICATIONS SOFTWARE DEVELOPMENT. 3 Hours.

General understanding and classification of telecommunications systems and applications. Issues relating to the analysis, design, implementation, and testing of telecommunications software. Prerequisite: CSE 5324 and CSE 5344.

CSE 5328. SOFTWARE ENGINEERING TEAM PROJECT I. 3 Hours.

Apply the knowledge and skills gained in other software engineering courses to synthesize a solution to a significant and realistic software development team project. Participate in activities including: proposal writing, problem analysis, software requirements specification, project planning, software design, implementation, software quality assurance, software testing, integration, and demonstration. Required for and open only to Master of Software Engineering degree candidates. Prerequisite: one of CSE 5321, CSE 5322, CSE 5325.

CSE 5329. SOFTWARE ENGINEERING TEAM PROJECT II. 3 Hours.

Apply the knowledge and skills gained in other software engineering courses to synthesize a solution to a significant and realistic software development team project. Participate in activities including: proposal writing, problem analysis, software requirements specification, project planning, software design, implementation, software quality assurance, software testing, integration, and demonstration. Required for and open only to Master of Software Engineering degree candidates. Prerequisite: one of CSE 5321, CSE 5322, CSE 5325.

CSE 5330. DATABASE SYSTEMS. 3 Hours.

Database system architecture; management and analysis of files, indexing, hashing, and B+-trees; the relational model and algebra; the SQL database language; database programming techniques, database design using Entry-Relationship, extended E-R, and UML modeling; basics of normalization. Introduction to database security, query processing and transaction management.

CSE 5331. DBMS MODELS AND IMPLEMENTATION TECHNIQUES. 3 Hours.

DBMS system implementation techniques, including query optimization, transaction processing, concurrency control, buffer management and recovery. Object-oriented, object-relational and XML databases. Introduction to advanced database models, such as active, distributed, temporal, spatial and data warehousing.

CSE 5332. DATA SCIENCE. 3 Hours.

This inspirational course follows a data-science-for-all perspective that views data acumen as part of literacy. It aims to instill in students the data acumen, i.e., the basic skills to wrestle with data, to draw insights from data, to make sound decisions responsibly using data, and to effectively communicate about data-driven findings and decisions. Topics include 1) data management: data curation, preparation, model, and querying; 2) data description and visualization: exploratory data analysis, graphics, user interface and user experience design; 3) machine learning and knowledge discovery: supervised learning, unsupervised learning, pattern and knowledge extraction, deep learning, model evaluation and interpretation. Prerequisite: MATH 1301, or MATH 1302, or MATH 1308, or MATH 1426, or equivalent and permission of advisor.

CSE 5333. CLOUD COMPUTING. 3 Hours.

A survey of state of the art cloud computing paradigms: design, implementation, and programming distributed, scalable storage and computational systems. IaaS, PaaS, and SaaS (Infrastructure, Platform and Software as a Service), Hadoop, EC2, S3, and Azure are discussed.

CSE 5334. DATA MINING. 3 Hours.

Preparing data for mining, using preprocessing, data warehouses and OLAP; data mining primitives, languages and system architecture; data mining techniques including association rule mining, classification/prediction and cluster analysis.

CSE 5335. WEB DATA MANAGEMENT. 3 Hours.

This course provides an in depth study of models, languages and techniques for large-scale Web data management in distributed and heterogeneous environments. Topics include: Web programming with an emphasis on Web data management, Web Services, semi-structured data, XML standards, modern Web search engines, web information systems, Web query languages, distributed computing, metadata management with RDF, and Semantic Web.

CSE 5339. SPECIAL TOPICS IN DATABASE SYSTEMS. 3 Hours.

May be repeated for credit when topics vary.

CSE 5342. EMBEDDED SYSTEMS II. 3 Hours.

Advanced course in design of microcontroller-based systems. Emphasis is on the application of microcontrollers to real-time problems. Topics include the study of the differences in bare metal and embedded Linux implementations, simple Linux character device drivers, bootloader design, watchdog and supervision concepts, and developing applications such as PID controllers. Course includes significant laboratory content and a project with extensive hardware and software requirements. Prerequisite: CSE 3323 and CSE 3442, or CSE 5400, or consent of instructor.

CSE 5344. COMPUTER NETWORKS. 3 Hours.

Study of computer network architectures, protocols, and interfaces. The OSI reference model and the Internet architecture will be discussed. Networking techniques such as multiple access, packet/cell switching, and internetworking will be studied. Discussion will also include end-to-end protocols, congestion control, high-speed networking, and network management. Emphasis will be on Internet and ATM. Prerequisite: CSE 3320 or consent of instructor.

CSE 5345. FUNDAMENTALS OF WIRELESS NETWORKS. 3 Hours.

Fundamentals of wireless networks, radio spectrum, coding and modulation, multiple access techniques, antennas, noise and interference, channels, demodulation and decoding, error rates and capacity, link budgets, medium access control, rate adaption, and wireless LAN/PAN, ad-hoc, and sensor networks. Prerequisite: At least one of these courses: CSE 4344, CSE 4352, CSE 5352, or CSE 5344 or consent of instructor.

CSE 5346. NETWORKS II. 3 Hours.

This course provides an in depth study and comparison of the two primary networking paradigms, Internet/broadcast and switched, using two technologies, IPv6 and ATM, as representative examples. The course is implementation-oriented, focusing on issues such as routing, broadcast, multicast, mobility, network configuration, and quality of service. Prerequisite: CSE 5344.

CSE 5347. FUNDAMENTALS OF BLOCKCHAIN & CRYPTOCURRENCY TECHNOLOGIES. 3 Hours.

This course covers the technical concepts underlying blockchains and decentralized cryptocurrency systems, such as Bitcoin and Ethereum, including decentralized ledgers (blockchains), decentralized consensus, smart contracts and zero-knowledge proof systems.

CSE 5348. MULTIMEDIA SYSTEMS. 3 Hours.

Representations and techniques for processing, communicating, and compression of text, audio, graphics, and video in real time. Project integrating these topics. Prerequisite: CSE 3320.

CSE 5349. SPECIAL TOPICS IN NETWORKING. 3 Hours.

May be repeated for credit when topics vary.

CSE 5350. COMPUTER ARCHITECTURE II. 3 Hours.

A study of advanced uniprocessor and basic multiprocessor systems. Topics may include memory management systems, pipelined processors, array and vector processors, and introduction to architecture of multiprocessor systems. Prerequisite: CSE 3322 or consent of instructor.

CSE 5351. PARALLEL PROCESSING. 3 Hours.

Covers the theory and practice of parallel processing. Theoretical topics include: abstract models and algorithms for shared memory computation (PRAM); algorithms for various topologies such as meshes and hypercubes; efficiency and speedup analysis. Problem areas include data structures, numerical methods, graphs, combinatorics. Practical topics include synchronization, routing, scheduling, parallelizing serial computations, programming languages. Includes programming exercises using one or more concurrent programming languages, on one or more parallel computers. Prerequisite: CSE 3320 or consent of instructor.

CSE 5352. IoT AND NETWORKING. 3 Hours.

Study of protocol stacks and layers, implementation of an Ethernet protocol stack, and design of a basic low-latency, small footprint IoT protocol on bare metal embedded devices and embedded Linux systems. Course includes multiple projects with hardware construction and extensive software and integration requirements. Prerequisite: CSE 3442, CSE 5400, or consent of instructor.

CSE 5353. DISTRIBUTED COMPUTING. 3 Hours.

Programming languages, support components, coordination models, and fundamental algorithms for distributed and clustered systems. Prerequisite: CSE 5306.

CSE 5354. REAL-TIME OPERATING SYSTEMS. 3 Hours.

Implementation of a real-time operating system with cooperative and preemption context switching, priority scheduling, semaphores, message queues, and inter-process communications on bare metal microcontrollers. Course includes multiple projects with hardware construction and rigorous software requirements. Prerequisite: CSE 3442, CSE 5400, or consent of instructor.

CSE 5355. ELECTROMECHANICAL SYSTEMS AND SENSORS. 3 Hours.

Applications of electronics and microcontrollers to the control of electromechanical systems. Topics include driving brushless motors (including stepper motors), brushed permanent magnet motors, and other mechanical actuators; the use of the sensors including IMU, LIDAR, RADAR, GPS, capacitive/inductive sensing, laser distance, thermocouples, strain, pressure, optical encoders, and Hall devices; and control applications. Course includes significant laboratory content and a project with extensive hardware and software requirements. Prerequisite: CSE 3323 and one of the following: CSE 3442 or CSE 5400, or consent of instructor.

CSE 5356. SYSTEM ON CHIP (SoC) DESIGN. 3 Hours.

Programming and implementation of FPGA-based system on chip solutions, including processor subsystems, FPGA fabric, processor to FPGA bridges, and device drivers. Prerequisite: CSE 3442, CSE 5400, or consent of instructor.

CSE 5357. ADVANCED DIGITAL LOGIC DESIGN. 3 Hours.

Hierarchical organization, design, simulation, implementation, and testing of digital systems. Industrial standard computer-aided design tools including hardware description languages (HDLs), field-programmable gate arrays (FPGAs), and other prototyping hardware and software will be employed. Design of arithmetic and other algorithmic processes will be covered. A term project will be required. Prerequisite: CSE 3442, CSE 5400, or consent of instructor.

CSE 5358. MICROPROCESSOR SYSTEMS. 3 Hours.

Study of different microprocessor system architectures, design of asynchronous and synchronous memory interfaces, study of advanced bus architectures, analysis of bus timing, implementation of DMA controllers and SDRAM controllers, and study of cache organization and write policies. Prerequisite: CSE 3442 or CSE 5400, or consent of instructor.

CSE 5359. SPECIAL TOPICS IN SYSTEMS & ARCHITECTURE. 3 Hours.

May be repeated for credit when topics vary.

CSE 5360. ARTIFICIAL INTELLIGENCE I. 3 Hours.

Introduction to the methods, concepts and applications of artificial intelligence, including knowledge representation, search, theorem proving, planning, natural language processing, and study of AI programming languages. Prerequisite: CSE 2320 and CSE 3315, or consent of instructor.

CSE 5361. ARTIFICIAL INTELLIGENCE II. 3 Hours.

Continuation of artificial intelligence methods and techniques, including uncertainty reasoning, machine learning, perception, and advanced topics in knowledge representation, search and planning. Emphasis on design and implementation of AI solutions. Prerequisite: CSE 5360 or consent of instructor.

CSE 5362. SOCIAL NETWORKS AND SEARCH ENGINES. 3 Hours.

Social networks, Search Engines, Recommendation systems, Question & Answering systems are web-enabled Information Technology main stream. This course covers the foundations of these technology including text/query processing, web content analysis, basic graph theory, random walk, PageRank, power law distribution, random graphs, small world, growth models, and network diffusion. Prerequisite: CSE 5311.

CSE 5364. ROBOTICS. 3 Hours.

An introduction to robotics and the design and programming of autonomous robot systems. Topics include basic kinematics, dynamics, and control, as well as sensors, knowledge representation, and programming techniques. Coursework includes individual and group projects involving the building and programming of simulated and real robots. Prerequisite: CSE 2320 and CSE 3442.

CSE 5365. COMPUTER GRAPHICS. 3 Hours.

Input/output devices and programming techniques suitable for the visual representation of data and images.

CSE 5366. DIGITAL SIGNAL PROCESSING. 3 Hours.

Introduction to principles and applications of digital signal processing. Topics include: analysis of signals and systems, Fourier and Z transforms, digital filter design techniques (FIR and IIR), autoregressive (AR) and autoregressive moving average (ARMA) modeling. Applications to science and engineering include: financial predictions and processing of digital music. Laboratory work includes some programming and use of high quality library routines and packages such as Mathematica, Matlab.

CSE 5367. PATTERN RECOGNITION. 3 Hours.

Principles and various approaches of pattern recognition processes, including Bayesian classification, parametric/non-parametric classifier design, feature extraction for signal representation, and techniques for classification and clustering. Current issues in pattern recognition research will also be examine. Prerequisite: CSE 2320 , MATH 3313.

CSE 5368. NEURAL NETWORKS. 3 Hours.

Theoretical principles of neurocomputing. Learning algorithms, information capacity, and mapping properties of feedforward and recurrent networks. Different neural network models will be implemented and their practical applications discussed. Prerequisite: CSE 5301 or consent of instructor.

CSE 5369. SPECIAL TOPICS IN INTELLIGENT SYSTEMS. 3 Hours.

May be repeated for credit when topics vary.

CSE 5370. BIOINFORMATICS. 3 Hours.

Basic biology of genome and common laboratory techniques Overview of discrete probability theory, random variables and processes. Issues in genome mapping, sequencing and analysis: sequence alignments and alignment algorithms; genomic databases and information access; structure and features of DNA sequences. Techniques in contemporary biotechnology, including proteomics and gene expression analysis using microarray chips. Prerequisite: CSE 5311 or consent of instructor.

CSE 5372. RISC PROCESSOR DESIGN. 3 Hours.

Design of a RISC processor, based on RISC V and custom instruction set architectures with implementation on an FPGA target for test and verification. Prerequisite: CSE 3442, CSE 5400, or consent of instructor.

CSE 5373. GENERAL PURPOSE GPU PROGRAMMING. 3 Hours.

Study of general purpose computation on a GPU. Topics include GPU architectures, stream processing, and programming languages such as OpenCL and CUDA that realize data-parallel, high-throughput compute kernels on GPU architectures. Prerequisite: CSE 3320 or consent of instructor.

CSE 5376. DIGITAL COMMUNICATION SYSTEMS. 3 Hours.

Study of digital communication systems including source and channel coding, digital modulation techniques, inter-symbol interference, and multi-channel combining and multiple-access methods. Prerequisite: CSE 3313, CSE 5366, or consent of instructor.

CSE 5377. WIRELESS COMMUNICATION SYSTEMS. 3 Hours.

Study of wireless systems including modulation, amplification, linearization techniques, filtering, antennas, propagation, reception, and demodulation. Topics include software-defined radio design, link budget, and interference analysis. Course includes significant laboratory content. Prerequisite: CSE 3313, CSE 5366, or consent of instructor.

CSE 5379. SPECIAL TOPICS IN BIOINFORMATICS. 3 Hours.

May be repeated for credit when topics vary.

CSE 5380. INFORMATION SECURITY 1. 3 Hours.

Hands-on introduction to the basics of security. Includes system security, buffer overflows, a high-level overview of cryptography, firewalls and IDS/IPS, malware, penetration testing, forensics, and system administration. Prerequisite: CSE 3320 or consent of instructor.

CSE 5381. INFORMATION SECURITY 2. 3 Hours.

Deeper study of the fundamentals of security, including symmetric key cryptography, public key cryptography, cryptographic protocols, malware design, network attacks and defenses, data security, privacy, and wireless security. Prerequisite: CSE 5380 and CSE 4344 or consent of instructor.

CSE 5382. SECURE PROGRAMMING. 3 Hours.

This course is an introduction to methods of secure software design and development for upper-level undergraduate students and graduate students. Students will learn about the major security problems found in software today. Using this knowledge, they will work in teams to find these bugs in software, fix the bugs, and design software so that it has fewer security problems. Static analysis tools will be a core part of the class, but students will also be exposed to black box testing tools. Topics will include input validation, buffer overflow prevention, error handling, web application issues, and XML.

CSE 5383. INTRODUCTION TO UNMANNED VEHICLE SYSTEMS. 3 Hours.

Introduction to UVS (Unmanned Vehicle Systems) such as UAS (Unmanned Aircraft Systems), UGS (Unmanned Ground System) and UMS (Unmanned Maritime System), their history, missions, capabilities, types, configurations, subsystems, and the disciplines needed for UVS development and operation. UVS missions could include student competitions sponsored by various technical organizations. This course is team-taught by engineering faculty.

CSE 5384. UNMANNED VEHICLE SYSTEM DEVELOPMENT. 3 Hours.

Introduction to the technologies needed to create an UVS (Unmanned Vehicle System). Integration of these technologies (embodied as a set of sensors, actuators, computing and mobility platform sub-systems) into a functioning UVS through team work. UVS could be designed to compete in a student competition sponsored by various technical organizations or to support a specific mission or function defined by the instructors. This course is team-taught by engineering faculty. Prerequisite: B or better in CSE 4378 or CSE 5383 and admission to the UVS certificate program (admission to UVS certificate can be waived by consent of instructor).

CSE 5388. SPECIAL TOPICS IN INFORMATION SECURITY. 3 Hours.

May be repeated for credit when topics vary.

CSE 5389. SPECIAL TOPICS IN MULTIMEDIA, GRAPHICS, & IMAGE PROCESSING. 3 Hours.

May be repeated for credit when topics vary.

CSE 5391. INDIVIDUAL STUDY IN COMPUTER SCIENCE. 3 Hours.

Topics dealing with special problems in Computer Science on an individual instruction basis. May be repeated for credit.

CSE 5392. TOPICS IN COMPUTER SCIENCE. 3 Hours.

May be repeated for credit when the topics vary.

CSE 5393. DIRECTED STUDY IN COMPUTER SCIENCE. 3 Hours.

DIRECTED STUDY IN COMPUTER SCIENCE.

CSE 5394. MASTER'S PROJECT I. 3 Hours.

CSE 5395. MASTER'S PROJECT II. 3 Hours.

CSE 5398. MASTER'S THESIS I. 3 Hours.

Preliminary research effort for the master's thesis, including problem definition and literature search, along with identification of resources, milestones, examining committee members, and external publication venue. Graded F, R.

CSE 5400. FUNDAMENTALS OF COMPUTER ENGINEERING. 4 Hours.

Review of digital logic circuits, study of microprocessor system architectures, and design of embedded controller systems to prepare students for Computer Engineering courses in the architecture and embedded tracks. Topics include C programming in resource-constrained environments, component and system architectures, asynchronous and synchronous serial interfaces, timer-based peripherals, pulse-width modulation, analog to digital (A/D) converters, and typical applications. Course includes significant laboratory content and a project with hardware construction and rigorous software requirements.

CSE 5698. MASTER'S THESIS II. 6 Hours.

Completion of tasks in support of the thesis defined in Master's Thesis I, including oral defense of the written documents. Prerequisite: CSE 5398. Graded F, R, P.

CSE 6197. RESEARCH IN COMPUTER SCIENCE. 1 Hour.

Individually supervised research projects.

CSE 6297. RESEARCH IN COMPUTER SCIENCE. 2 Hours.

Individually supervised research projects.

CSE 6306. ADVANCED TOPICS IN OPERATING SYSTEMS. 3 Hours.

May be repeated for credit when topics change. Prerequisite: CSE 5306 or consent of instructor.

CSE 6311. ADVANCED COMPUTATIONAL MODELS AND ALGORITHMS. 3 Hours.

This course aims at exploring advanced computation models, theory and advanced algorithm design and analysis techniques that have broad applicability in solving real-life problems in cross-disciplinary areas such as the Internet computing, Web search engines, data mining, bioinformatics, wireless mobile and sensor networks, dynamic resource management, distributed computing, and social networking. Topics include: Theory of NP-completeness; Equivalence of Machine Models; Lower Complexity Bounds; Randomized and Probabilistic Algorithms; Game-theoretic and Information-theoretic Models; Approximation and Optimization Techniques. Prerequisite: CSE 5311 or consent of instructor.

CSE 6314. ADVANCED TOPICS IN THEORETICAL COMPUTER SCIENCE. 3 Hours.

May be repeated for credit when topics change. Prerequisite: CSE 5314 or consent of instructor.

CSE 6319. SPECIAL TOPICS IN ADVANCED THEORY AND ALGORITHMS. 3 Hours.

May be repeated when topics vary.

CSE 6321. ADVANCED AUTOMATION TESTING. 3 Hours.

A detailed investigation of full automation testing of front and back end automation testing techniques and tools. Advanced issues in automation test are studied and applied. Knowledge and skills gained in other software engineering courses are applied to synthesize a full automation testing solution to a significant and realistic software development team project. Prerequisite: CSE 5321 or consent of instructor.

CSE 6323. AGILE SOFTWARE DEVELOPMENT. 3 Hours.

Study of foundations, techniques and tools for agile methodologies in software engineering including agile manifesto and principles such as pair programming, test-first and refactoring. Latest papers in agile methodologies are reviewed and practiced. Prerequisite: CSE 5324 or consent of instructor.

CSE 6324. ADVANCED TOPICS IN SOFTWARE ENGINEERING. 3 Hours.

May be repeated for credit when topics change.

CSE 6329. SPECIAL TOPICS IN ADVANCED SOFTWARE ENGINEERING. 3 Hours.

May be repeated for credit when topics vary. Prerequisite: CSE Graduate Standing.

CSE 6331. ADVANCED TOPICS IN DATABASE SYSTEMS. 3 Hours.

May be repeated for credit when topics change.

CSE 6332. CLOUD COMPUTING & BIG DATA. 3 Hours.

The focus of this course is on data management techniques and tools for storing and analyzing very large volumes of data. Topics include: cloud computing; virtualization; distributed file systems; large data processing using Map-Reduce; data modeling, storage, indexing, and query processing for big data; key-value storage systems, columnar databases, NoSQL systems; big data technologies and tools; large-scale stream processing systems; data analytics frameworks; big data applications, including graph processing, recommendation systems, and machine learning.

CSE 6339. SPECIAL TOPICS IN ADVANCED DATABASE SYSTEMS. 3 Hours.

May be repeated for credit when topics vary.

CSE 6344. ADVANCED TOPICS IN COMMUNICATION NETWORKS. 3 Hours.

May be repeated for credit when topics change. Prerequisite: CSE 5346 or consent of instructor.

CSE 6345. PERVASIVE COMPUTING & COMMUNICATIONS. 3 Hours.

Issues and challenges in pervasive computing environments: interoperability and heterogeneity; location-awareness and mobility; transparency and proactivity; trust, authentication and security, information acquisition and dissemination in mobile and pervasive systems. Contest-aware computing. Ad-hoc, sensor and mobile P2P systems in pervasive computing. Case studies. Prerequisite: Introductory courses in Networks, Algorithms and Operating Systems: e.g., CSE 5344, CSE 5311, and CSE 5306, or consent of instructor.

CSE 6347. ADVANCED WIRELESS NETWORKS & MOBILE COMPUTING. 3 Hours.

Wireless architectures and protocols (e.g., GSM, CDMA); channel assignment and resource allocation; mobility and location management; mobile data management; wireless data networking and multimedia; call admission control and QoS provisioning; cross layer optimization, performance modeling. Prerequisite: CSE 5345 and CSE 5330.

CSE 6348. ADVANCES IN SENSOR NETWORKS. 3 Hours.

Covers application and architecture of wireless sensor networks. Topics include platforms, routing, coverage, MAC, transport layer, data storage, query, and in-network processing. Prerequisite: CSE 5345 or equivalent course.

CSE 6349. SPECIAL TOPICS IN ADVANCED NETWORKING. 3 Hours.

May be repeated for credit when topics vary.

CSE 6350. ADVANCED TOPICS IN COMPUTER ARCHITECTURE. 3 Hours.

May be repeated for credit when topics change. Prerequisite: CSE 5350 and consent of instructor.

CSE 6351. ADVANCED TOPICS IN COMPUTER ENGINEERING. 3 Hours.

May be repeated for credit when topics change. Prerequisite: CSE 4342 or CSE 5342, or consent of instructor.

CSE 6352. FAULT-TOLERANT COMPUTING. 3 Hours.

Topics in reliable and fault-tolerant computing. May be repeated for credit when topics change. Prerequisite: CSE 5350 and consent of instructor.

CSE 6353. COMPUTER ENGINEERING SYSTEM DESIGN. 3 Hours.

Advanced course in design of computer engineering systems in a team environment working to produce a larger system. Emphasis is on building a complete system, including requirements analysis, building and integrating components (hardware and software), and testing. Prerequisite: at least three of the following courses: CSE 5342, CSE 5352, CSE 5354, CSE 5355, CSE 5356, or CSE 5357 or consent of instructor.

CSE 6359. ADVANCED TOPICS IN SYSTEMS & ARCHITECTURE. 3 Hours.

May be repeated for credit when topics vary.

CSE 6362. ADVANCED TOPICS IN ARTIFICIAL INTELLIGENCE. 3 Hours.

May be repeated for credit when the topic changes. Prerequisite: CSE 5361 and consent of instructor.

CSE 6363. MACHINE LEARNING. 3 Hours.

A detailed investigation of current machine learning methods, including statistical, connectionist, and symbolic learning. Presents theoretical results for comparing methods and determining what is learnable. Current issues in machine learning research will also be examined. Prerequisite: CSE 5301 or consent of instructor.

CSE 6364. MACHINE LEARNING. 3 Hours.

A detailed investigation of current machine learning methods, including statistical, connectionist, and symbolic learning. Presents theoretical results for comparing methods and determining what is learnable. Current issues in machine learning research will also be examined. This course is for PhD students only. Prerequisite: CSE 5301 or consent of instructor.

CSE 6366. DIGITAL IMAGE PROCESSING. 3 Hours.

Digitization and coding of images, characterization and representation of digital images in spatial and frequency domains, picture restoration and enhancement, filtering of two-dimensional signals, image reconstruction. Prerequisite: CSE 5366 or consent of instructor.

CSE 6367. COMPUTER VISION. 3 Hours.

Advanced techniques for interpretation, analysis, and classification of digital images. Topics include methods for segmentation, feature extraction, recognition, stereo vision, 3-D modeling, and analysis of time-varying imagery. Also taught as EE 6358. Prerequisite: CSE 5301 or CSE 5360 or EE 5356 or EE 5357, and consent of instructor.

CSE 6368. COMPUTER VISION. 3 Hours.

Advanced techniques for interpretation, analysis, and classification of digital images. Topics include methods for segmentation, feature extraction, recognition, stereo vision, 3-D modeling, and analysis of time-varying imagery. Also taught as EE 6358. This course is for PhD students only. Prerequisite: CSE 5301 or CSE 5360 or EE 5356 or EE 5357, and consent of instructor.

CSE 6369. SPECIAL TOPICS ADVANCED INTELLIGENT SYSTEMS. 3 Hours.

May be repeated for credit when topics vary.

CSE 6379. SPECIAL TOPICS IN ADVANCED BIOINFORMATICS. 3 Hours.

May be repeated for credit when topics vary.

CSE 6388. SPECIAL TOPICS IN ADVANCED INFORMATION SECURITY. 3 Hours.

May be repeated for credit when topics vary.

CSE 6389. SPECIAL TOPICS IN ADVANCED MULTIMEDIA, GRAPHICS, & IMAGE PROCESSING. 3 Hours.

May be repeated for credit when topics vary.

CSE 6392. SPECIAL TOPICS IN ADVANCED COMPUTER SCIENCE. 3 Hours.

May be repeated for credit when the topics vary.

CSE 6397. RESEARCH IN COMPUTER SCIENCE. 3 Hours.

Individually supervised research projects.

CSE 6399. DISSERTATION. 3 Hours.

Preparation of dissertation in computer science or computer science and engineering. Graded F, R.

CSE 6697. RESEARCH IN COMPUTER SCIENCE. 6 Hours.

Individually supervised research projects.

CSE 6699. DISSERTATION. 6 Hours.

Preparation of dissertation in computer science or computer science and engineering. Graded F, R,P,W.

CSE 6997. RESEARCH IN COMPUTER SCIENCE. 9 Hours.

Individually supervised research projects.

CSE 6999. DISSERTATION. 9 Hours.

Preparation of dissertation in computer science or computer science and engineering. Graded P, F, R.

CSE 7399. DOCTORAL DEGREE COMPLETION. 3 Hours.

This course may be taken during the semester in which a student expects to complete all requirements for the doctoral degree and graduate. Enrolling in this course meets minimum enrollment requirements for graduation, for holding fellowships awarded by The Office of Graduate Studies and for full-time GTA or GRA positions. Students should verify that enrollment in this course meets other applicable enrollment requirements. To remain eligible in their final semester of study for grants, loans or other forms of financial aid administered by the Financial Aid Office must enroll in a minimum of 5 hours as required by the Office of Financial Aid. Other funding sources may also require more than 3-hours of enrollment. Additional hours may also be required to meet to requirements set by immigration law or by the policies of the student's degree program. Students should contact the Financial Aid Office, other sources of funding, Office of International Education and/or their graduate advisor to verify enrollment requirements before registering for this course. This course may only be taken twice. Students who do not complete all graduation requirements while enrolled in this course must enroll in a minimum of 6 dissertation hours (6699 or 6999) in their graduation term. Graded P/F/R.