Business | Education | Engineering | Graduate School of Public Affairs | Letters, Arts, and Sciences | Nursing

College of Engineering and Applied Science

 

Computer Science

C S 100-3. Computer Literacy. 
The role of computers in society with an introduction to programming in basic. The student is introduced to the concepts and operations of a microcomputer including several typical software environments such as word processing, spread sheet accounting, and database systems. The history and impact of computing in society is covered. This is the most elementary course offered by the computer science department. This course is not for CS or engineering majors. Prer., High school algebra.

C S 101-1 to 3. Topics in Computer Science. 
Content will vary to reflect areas of current interest in computer science. Prer., instructor consent.

C S 103-1. Introduction to Microsoft Word. 
Introduction to word processing and the specifics of using the Microsoft Word for Windows system. Students will learn to create, format, and edit documents using Word.

C S 104-1. Introduction to Microsoft Excel. 
Introduction to spreadsheets and the specifics of using the Microsoft Excel for Windows system. Students will learn to create, edit, and print spreadsheets using Excel.

C S 105-3. Introduction to Programming with FORTRAN for Non-majors. 
An introductory course in FORTRAN programming. Topics include top-down analysis of problems, structured programming, data storage, control statements, loops and subprograms. Programming assignments are oriented more toward scientific applications. This course is not for computer science majors. Prer., High School algebra.

C S 106-3. Introduction to Programming with C for Non-majors. 
An introductory course in C programming. Topics include top-down analysis of problems, structured programming, data storage, control statements, loops and subprograms. This course is not for computer science majors. Prer., High School algebra.

C S 107-3. Introduction to Programming in Visual BASIC for Non-Majors. 
Introduction to using visual basic to design and implement programs that interface with their users through Microsoft Windows. Prer., High school algebra.

C S 115-3. Principles of Computer Science. 
Introduction to programming with emphasis on computer science concepts. Develops methods for computer problem solving. Develops proficiency for programming in a modern programming language, and introduces the concepts of abstraction in problem solving. Includes basic concepts of computer systems and environments including debuggers, editors, and file systems. Prer., High school algebra and familiarity with computer concepts including file operations and text editing.

C S 145-3. Data Structures and Algorithms. 
Concepts of data type, data abstraction, and data structure. Internal representations of fundamental data types. Linear data structures: stack, queue. Linked data structures and dynamic data types. Search table data abstraction, linear search in arrays and lists, binary search in arrays and trees. Binary trees, non-binary trees, binary search trees. Prer., C S 115 or equivalent.

C S 201-1 to 3. Topics in Computer Science. 
Content will vary to reflect the areas of current interest in computer science. As the courses continually change, students may take the course several times for elective credit. Prer., Consent of instructor.

C S 202-3. Programming with UNIX. 
An introduction to the UNIX operating system with an emphasis on the development of C and command shell programs. Prer., C S 145 and proficiency in C.

C S 203-1 to 3. Topics in Computer Science. 
Content will vary to reflect the areas of current interest in computer science. As the courses continually change, students may take the course several times for elective credit. Prer., Consent of instructor.

C S 205-1 to 3. Topics in Computer Science. 
Content will vary to reflect the areas of current interest in computer science. As the courses continually change, students may take the course several times for elective credit. Prer., Consent of instructor.

C S 206-2. Programming with C. 
A first course in the C programming language for those who are proficient in some other high level language. Prer., C S 115.

C S 201-1 to 3. Topics in Computer Science. 
Content will vary to reflect the areas of current interest in computer science. As the courses continually change, students may take the course several times for elective credit. Prer., Consent of instructor

C S 201-1 to 3. Topics in Computer Science. 
Content will vary to reflect the areas of current interest in computer science. As the courses continually change, students may take the course several times for elective credit. Prer., Consent of instructor

C S 216-3. Computer Organization and Assembly Language Programming. 
Provides an introduction to the concepts of computer architecture, functional logic, design and computer arithmetic. It presents material on the mechanics of information transfer and control within a computer system. Also included are symbolic programming techniques, implementing high level control structures, addressing modes and their relation to arrays, subprograms, parameters, linkage to high level languages and the assembly process. Prer., C S 145 and knowledge of C programming including pointers.

C S 301-3. Web Programming. 
An introduction to the programming languages and technologies associated with the Web. Included are XHTML, cascading style sheets, JavaScript, dynamic XHTML documents, applets, XML, Perl and its use in CGI programming, java Servlets and web access to databases. Prer., C S 316.

C S 302-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for technical elective credit. Prer., Instructor consent.

C S 303-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for technical elective credit. Prer., Instructor consent.

C S 304-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for technical elective credit. Prer., Instructor consent.

C S 305-1. Social and Ethical Implications of Computing. 
This class will discuss selected topics in ethical, social, political, legal and economic aspects of the application of computers. Each student is expected to research one or more topics, actively participate in discussions, and give a presentation. Written papers may be required. Prer., C S 202 or instructor consent.

C S 306-3. Object-Oriented Programming Using C++. 
The principal goals of this course are: 1) to learn the fundamentals of object-oriented programming, 2) to gain skill and proficiency in using the C++ programming language, 3) to exercise the C++ language in implementing a moderate sized software system designed with objects. Prer., C S 202 and ECE 1011 or instructor consent.

C S 316-3. Concepts of Programming Languages. 
Evolution of the central concepts of programming languages, describing syntax and semantics, data types, abstract data types, control structures, subprograms, concurrency and exception handling. Prer., C S 216 and C S 306.

C S 330-3. Software Engineering. 
Software engineering methodologies. The software lifecycle. Emphasis on the design, development and implementation of a software system. A course project provides the student teams practical application of the software engineering techniques. Prer., C S 145 and C S 202.

C S 401-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Prer., Instructors consent.

C S 402-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 403-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 405-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 406-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 407-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 408-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 409-1 to 3. Selected Topics in Computer Science. 
The content of these courses will vary from time to time and reflect the areas of current interest in Computer Science. As the courses continually change, students may take the course several times for elective credit. Preq., Instructor consent.

C S 410-3. Compiler Design I. 
Underlying theory and design techniques for compilers. Lexical analysis, top-down and bottom-up parsing algorithms, runtime storage management, syntax directed translation schemes, intermediate code generation. Prer., C S 216, C S 316 and C S 470/570. Meets with C S 510.

C S 420-3. Computer Architecture I. 
Course covers fundamentals of computer design, instruction set principles and examples, pipelining, advanced pipelining and instruction-level parallelism, memory-hierarchy design and survey of design issues in storage, interconnection network and multiprocessor systems. Prer., C S 216. Meets with C S 520.

C S 438-3. Object-Oriented Software Construction: Foundations of OOP. 
The basic principles and subtleties of object-oriented programming are presented. The notation used to support the principles will be Eiffel. Prer., C S 316.

C S 442-3. Database Systems I. 
Course introduces general database concepts as well as database system technology. The course covers ER and R data models, R-algebra, SQL, data storage and indexing, query optimization, database design and security. Prer., C S 145. Meets with C S 542.

C S 450-2. Operating Systems I. 
Introduces concepts, terminology, and algorithms of operating systems. Describes semaphores, processes, virtual mappings, interrupts, resource allocation and management, protection, synchronization, scheduling, queueing and communication as applied to operating system design and implementation. Prer., C S 145, C S 202, C S 216, C S 420. Meets with C S 550.

C S 460-3. Numerical Computing. 
Algorithms for the solution of nonlinear equations, interpolation and approximation, differentiation, integration, systems of linear equations, ordinary differential equations and least squares. Prer., C S 145, MATH 235 and MATH 313. Meets with C S 560.

C S 470-3. Computability, Automata and Formal Languages. 
Finite automata and regular expressions, context-free grammars, context-free languages, and pushdown automata, Turning machines, undecidability, the Chomsky hierarchy of formal languages, computational complexity and intractable problems. Prer., C S 145, C S 202, MATH 215, & MATH 313. Meets with C S 570.

C S 472-3. Design and Analysis of Algorithms. 
Design methodologies; divide-and-conquer, exhaustive search, dynamic programming. Time and space complexity measures, analysis of algorithms. Survey of important algorithms for searching, sorting, graph manipulation. Tractability: class P and NP, NP complete problems. Prer., C S 145, C S 202 and MATH 215. Meets with C S 572.

C S 480-3. Computer Graphics. 
Fundamental areas of modern raster computer graphics: hardware, software, data structures, mathematical modeling, user interface and manipulation of graphical objects. A subset of the two dimensional GKS is examined and implemented with emphasis placed upon segmented display files and instance modeling. Basic to all graphic programs written are the ergonomic requirements of the user. Required programs are in the areas of animation, paint systems, polygon filling and clipping, and curve generation. Prer., C S 145, C S 202, and MATH 313. Meets with C S 580

C S 482-3. Functional and Logical Programming for Artificial Intelligence. 
Course focuses on functional programming using LISP and logical programming using Prolog. Programming projects are geared towards various aspects of artificial intelligence. Prer., C S 316 or consent of instructor.

C S 501-3. Intensive Computer Science for Graduate Students. 
Intended for prospective graduate students with extensive programming experience. Covers concepts in C S 115 and C S 145. Can substitute for these courses in satisfying entrance requirements for M.S. in Computer Science. Does not count towards M.S. or B.S. degrees. Not open to undergraduate. Prer., Knowledge of high-level programming language.

C S 502-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 503-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 505-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 506-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 507-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 508-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 509-1 to 3. Selected Topics in Computer Science. 
Topics vary.

C S 510-3. Compiler Design. 
Underlying theory and design techniques for compilers. Lexical analysis, top-down and bottom-up parsing algorithms, runtime storage management, syntax directed translation schemes, and intermediate code generation. Prer., C S 216, C S 316 and C S 470/570. Meets with C S 410.

C S 520-3. Computer Architecture I. 
Course covers fundamentals of computer design, instruction set principles and examples, pipelining, advanced pipelining and instruction-level parallelism, memory-hierarchy design and survey of design issues in storage, interconnection network and multiprocessor systems. Prer., C S 216. Meets with C S 420.

C S 522-3. Computer Communication. 
The subject of transmitting information between processors is described in detail. The student is expected to have maturity with hardware and/or realtime concepts. Communication systems, from simple to asynchronous point-to-point links, to those based on complex network architectures will be studied. Material will be oriented toward the computer scientist as a user, designer and evaluator of such systems. Terminology and concepts will be emphasized rather than detailed electronic or physical theory. Prer., C S 420/520, C S 450/550.

C S 525-3. Multimedia Computing and Communications. 
Design principles of multimedia authoring and communication systems. It covers the interface and characteristics of voice and video processing equipment, multimedia document architectures, media encoding/compression schemes, real-time scheduling of time critical multimedia documents, multimedia editors, multimedia communication standards and communication software. Prer., Graduate standing or instructor permission.

C S 526-3. Advanced Internet and Web Systems. 
Advanced topics in Internet and WWW systems, TCP/IP network modules in kernel, content switching, web server technologies, web system management, load balancing, web security, and electronic commerce. Prer., C S 301, C S 522, or permission of instructor.

C S 531-3. Software Requirements Analysis and Specification. 
Techniques and tools for requirements analysis and requirements specification. Requirements languages and notations. Specification completeness and consistency. Team project in the analysis and specification of a major software system. Prer., C S 145 or equivalent, knowledge of a modern programming language and discrete structures.

C S 532-3. Software Design. 
Covers a variety of methodologies and tools for design of sequential, parallel and distributed software systems. Design language; graphical design representations. Data abstraction, data dictionaries. Data flow design and diagrams. Object-oriented design. Documentation. Team project in the design of a major software system. Prer., C S 531.

C S 533-3. Formal Methods of Software Systems Engineering. 
Elements of discrete mathematics. Formal mechanisms for specifying and verifying the correctness, reliability, and efficiency of software systems. State transition, regular expression, context free, and applicative models. Assertions, hoare axioms, and weakest preconditions. State machine, algebraic, and operational specification techniques. Prer., C S 145 or equivalent, knowledge of a modern programming language, and discrete structures.

C S 534-3. Software Maintenance. 
Discussion and application of corrective, adaptive, perfective and preventive software maintenance techniques and tools. Related topics such as software systems analysis, reverse-engineering, re-engineering, regression testing and configuration management are examined. As a project, student teams maintain an existing software system. Prer., Knowledge of modern programming language, discrete structures, C S 145 or equivalent.

C S 535-3. Software Project Management. 
Planning, scheduling, costing of projects. Measuring progress, predicting success, controlling failure. Management tools and their use. Effectiveness and efficiency of software engineering environments. Distributed software development. Quality control standards and practices. Prer., Knowledge of modern programming, NG language, data structures and algorithms, and discrete structures.

C S 536-3. Software Product Assurance. 
Principles, techniques and tools for producing quality software systems. The first half of this course focuses on software product assurance processes. The second half covers a variety of software testing techniques. Prer., C S 531.

C S 537-3. Human-Computer Interfaces. 
Techniques and tools for the analysis, design, implementation and testing of human-computer interfaces. Special topics such as human factors, rapid prototyping and usability testing will be studied. Term project. Prer., C S 330 and C S 531.

C S 538-3. Object-Oriented Software Development. 
Principles of object-oriented problem-solving, object- oriented analysis and object-oriented design. Development of class hierarchies, use of polymorphism and inheritance, criteria for good design, semester project. Prer., C S 330 or consent of instructor.

C S 539-3. Software Systems Engineering Project Laboratory. 
Students participate in a project involving the development or maintenance of a software system intended for external distribution and use. Duties include requirements analysis, specification, design, implementation, testing, quality assurance, configuration management and documentation. Projects come from the university and from outside sources. Students are evaluated based on their project work and an oral presentation describing their work and critiquing their results. Prer., CS 531, CS 532, CS 534, CS 535, and CS 536.

C S 542-3. Database Systems I. 
Course introduces general database concepts as well as database system technology. The course covers ER and R data models, R-algebra, SQL, data storage and indexing, query optimization, database design and security. Prer., C S 145. Meets with C S 442.

C S 543-3. Database Systems II. 
Course covers advanced database topics including transaction management, parallel and distributed databases, internet databases, decision support, data mining, object and object-relational database systems, spatial data management and other current research issues. Prer., C S 442/C S 542.

C S 550-3. Operating Systems I. 
Introduces concepts, terminology, and algorithms of operating systems. Describes semaphores, processes, virtual mappings, interrupts, resource allocation and management, protection, synchronization, scheduling, queueing and communication as applied to operating system design and implementation. Prer., C S 145, C S 202, C S 216, C S 420/520. Meets with C S 450

C S 551-3. Operating Systems II. 
Examines and compares algorithms for deadlock, mutual exclusion, synchronization, maximal parallelism, paging, queueing, buffer allocation, interprocess communication, and scheduling as they relate to operating systems performance. Examines mechanisms and primitives for both loosely and tightly coupled networks of systems. Considers system reliability. Prer., C S 450/550.

C S 555-3. Computer Systems Performance Evaluation. 
Perspectives of performance evaluation, measurement techniques; hardware, software, and firmware tools, simulation techniques, analytical techniques; workload characterization, system selection; system tuning; performance tracking, performance prediction in the design phase and cost-benefit analysis. Prer., C S 450/550.

C S 560-3. Numerical Computing. 
Algorithms for the solution of nonlinear equations, interpolation and approximation, differentiation, integration, systems of linear equations, ordinary differential equations and least squares. Prer., C S 145 MATH 235 and MATH 313. Meets with C S 460.

C S 567-3. Discrete Simulation I. 
Examines concepts and methods of discrete event simulation. Compares major modeling methods. Discusses statistical issues including random number generation, arrival processes, analysis of simulation output, verification and validation of models and simulation programs. Describes in detail the use of a major discrete event simulation language. Discusses simulation level of detail and simplifying assumptions. Prer., C S 202 and MATH 381.

C S 570-3. Computability, Automata, and Formal Languages. 
Finite automata and regular expressions; context-free grammars, context-free languages, and pushdown automata; Turing machines; undecidability; the Chomsky Hierarchy of Formal Languages; computational complexity, and intractable problems. Prer., C S 145, C S 202, MATH 215 & MATH 313. Meets with C S 470.

C S 571-3. Evolutionary Computation. 
Introduction to evolutionary computation with emphasis on genetic algorithms. Includes evolution strategies, evolutionary programming, schemata fitness functions and classifiers, current research topics, messy algorithms, adaptive landscapes. Prer., C S 202 and MATH 381.

C S 572-3. Design and Analysis of Algorithms. 
Design methodologies: divide-and-conquer, exhaustive search, dynamic programming. Time and space complexity measures, analysis of algorithms. Survey of important algorithms for searching, sorting, graph manipulation. Tractability: class P and NP, NP-complete problems. Prer., C S 145, C S 202 and MATH 215. Meets with C S 472.

C S 575-3. Computational Geometry. 
Computational complexity of geometric problems within the framework of analysis of algorithms. Stress on geometric searching, intersection problems, particularly of rectangles, and fundamental algorithms. Practical applications of concepts developed can be found in computer graphics, analysis of algorithms, spatial data structures and VLSI system design. Prer., C S 472/572, C S 480/580 or instructors consent.

C S 577-3. Computer Graphics Animation & Scientific Visualization Techniques. 
Animation: basic principle, physically based modeling, algorithms for animation, constraint optimization, use of dynamics in animation, teleological modeling. Scientific visualization: overview, foundation and techniques, applications. Prer., C S 480/580.

C S 579-3. Wearable Computing and Complex Systems. 
Wearable computing with an emphasis on complex systems research is an important area of research. This course will cover concepts and related techniques, and and state of the art issues. This course will provide an excellent basis for students who are interested in computer graphics and virtual reality research. Prer., C S 480/580 or consent of instructor.

C S 580-3. Computer Graphics. 
Fundamental areas of modern raster computer graphics; hardware, software, data structures, mathematical modeling, user interface and manipulation of graphical objects. A subset of the two dimensional GKS is examined and implemented with emphasis placed upon segmented display files and instance modeling. Basic to all graphic programs written are the ergonomic requirements of the user. Required programs are in the areas of animation, paint systems, polygon filling and clipping, and curve generation. Prer., C S 145, C S 202 and MATH 313. Meets with C S 480.

C S 581-3. Topics in Computer Graphics. 
Examines the mathematical and physical models used to produce realistic three dimensional images. Topics include perspective viewing, hidden surface removal, shading, fractals, and rag tracing. Prer., C S 480/580.

C S 582-3. Artificial Intelligence. 
Course covers the foundation of artificial intelligence: search techniques, first-order predicate calculus and knowledge representation. Also covers advanced topics such as speech and natural language processing and learning. Prer., C S 316, C S 482, or instructor consent for graduate students.

C S 583-3. Artificial Intelligence II. 
Covers in detail a selection of AI topics: planning, natural language processing, computer vision, robotics, expert systems, and learning. Current research topics may be covered. Students may use a programming language of their choice. Prer., C S 482/582 or instructors consent.

C S 584-3. Computer Vision. 
Representation and manipulation of digital images, Fourier analysis of images, enhancement techniques in spatial and frequency domain, segmentation procedures, digital geometry, region and boundary representation, texture processing, pattern recognition and application to robotics. Prer., MATH 235 or consent of instructor. Meets with MATH 584.

C S 587-3. Introduction to Artificial Neural Networks. 
The course will cover basic neural network architecture and learning algorithms. Practical applications will be surveyed. Students will learn to implement their own simulator and implement various architectures. Prer., MATH 235.

C S 589-3. Computational Linguistics. 
Approaches to syntactic processing of natural language: issues in semantic interpretation, pragmatics or the impact of context and world knowledge of natural language understanding and generation of natural language responses. Prer., C S 582 or consent of instructor.

C S 591-3. Fundamentals of Computer/Network Security. 
Introduction to the study of computer and network security from the view of information warfare. Topics include information system threats, vulnerabilities and defensive mechanisms (cryptography,
authentication digital signatures, PKI, etc.). Prer., C S 202 and MATH 215.

C S 592-3. Applied Cryptography for Secure Communication. 
Basic security issues in computer communication, classical cryptographic algorithms, symmetric-key cryptography, public-key cryptography, authentication, and digital signatures. Prer., MATH 215, MATH 381, C S 316, C S 522, or instructor consent.

C S 622-3. Distributed Networks. 
Deals with complex communications systems in depth. Packet switching networks, local area networks, satellite systems, the open systems interconnect (OSI) reference model, and the development of communications software. Prer., C S 522.

C S 630-3. Topics in Software Systems Engineering. 
Advanced topics and current research issues in software engineering. Possible topics include software engineering environments, requirements, design, testing, software metrics, configuration management, maintenance, software cost analysis, and distributed software. Prer., C S 531 or C S 535.

C S 638-3. The Design and Modeling of Class Interfaces and Contracts. 
Past and present work related to specifying the semantics of a class using assertions are examined. The BON method is presented. Prer., C S 538.

C S 643-3. Data Mining. 
This course covers data warehousing, OLAP, association rules, cluster analysis, classification and prediction, complex data mining applications and trends in data mining. Prer., C S 442/542.

C S 677-3. Virtual Reality and Computer-Human Interaction.   
The course will focus on the so-called ultimate form of interaction between human and machine, creating virtual or artificial world. The basic idea and various input devices will be discussed. Several advanced papers in this area will be covered. Some of these ideas will be implemented through a term project. Prer., C S 580 or C S 577 or consent of instructor.

C S 687-3. Advanced Studies in Artificial Neural Networks. 
A research seminar treating contemporary results in the theory and applications of artificial neural networks. Prer., C S 587.

C S 691-3. Advanced System Security Design. 
Advanced topics in network and system security, including firewall design, network intrusion detection, tracking and prevention, virus detection, programming language and OS support for security and wireless network security. Prer., C S 591, C S 592, or instructor permission.

C S 692-3. Advanced Topics in Network Security. 
Covers advanced topics in network security such as Kerberos, PGP, IPSec, VPNs, SSL, SET, Smart cards, Steganography, Watermarking and Biometric Encryption. Research papers may be discussed. Prer., C S 592.

C S 700-1 to 6. Masters Thesis. 

C S 701-3. Masters Project. 

C S 800-1 to 10. PhD Dissertation. 
Prer., Acceptance into program.

C S 920-1 to 3. Independent Study in Computer Science Undergraduate.

C S 999-0. Candidate for Degree.

 

Electrical and Computer Engineering

ECE 1001-3. Introduction to Robotics. 
An introductory course presenting foundational material in the design of robots. Topics include basic properties of sensors, motors, gears, drive mechanisms, control schemes and processors used to guide and control robots. LEGO kits will be used to implement student designs. Interdisciplinary teams of students having diverse backgrounds, including non- engineers, will design, build, test, and program robots for goal-driven operation.

ECE 1021-3. Computer-Based Modeling and Methods of Engineering. 
Methodology for solving engineering problems is introduced. Fundamental features of the C programming language are presented and integrated with a variety of engineering examples and applications. Pointer variables and structures will be used in the applications. Prer., MATH 135 and ECE 1001.

ECE 2050-3. Introduction to Physical Electronics. 
An introductory course on the fundamental properties of materials and semiconductors in preparation for a background in modern device physics and technology. Topics include: Crystal Structure, Quantum Theory of Solids, and Transport and Excess Carriers in Semiconductors. Coreq., MATH 340, PES 213.

ECE 2210-3. Circuit Analysis I. 
Modeling and analysis of electrical devices and circuits, including operational amplifiers. Transient and steady state response using classical differential equation methods. Impulse and step responses. Prer., MATH 136 and ECE 1021. Coreq., MATH 235 and PES 112.

ECE 2220-3. Circuit Analysis II. 
Continuation of ECE 2210, with frequency response, filter design, Fourier series, Fourier transforms and Laplace transforms. Prer., ECE 2210, PES 112, and MATH 235. Coreq., MATH 340.

ECE 2230-1. Circuits Laboratory. 
Experimental work dealing with fundamental electrical circuits and measurement techniques. An introduction to computer-aided design (CAD). Prer., ECE 2210. Coreq., ECE 2220.

ECE 2410-3. Logic Circuits. 
Design of digital systems with emphasis on synchronous state machines. The algorithmic state machine (ASM) method is used. Other topics include combinatorial logic design, asynchronous design, timing, signal propagation and noise. Coreq., ECE 1011.

ECE 2420-1. Logic Circuits Laboratory. 
Design, construction, and testing of digital circuits emphasizing synchronous-state machines. Memory-based circuits are stressed. Logic probes, state analyzers, and PROM programmers are used. Prer., ECE 2410.

ECE 3050-3. Semiconductor Devices I. 
An introduction to semiconductor devices used in modern microelectronic technologies. The course objective is to provide an understanding of the fundamental physical principles and concepts underlying the operation and use of the most important semiconductor devices. Prer., ECE 2050. Coreq., ECE 3110.

ECE 3110-3. Electromagnetic Fields I. 
Static electric and magnetic field analysis, Poissons and Laplaces equations, steady electric current, fields of steady electric currents, ferromagnetic materials, boundary-value problems for static fields, time-varying electric and magnetic fields, and Maxwells equations and wave equations. Relationship between field and circuit theory. Prer., ECE 2220, MATH 235 and PES 213.

ECE 3120-3. Electromagnetic Fields II. 
Electromagnetic wave propagation in dielectric and conducting media: solutions to the wave equations, transmission lines, waveguides and resonators, antennas and radiation, uniform and non-uniform plane waves. Design involving considerations of electromagnetic fields. Prer., ECE 3110 and MATH 340.

ECE 3210-3. Electronics I. 
The application of semiconductor devices to the design of electronic circuits. Topics include diode circuits and applications, low frequency transistor amplifier design and switching theory. Prer., ECE 2210. Coreq., ECE 3230.

ECE 3220-3. Electronics II. 
Transistor models used in circuit design at high frequencies: multistage amplifier design, frequency response of amplifiers, feedback, operational amplifiers, and distortion. Prer., ECE 2220 and ECE 3210. Coreq., ECE 3240.

ECE 3230-1. Electronics Laboratory I. 
Design and implementation of power supplies, amplifiers with bipolar junction transistors, junction field effect transistors and MOSFETS. In addition, basic circuit design with operational amplifiers will also be performed. Coreq., ECE 3210.

ECE 3240-1. Electronics Laboratory II. 
Continuation of ECE 3230. Design of differential amplifier with discrete components, analysis of frequency response, frequency compensation techniques, feedback amplifier design, power amplifiers, oscillator and simple subsystem design. Prer., ECE 3230. Coreq., ECE 3220.

ECE 3420-1. Microprocessor Systems Laboratory. 
Introduction to microprocessor development systems and foundations of system design. Assembly language will be used in the development. Use of high-level languages will also be discussed. Prer., ECE 1011. Coreq., ECE 3430.

ECE 3430-3. Introduction to Microcomputer Systems. 
Design of microcomputer systems including assembly language programming and interfacing techniques. Emphasis is on the practical application of microcomputers as solutions to engineering problems. Prer., ECE 2410. Coreq., ECE 3420.

ECE 3440-1. Microcomputer Systems Laboratory. 
Experiments are performed to program and interface microcomputer systems to design and implement microcomputer-based systems. Emphasis is on the application of the microcomputer as a tool to solve control and data acquisition problems. Prer., ECE 2420 and ECE 3430.

ECE 3510-3. Linear System Theory. 
Characterization of linear systems by impulse response, convolution, transfer function. Linear differential equations and linear difference equations as models. Applications to circuits, electromechanical systems, etc. Transform methods include: Fourier series, Fourier transforms, and Laplace transforms. Introduction to state variables, and the state transition matrix. Use of a variety of models in design. Prer., ECE 2220 and MATH 340. Coreq., ECE 3520.

ECE 3520-1. MATLAB System Analysis Laboratory. 
Fundamental constructs in MATLAB - scalars, vectors, and matrices; scalar and array operations; input and output capabilities; functions; matrix computations; interpolation and curve fitting; numerical integration; random number generation; FFT. Several laboratory projects are used to illustrate applications to system analysis. Coreq., ECE 3510.

ECE 3610-3. Engineering Probability & Statistics. 
An introduction to probability and statistics with application to solving engineering problems. Includes the axioms of probability, random variables, density functions, distributions functions, expectations. Gaussian random variables, bivariate random variables, sums of independent random variables. Estimation of sample mean and variance. Monte Carlo simulation, binomial, hypergeometric, Poisson counting processes, confidence intervals, reliability, failure rates, the Weibull model, the log-normal model, estimation using regression. Introduction to random processes. Involves a project making use of simulation of random variables on a computer. Prer., MATH 235.

ECE 4020-3. Semiconductor Devices II. 
Advanced study of the electrical and transport properties of semiconducting and solid state devices and integrated device structures. Topics include: pn junction device structures, non-ideal effects in small geometry Mosfets, compound semiconducting devices, CCDs, negative conductance microwave devices. Prer., ECE 3050 or Equivalent. Meets with ECE 5020.

ECE 4040-1. Introductory VLSI Fabrication Laboratory. 
Various types of VLSI fabrication processes such as thermal oxidation, rapid thermal annealing, diffusion, physical vapor deposition, ion implantation, photolithography and etching. In addition, students will use a variety of device characterization techniques available in the laboratory. Prer., ECE 3050, ECE 4020, and ECE 4080 or consent of instructor.

ECE 4050-3. Microelectronics IC Fabrication Laboratory. 
Independent experimental project in which students are expected to acquire the theoretical understanding of modern IC fabrication process, perform the IC processing and supporting measurements, and write detailed laboratory reports. Students should take ECE 4050 before ECE 4896. Prer., ECE 4080 and ECE 4020 or consent of instructor. Meets with ECE 5050.

ECE 4070-3. Electronic Properties of Materials. 
Principles and applications of the electrical, optical, magnetic, and thermal properties of engineering electronic materials. The treatment is designed for students specializing in the areas of microelectronics, solid state, and electromagnetics. Prer., ECE 3050. Meets with ECE 5070.

ECE 4080-3. VLSI Processing. 
Introductory study of the various processes such as oxidation, diffusion, epitaxy, ion-implantation, photolithography, CVD, plasma processing, etc., used in contemporary fabrication of modern microelectronic technologies; use and understanding of process modeling programs used in design, fabrication, and simulation of MOSFET and bipolar microelectronics technologies. Prer., ECE 3050 or consent of instructor. Meets with ECE 5080.

ECE 4110-3. Electromagnetic Theory and Applications. 
An intermediate level fields course beginning with the classical development of Maxwells equations and the Wave equation. Included are electrostatics, the steady magnetic field, plane-wave propagation, Poyntings vector, guided waves, transmission lines, wave guides, the interaction of fields and matter, and concluding with an introduction to the subject of radiation. Dirac-delta and Dyadic Greens function method of problem solution are treated. Prer., ECE 3120 or equivalent. Meets with ECE 5110.

ECE 4150-1. Microwave Measurements Laboratory. 
Experiments with transmission lines and waveguide systems. Infrared imaging of electromagnetic fields. Measurement of antenna fields. Exposure to equipment and techniques used in microwave measurements. Design of microwave circuits. Prer., ECE 3120 or equivalent. Meets with ECE 5150.

ECE 4200-1. Advanced Digital Design Laboratory. 
A design laboratory focusing on the design of digital systems using modern programmable devices (PLDs and FPGAs). Contemporary design tools and hardware description languages (e.g., Verilog) will be used. Prer., ECE 4242.

ECE 4211-3. Rapid Prototyping with FGPAs. 
Field programmable gate arrays (FPGAs) are an important part of the overall design flow for application specific integrated circuits (ASICs) because they offer the potential of allowing cheap hardware prototypes to be built to meet a narrow window of opportunity. They also offer novel, programmable architectures. This course will focus on the combined use of FPGAs and modern synthesis tools to develop rapid prototypes of ASICs. Architectural and performance tradeoffs and characteristics of both commercial anti-fuse and dynamically programmable FPGAs will be considered. Includes a team project. Prer., ECE 4242. Meets with ECE 5211.

ECE 4220-3. Analog IC Design. 
A fundamental analog circuit design course that establishes relationships between semiconductor device theory, semiconductor processing technologies and the electrical and functional performance requirements of modern analog integrated circuits. Includes design project. Prer., ECE 3050, ECE 3220, and ECE 3240. Meets with ECE 5220.

ECE 4230-3. Analog Filter Design. 
Theory, specification, design, and simulation of active and passive analog filters based on modern integrated circuit technology and VLSI Design I design philosophy. Prer., ECE 3220. Meets with ECE 5230.

ECE 4242-3. Advanced Digital Design Methodology. 
This course focuses on modern digital design practice using computer-based design tools and then considers key steps in a modern design flow, with particular attention to the use of behavioral models in hardware description languages as a stepping stone to combinational and sequential logic synthesis. The Verilog language will be presented, along with ancillary topics of functional verification, testbench generation, timing analysis, fault simulation, and design for testability. Design examples will include microcontrollers, RISC-CPUs, pipelined processors, digital filters, finite state machines for datapath control, UARTs, and typical architectures of synchronous computational units. Prer., ECE 3210. Meets with ECE 5242.

ECE 4250-3. Microwave Circuit Design. 
An introduction to the design and analysis of microwave circuits both passive and active. Topics include microwave circuit analysis, measurement methods, transmission line structures, material properties, lumped elements, discontinuities, terminations, attenuators, directional couplers, hybrids, power dividers, impedance transformers, filters, mixers, switches, phase shifters, and amplifiers. Prer., ECE 3120 or equivalent. Meets with ECE 5250.

ECE 4260-3. Mixed Signal IC Design. 
Design of data converters, switch capacitor filters, high performance opamps, phase locked loops, oscillators. Prer., ECE 4220/5220 or consent of instructor. Meets with ECE 5260.

ECE 4270-3. CMOS Radio Frequency Integrated Circuit Design. 
CMOS based high Frequency amplifier design, s-parameters, voltage references, noise, low noise amplifier (LNA), mixers, RF power amplifiers, phase locked loops, oscill