Note: See quarterly class schedule or departmental advisor for further enrollment restrictions, requirements, or special course information.

210-4 PC Networking I
Introduction to PC networking hardware, concepts, and technologies. Focus is on LAN administration, and hardware and software configuration using in class hands-on exercises. Internet resources, from the PC network perspective, are utilized. Prerequisite: CS 205.

211-4 PC Networking II
Focuses on server installation, administration, multiple protocol integration, systems mainte nance, and troubleshooting. Includes hands-on class and laboratory assignments. Prerequisite: CEG 210.

220-4 C Programming for Engineers
Introduction to digital computers and computer programming with C language. Algorithms and techniques useful to engineers. Data representa tion, debugging, and program verification. Programming assignments include complex arithmetic. CS and CEG majors may not take this course for credit. Prerequisite: MTH 229 or EGR 101.

221-4 Advanced C Programming for Engineers
Study and usage of the C programming language beyond what is taught in the introductory course, CEG 220, in the solution of engineering oriented problems. Prerequisite: CEG 220.

233-4 Linux and Windows
Linux and Windows; GUI; files, directories, permissions; programs, processes; system calls, libraries; loading; dynamic linking; command line shells; scripting languages; regular expressions; clients and servers; Web browsers; secure shell, sftp; SSL/TSL; system administration. Prerequisite: none

260-4 Digital Circuits
(Also listed as EE 260.) Topics include switching algebra and switching functions, logic design of combinational and sequential circuits using TTL, combinational logic design with MSI and LSI, busing, storage elements, and instrumentation. Three hours lecture, two hours lab. Prerequisite: CS 142 or 240 or CEG 220 or EGR 153.

305-4 Fundamentals of Expert Systems
Definitions of AI, discussion of the different technologies that comprise the field, introduction to the fundamental concepts and methodologies of expert systems, and hands-on experience developing small expert system applications. CS and CEG majors may not take this course for credit. Prerequisite: CS 141 or 240, CEG 220 or EGR 153.

320-4 Computer Organization
Organization and sequential operation of digital computers. Program control, memory organization and hierarchy, stacks and parameter passing, interrupts and traps, I/O devices, program structure, machine code and assembly language. Three hours lecture, two hours lab. Prerequisite: CS 242 or CEG 221.

333-2 Introduction to UNIX
Introduction to the use of UNIX and UNIX tools as a problem-solving environment. Emphasis on the shell, files and directories, editing files, user process management, compiling, and debugging: Prerequisite: CS 241

355-4 Introduction to the Design of Information Technology Systems
Introduction to the design of information systems comprising modern technologies such as SQL database programming, networks, and distributed computing with CORBA, electronic and hypertext (HTML) documents, and multimedia. Prerequisite: CS 241.

360-4 Digital Systems Design
(Also listed as EE 451.) Topics include flip-flops, registers, counters, programmable logic devices, memory devices, register-level design, and microcomputer system organization. Students must show competency in the design of digital systems. Three hours lecture, two hours lab. Prerequisite: CEG 260.

402-4 Computer Networks
Survey of modern digital communications techniques. Focus on serial transmission over public communications channels. Topics include information content and coding, asynchronous and synchronous formats, concentrating and multiplexing, channel properties, modulation techniques, common carrier services, error sources and control, regulatory policies, and networks and their analyses. Students must design both hardware and software components of computer communications systems. Three hours lecture, two hours lab. Prerequisite: CS 242 or CEG 221.

403-4 Personal Area Networks
Introduction to Wireless Personal Area Networks (WPANs). Topics include the networking architectures, protocol design and development, resource management, middleware and agent technologies, safety, security and compatibility and performance analysis in WPANs. Prerequisite: CEG 402

404-4 Wireless Sensor Networks
Introduction to wireless sensor networks, fundamental problems and their solutions. Focus on data aggregation, dissemination, localization, power management, security, algorithms and protocol. Students develop applications using Micaz motes & sensors running TinyOS operating systems. Prerequisite: CEG 402

411-4 Microprocessor-based System Design
Introduction to the design and development of software and computer-interfacing hardware for effective use of microprocessors in process control, data collecting, and other special-purpose computing systems. Software topics include assembly language programming, input/output, interrupts, direct memory access, and timing problems. For non-majors only. Prerequisite: CEG 260/EE 260 and CEG 220 (or CS 240).

416-4 Matrix Computations
(Also listed as MTH 416.) Survey of numerical methods in linear algebra emphasizing practice with high-level computer tools. Topics include Gaussian elimination, LU decomposition, numerical eigenvalue problems, QR factorization, least squares, singular value decompositions, and iterative methods. Prerequisite: MTH 253 or 355; and CS 142 or 241.

419-4 Introduction to Fuzzy Logic Control
(Also listed as EE 419.) Foundations and philosophy of fuzzy logic and applications to control theory. Relationship between classical PID control and fuzzy rule-based control. Techniques for rule construction and adaptive fuzzy logic controllers. Case studies of applications. Three hours lecture, two hours lab. Prerequisite: EE 413.

420-4 Computer Architecture
Introduction to computer architecture, computer system analysis and design, performance and cost, instruction set architecture, processor implementation techniques, pipelining, memory-hierarchy design, input/output, and contemporary architectures. Prerequisite: CEG 320,CEG 360.

421-4 Microcomputer Design Projects
In-depth study of the design and use of microcomputer systems. Computer organization and interface facilities are examined. Hardware/ Software projects are required to develop techniques for hardware and software design of open-ended projects. Three hours lecture, two hours lab. Prerequisite: CEG 320, 360.

425-4 VHISC Hardware Description Language (VHDL)
VHDL is an industry-standard language used to describe hardware from the abstract to the concrete level. VHDL is rapidly being embraced as the universal communication medium of design. Prerequisite: CEG 360 and CS 400.

428-4 Linear Optical Systems for Computer Engineers
Introduction to linear optical systems, transformation properties of optical systems, correlation, convolution, diffraction, applications related to optical computers, such as beam steering for optical interconnection and parallel optical algorithm for pattern search, and neural network. Prerequisite: EE 321, 322.

429-4 Internet Security
Authentication, address spoofing, hijacking, SYN floods, smurfing, sniffing, routing tricks, and privacy of data en-route. Buffer overruns and other exploitations of software development errors. Hardening of operating systems. Intrusion detection. Firewalls. Ethics. Prerequisite: CEG 433. Must have senior standing or be a first year graduate student to enroll.

433-4 Operating Systems
Overview of operating system internals. File-system usage and design, process usage and control, virtual memory, multi user systems, access control. Course projects use C++ language. Three hours lecture, two hours lab. Prequisite: CS 242, CEG 233, CEG 320.

434-4 Concurrent Software Design
Continuation of CEG 433. Processes and semaphores. Classical problems and solutions of synchronization and concurrency. File system integrity and robustness. Paging and segmentation. Overview of device drivers. Design of OS internals. Prerequisite: CEG 433.

435-4 Distributed Computing and Systems
Study of process coordination, client-server computing, network and distributed operating systems, network and distributed file systems, concurrency control, recovery of distributed transactions, and fault-tolerant computing. Prerequisite: CEG 434 or equivalent.

436-4 Mobile Computing
Study networking protocol and system design in mobile computing. Focus on concepts, architecture, design, and performance evaluation of mobile computing principles, protocols and applications, including: wireless TCP, Mobile IP, 802.11, agent techniques, etc. Prerequisite: CEG 402

453-4 Embedded Systems
Introduction to small, special-purpose computer systems. Topics include hardware design issues, software design and implementation, and real-time operating systems. Three hours lecture, two hours lab. Prerequisite: CEG 260, CEG 320

454-4 VLSI Design
(Also listed as EE 454.) Introduction to VLSI system design. Topics include CMOS devices and circuit design techniques, basic building blocks for CMOS design, fabrication processing and design rules, chip planning and layout, system timing and power dissipation, simulation for VLSI design, and signal processing with VLSI. Prerequisite: EE 431 and 432 and EE 451/CEG 360.

456-4 Introduction to Robotics
(Also listed as EE 456, ME 456.) An introduction to the mathematics, programming, and control of robots. Topics include coordinate systems and transformations, manipulator kinematics and inverse kinematics, trajectory planning, Jacobians, and control. Prerequisite: senior standing and MTH 253.

458-4 Digital Integrated Circuit Design with PLDs and FPGAs
(Also listed as EE 462.) Design and application of digital integrated circuits using programmable logic devices (PLDs) and field programmable gate arrays (FPGAs). A commercial set of CAD tools (Mentor Graphics and Xilinx) will be used in the laboratory portion of the course. Prerequisite: CEG 360 or EE 451, and EE 459.

459-4 Integrated Circuit Design Synthesis with VHDL
(Also listed as EE 459.) Application of VHSIC hardware description language (VHDL) to the design, analysis, multi-level simulation, and synthesis of digital integrated circuits. A commercial set of CAD tools (Mentor Graphics) will be used in the laboratory portion of the course. Prerequisite: CEG 220, C programming or equivalent, and CEG 260.

460-4 Introduction to Software Engineering
Concepts of software engineering. Analysis, design, and implementation of software engineering concepts that comprise structured programming and design. Case studies serve as examples illustrating the software life-cycle model. Three hours lecture, two hours lab. Prerequisite: CS 400.

461-4 Object-Oriented Programming and Design
Study of object-oriented design and programming. Programming topics emphasize the core concepts of encapsulation, inheritance, polymorphism, and dynamic binding. Additional topics include class organization, software maintenance, and design of reusable components. Prerequisite: CEG 460.

463-4 Personal Software Development Process
Discusses software development as it relates to the individual, software process measurement, design and code reviews, software quality measurement, design, and design verification. Each student will participate in the development of a software project. Three hours lecture, two hours lab. Prerequisite: CEG 460 or equivalent.

465-4 Interactive Systems Modeling, Analysis, and Design
Provide students experience in interactive real-time simulation, design, implementation, and evaluation of interfaces to simulations. The relevant topics are explored through application in supervisory control of complex, dynamic systems. Prerequisite: CEG 220 or any one of the following: CEG 221, CS 241, CS 242 or instructor permission.

468-4 Managing the Software Development Process
Discusses software development processes, models, and techniques necessary to successfully develop large-scale software. Presents the Capability Maturity Model (CMM). Each student will participate in the development of a software project. Three hours lecture, two hours lab. Prerequisite: CEG 460.

476-4 Computer Graphics I
(Also listed as MTH 476.) Contents: raster graphics algorithms, geometric primitives and their attributes, clipping, anialiasing, geometric transformations, structures and hierarchical models, input devices, and interactive techniques. Students develop interrelated programs to design a three-dimensional hierarchical model, manipulate, and view it. Prerequisite: CS 400, MTH 253 or 255.

477-4 Computer Graphics II
(Also listed as MTH 477.) Continuation of CEG 476. Covers surface rendering, midden line and surface removal, illumination models, texture and mapping, color models, geometric modeling, and graphical interface design. Students develop programs and a final project. Three hours lecture, two hours lab. Prerequisite: CEG 476 or MTH 476.

478-3 Coding Theory
(Also listed as MTH 456, EE 478.) Introduction to the essentials of error-correcting codes and the study of methods for efficient and accurate transfer of information. Topics to be covered include basic concepts, perfect and related codes, cyclic codes, and BCH codes. Prerequisite: MTH 253 or MTH 355 (or equivalent).

479-4 Computer Animation
Covers transformations, interpolation, morphing, camera control, hierarchical kinematic modeling, rigid-body animation, controlling groups of objects, collision detection, image-based rendering. Students develop three programs and a final project relating to animation. Open to Engineering and Computer Science Majors only. Prerequisite: CEG 476

490-4 Technology-Based Ventures
(Also listed as ISE 490) Train students on methods to develop breakthrough products with an entrepreneurial perspective and managerial outlook. Topics include advanced product development, protecting intellectual property, fostering strategic and creative thinking, effectively leading technology-driven teams. Senior standing or instructor permission.

495-4 Undergraduate Thesis
Completion of a computer engineering research project. Writing and defending a thesis that describes the research and summarizes the results. Prerequisite: CEG 499. Graded pass/unsatisfactory.

498-4 Team Projects
A summative computer engineering design project building upon previous engineering, science, mathematics, and communication course work focusing on professional practice in computer science and engineering. Must enroll in two consecutive terms. Prerequisite: must complete a course in one of the CEG elective packages.

499-1 to 5 Selected Topics
Topics vary. May be taken for letter grade or pass/unsatisfactory.