Course Offerings

CS-001 Ots Network Course (0 credits)
CS-101 Introduction to Computer Science (3 credits)
Hands-on introduction to computer science and engineering. Meets with electrical and computer engineering sections of Engineering 101. Includes short introductions to programming, robotics, and sensors. Fall.
CS-105 Survey of Computer Science (3 credits)
Intended for students who are not computer science or engineering majors. Provides broad introduction to various concepts and tools used in computing. Topics include number systems, Boolean algebra, problem solving, computability, databases, networking, Internet/Web, user interfaces, artificial intelligence, robotics, and short introduction to programming. Background should include two semesters of high school algebra. Credit not given for more than one of CS 101 or 105 or ENGR 101.
CS-205 Programming for the Sciences (3 credits)
Explores the power and limitations of using computers in the sciences. Includes the study of various approaches to solving scientific problems such as numerical representations, computational numerical methods, and scientific simulations. Course may not be counted toward graduation for computer science or engineering majors. Prerequisite: MATH 134 or 221.
CS-210 Fundamentals of Programming I (3 credits)
Emphasizes problem-solving techniques used in the analysis and design of software solutions, including structured top-down design, abstraction, good programming style, debugging, and testing. Programming constructs covered include control structures, functions, and basic, and aggregate data types. Introduction to recursion and dynamic allocation. Fall, spring.
CS-215 Fundamentals of Programming II (3 credits)
Project and problem-solving course emphasizes the use of classes for encapsulation of abstract data types and abstract data structures. Topics include classes, templates, dynamic allocation, searching and sorting, recursion, and exception handling. Introduction to algorithm analysis. Prerequisite: Grade of C- or better in CS 210.
CS-220 Logic Design and Machine Organization (3 credits)
Introduction to logic design and computer hardware concepts. Topics include Boolean algebra, number representations, sequential logic, counters and registers, microcomputer architecture, and assembly language programming. Spring.
CS-290 Object Oriented Design (3 credits)
In-depth study of abstract data types and objects, including inheritance and polymorphism, frameworks and design patterns, and the use of these principles in problem solving and program design. Prerequisite: CS 215. Spring.
CS-310 Puzzle Programming (1 credit)
Study of problem solving under time pressure. Simulation of the programming contest environment. All problems considered come from past programming contests. Highly recommended for any student interested in programming competitions. Prerequisite: CS 215 or permission of instructor. May be repeated for up to three credit hours. Fall.
CS-315 Algorithms and Data Structures (3 credits)
Design and implementation of algorithms and advanced data structures with attention to complexity and space analysis. Problem-solving strategies including greedy and divide-and-conquer algorithms as well as dynamic programming techniques. Prerequisites: CS 215, MATH 370. Spring.
CS-320 Computer Architecture (3 credits)
Studies the architecture of computer systems from four-bit machines to supercomputers. Memory systems, I/O processors, and multi-computer systems are studied in detail. RISC, CISC and Neural Nets are introduced. Establishes the relationship of hardware and software. Includes hands-on projects dealing with graphical user interfaces and their implementation. Prerequisites: CS 210; CS 220 or EE 254. Spring.
CS-350 Computer/Human Interaction (3 credits)
Study of user interface design, including ergonomic factors. Includes hands-on projects dealing with graphical user interfaces and their implementation. Prerequisite: CS 215.
CS-355 Computer Graphics (3 credits)
Fundamental course in computer graphics. Topics include rendering two and three-dimensional images, two and three-dimensional transformations, line clipping, hidden lines, shading, and perspective projections. Prerequisites: CS 215; MATH 323.
CS-375 UNIX System Programming (3 credits)
Coverage of UNIX software development and UNIX administration. Includes discussion of common shells and scripting languages, X Windows, and interprocess communication. Prerequisite: CS 215.
CS-376 Small Computer Software (3 credits)
Introduction to graphical user interface provided by Windows(TM) operating system using C#.NET. Topics include console applications, windows forms, elementary graphics, ASP.Net web forms, ADO.NET, TCP/IP connection between computers, and dynamic-link libraries (DLLs), and/or device drivers. Prerequisites: ENGR 123 or CS 210; EE 254 or CS 220. Same as EE 356. Fall.
CS-380 Programming Languages (3 credits)
Comparative analysis of selected high-level languages. Covers virtual computers represented by various programming languages, representation of data types, sequence control constructs, data access, scoping, typing systems, runtime storage management, languages semantics, alternative, programming paradigms, and parallel language constructs. Prerequisite: CS 215. Fall.
CS-381 Formal Languages (3 credits)
Models of computation including finite automata, regular grammars, regular expressions, pushdown automata, context-free grammars, Turing machines, computability, and undecidability. Prerequisites: CS 210; MATH 370. Fall.
CS-390 Software Engineering (3 credits)
Study of the software design and development process in the context of a large group-programming project. Topics covered include: project management, software management, requirements and specifications methods, software design and implementation, verification and validation, aspects of software testing and documentation standards, technical documents, contracts, risks, and liabilities. Prerequisite: CS 215. Recommended: CS 290. Fall.
CS-391 Software Engineering II (3 credits)
A continuation of CS-390 Software Engineering. Real-world experience developing a large-scale, ongoing software applications for external clients. Topics covered include: project management, quality assurance, and expectation management. Prerequisite: CS 390. Spring.
CS-395 Software Project Management (3 credits)
Issues and techniques for managing software projects. Project evaluation, scope management, stakeholder management, risk assessment, scheduling, quality, rework, negotiation and conflict management. Ethics of software development. Prerequisite or corequisite: CS 390.
CS-413 Software Security (3 credits)
Provides a systematic treatment for software design and implementation to create computer programs and applications that are secure. Types of vulnerabilities and security issues involving software implementation and as well as web, cryptographic, and networking applications are identified and solutions provided including software development lifecycle models that incorporate security. Prerequisite or corequisite: CS 390.
CS-415 Cryptography (3 credits)
Introduces conventional and public-key cryptography, cryptosystems such as DES and RSA, and applications of cryptography to network and system security. Prerequisites: CS 215; MATH 370.
CS-430 Artificial Intelligence (3 credits)
Basic ideas and techniques underlying the design of intelligent computer systems. Topics include heuristic search, problem solving, game playing, knowledge representation, logical inference, and planning. Advanced topics such as robotics, expert systems, learning, and language understanding as time allows. Prerequisite: CS 215. Recommended: CS 315, 380.
CS-440 Databases (3 credits)
Presents database concepts and architectures. Topics include basic file structures, data dictionaries, data models, languages for data definition and queries, and transaction management for data security, concurrency control, and reliability. Hands-on experience with database and query systems. Prerequisites: CS 215; MATH 222.
CS-445 Programming in the Large (3 credits)
Techniques for scaling software to large numbers of users. Topics will include web application programming, database scaling techniques, using web services and APIs, virtualization and containers. Prerequisite: CS 380.
CS-455 Advanced Computer Graphics (3 credits)
Advanced course in computer graphics. Topics include raster graphics, texture mapping, curve approximation, and ray tracing. Prerequisite: CS 355.
CS-470 Operating Systems (3 credits)
Components of operating systems. Tasking and processing, process coordination and scheduling, memory organization and management, device management, security, networks, distributed and real-time systems. Prerequisite: CS 215. Recommended corequisite: CS 320. Spring.
CS-472 Concurrent & Parallel Programming (3 credits)
The various programming models used for parallel architectures. Topics will range from concurrent programming on clusters, to multi-core programming, to highly parallel and GPU programming. Parallel algorithms and strategies. Prerequisite: CS 470.
CS-473 Mobile Application Development (3 credits)
Hands-on, project-oriented course that explores the principles and tools involved in the design and construction of applications for mobile devices. Topics include and overview of mobile application development, application architecture, managing application resources, designing user interfaces, data storage options, integrating audio and video, and location-based services. Each offering will concentrate on one of the current mobile platforms. Repeatable course for different mobile platform content. Prerequisite: CS 215. Recommended: CS 290.
CS-475 Networks (3 credits)
Digital data communication systems in hardware and software, synchronous and asynchronous communication, standards, protocols, network configurations, network applications. Prerequisites: CS 215; MATH 222.
CS-478 Embedded Systems and Real-Time Programming (3 credits)
Covers real-time programming techniques that are commonly used on embedded systems. Topics include real-time operating system concepts, concurrent programming and task scheduling algorithms, mutual exclusion and synchronization methods, and interprocess communication. Students gain real-world experience by writing applications for two popular embedded operating systems. Prerequisites: EE 354 or CS 215; or permission of instructor. Same as EE 458. Spring.
CS-491 Software Quality Assurance (3 credits)
Various aspects of software quality assurance. Dynamic analysis approaches, such as assertions and testing. Static analysis approaches such as reviews and verification. Emphasis on various testing techniques such as unit, integration, system, acceptance and regression testing. Prerequisite or corequisite: CS 390.
CS-494 Senior Project Seminar Programming (0 credits)
Provides guidance for the selection of a topic for the senior design project. Projects (some industry-sponsored) are presented for student selection. An outline and short presentation of the project selected is required. Prerequisite: 12 hours of 300-level computer science courses. Computer engineers may substitute EE 494. Spring.
CS-495 Senior Project Phase I (3 credits)
Plan the computer science project and formulate the preliminary design under the guidance of faculty and industrial advisors. Discussion of the relationship of computer science as a discipline to the humanities and social sciences. Preparation of a written formal proposal and an oral presentation of the proposal. Seminar session addresses ethical, environmental, economic, safety, and ergonomic aspects of computer science. Written reaction to seminar topics. Prerequisites: CS 494; GPA of at least 2.0. Computer engineers may substitute EE 495. Fall.
CS-497 Senior Project Phase II Programming (3 credits)
Student completes and builds the design proposed in CS 495. A formal design review is conducted early in the semester. A practice oral report, a written final report, a final oral report, and a demonstration of the completed project are required. Prerequisite: CS 495. Computer engineers may substitute EE 497.
CS-498 Independent Study in Computer Science Programming (1-3 credits)
Independent study of a topic of interest to the student. Requires faculty sponsor and approved detailed study plan.
CS-499 Special Topics in Computer Science Programming (1-3 credits)
Study of topics of special interest. Topics will be announced. May be repeated. Prerequisites will be announced when scheduled.
EE-101 Introduction to Electrical and Computer Engineering (3 credits)
A hands-on introduction to electrical and computer engineering. Topics include the use of the computer in engineering and an introduction to the design process. Student teams led by faculty (typically the students academic advisor) complete design projects in a particular discipline. Fall.
EE-210 Circuits I (3 credits)
Integrated lab/lecture covers the fundamentals of electrical circuit analysis. Introduces foundational circuit theorems and analysis methods. These include: Ohm's law, Kirchhoff 's laws, circuit reduction, node voltage analysis, mesh current analysis,superposition, and Thevenin and Norton equivalent circuits. The current-voltage characteristics for resistors,capacitors, inductors, diodes, and transistors are discussed. Additional topics include analysis of resistive DC circuits, operational amplifiers, the natural and step responses of first and second-order RLC circuits, the steady-state sinusoidal response of RLC circuits, and common diode and transistor applications. Theoretical principles verified by circuit construction and measurement and through the use of circuit simulation software. Students learn to use a variety of electrical test equipment including voltmeters, ammeters, ohmmeters, and digital and analog oscilloscopes. Prerequisite: Mathematics 222. Fall, spring.
EE-215 Circuits II (3 credits)
An integrated lab/lecture covers linear system theory as applied in the analysis of electrical circuits. Topics include the sinusoidal steadystate response and phasors, the Laplace transform, Fourier series and the Fourier transform, passive and active frequency selective circuits (filters), and Bode diagrams. Theoretical principles verified by circuit construction and measurement and through the use of circuit simulation software. Prerequisites: Electrical Engineering 210. Corequisite: Mathematics 324 or permission of instructor. Spring, summer.
EE-224 Electrical Engineering Programming Lab (2 credits)
Provides advanced programming concepts for electrical engineering majors. The course is specifically aimed at programming microcontrollers and the use of programming tools in electrical engineering. Topics covered include bit manipulation, memory allocation concepts, architectural considerations, real time events, specialized microcontroller I/O, and programming with MATLAB and other simulation tools. Prerequisites: EE-210 and either ENGR-123 or CS-210. Spring.
EE-254 Logic Design (3 credits)
Presents a thorough treatment of combinational and sequential logic design. Topics include number systems, Boolean algebra, minimization procedures, sequential circuit design, flipflops, counters, registers, and finite-state machines. Logic design is applied to computer architecture and microprogramming and hard-wired concepts are introduced. Programmable logic devices and computer aided design tools for digital circuits used for class projects. Spring.
EE-310 Signals and Systems (3 credits)
The course covers continuous-time signals and systems. Topics include introduction to the mathematical representation of signals, system characterization, convolution, and system analysis in the time and frequency domains. Fourier and Laplace transform analysis techniques of signals and systems are presented. Prerequisites: Electrical Engineering 215; Mathematics 324. Fall.
EE-311 Digital Signal Processing (3 credits)
This course provides a solid foundation in the theory and methods used in filtering digital signals with a focus on audio and image processing. Topics include Sampling, Discrete-Time Signals and Systems, the z-Transform, the Discrete Fourier Transform, FFT Algorithms, FIR and IIR filter design, and Digital Filter Structures. Prerequisite: Electrical Engineering 310. Spring.
EE-330 Introduction to Power Systems (3 credits)
Introduces the principles and concepts that are the basis of electric power systems. Topics include single phase and three phase systems, the per-unit system, synchronous generators,single phase and three phase power transformers modeling and design, transmission line models for steady state operation, transmission system design, line load-ability and stability limits, power flow analysis,fault tolerance, and optimal dispatch of generation. Prerequisite:Electrical Engineering 215.
EE-331 Energy Conversion Systems (3 credits)
Introduces theory of operation and analysis of energy conversion devices and systems. Topics include magnetic and electric forces, electromechanical energy conversion, motors, energy storage, solar electric, wind power, small hydro,fuel cells, biomass, and geothermal. Includes a project lab.
EE-342 Electronics I (2.5 credits)
Lecture/lab covers analysis and designof diode and transistor circuits. Diode, metal-oxide-semiconductorfield-effect transistor (MOSFET) and bipolar junction transistor(BJT) device characteristics are explored in detail. Major topicsinclude diode applications, transistor amplifiers, and digital logicfamilies. Specific topics include amplifier characteristics, circuitmodels for amplifiers, the pn junction, ideal diodes, modeling diodeforward characteristics, reverse breakdown of diodes, MOSFET andBJT device structures, MOSFET and BJT amplifiers in DC, MOSsmall-signal operation and discrete-circuit amplifiers, complementarymetal-oxide-semiconductor (CMOS) inverters, CMOS logic-gatecircuits, pass-transistor logic (PTL) circuits, and emitter-coupled logic(ECL) circuits. Several small team projects are used to reinforce theoryand to develop design skills. 2.5 hours lecture, 0.5 hours lab. Prerequisites: EE 210. Corequisite: EE 254 or permission of the instructor.
EE-342L Electronics I Lab (0.5 credits)
Lab portion of EE 342. Corequisite: EE 342.
EE-343 Electronics II (2.5 credits)
Lecture/lab with continued coverageof material presented in Electrical Engineering 342. Major topicsinclude BJT amplifiers, IC amplifiers, differential amplifiers, nonidealoperational amplifiers, and frequency effects. Specific topicsinclude small-signal operation and models of BJTs, discrete-circuitBJT amplifiers, IC amplifiers, current-mirrors with improved performanceBJT and MOS differential pair circuits, common-moderejection ratio, DC imperfections of op amps, large signal operationof op amps, LM741 op amp circuit, high frequency BJT and MOSmodels, and the high and low frequency response of transistor amplifiers.Several small team projects are used to reinforce theory and todevelop design skills. 2.5 hours lecture, 0.5 hours lab. Corequisite: EE 343L. Prerequisites: EE 215, 342.
EE-343L Electronics II Lab (0.5 credits)
Lab portion of EE 343. Corequisite: EE 343.
EE-354 Embedded Systems (3 credits)
Discusses the design of computer systems with emphasis on the interaction between hardware and software. Topics include register design, memory systems, programmable I/O devices, interrupt driven I/O, controller design and microprogramming, bus systems, interface electronics, and assembly language programming. The C programming language is used for most projects. Prerequisites: Electrical Engineering 254, CS-210 or ENGR-123; working knowledge of C or C+. Fall.
EE-356 Windows Application Development (3 credits)
Introduction to system programming in the Windows operating system. Topics include the console applications, windows forms, elementary graphics, ASP.NET web forms, ADO.NET, TCP/IP communication, and dynamic-link libraries (DLLs) and/or device drivers. Same as CS 376. Prerequisites: Engineering 123 or Computer Science 210; Electrical Engineering 254 or Computer Science 220. Same as Computer Science 376. Fall.
EE-360 Linear Control Systems (3 credits)
Introduction to analysis and design of linear analog and digital feedback control systems. Topics include system modeling, time and frequency domain performance analysis, stability analysis, and controller design. Introduces both rootlocus and frequency domain techniques of system analysis and design. Presents emulation techniques for digital controller design. Prerequisite: Electrical Engineering 310. Spring.
EE-380 Instrumentation (3 credits)
Automation software, interfacing methods and circuit fabrication techniques are presented. Students gain practical experience using test and measurement tools and equipment through a series of project assignments. Prerequisites: EE 215, EE 254, and EE 342. Spring.
EE-410 Analog Circuit Synthesis (3 credits)
Lecture/project covers analysis and design of active circuits. Major topics include feedback, instrumentation amplifiers, active filter design, non-linear circuits, signal generators, and voltage regulation circuits. Prerequisites: Electrical Engineering 310, 343.
EE-415 Digital Image Processing (3 credits)
A study of the computer methods used in processing digital images. Topics include: image acquisition, image enhancement and restoration, image representation, computer image file formats, and image compression. Processing of both monochrome and color images is discussed. Representation and processing of images in the spatial (pixel) and frequency domains is covered. Prerequisite: EE 310
EE-420 Electromagnetics (3 credits)
Introduction to electromagnetic field theory. Topics include vector analysis, static and time-varying electric and magnetic fields, Maxwell's equations, capacitance, inductance, plane electromagnetic waves, and transmission lines.
EE-421 Photonics I (3 credits)
Introduction to basic optics, optical devices and lasers. Topics include geometrical and physical optics, ray matrices, optical fiber characteristics, losses, dispersion, transverse electromagnetic modes, and communications. Examples of current applications and laboratory demonstrations provided. Prerequisite: EE 215. Corequisite: EE 320. Spring.
EE-422 Photonics II (3 credits)
Introduction to lasers and laser systems. Topics include stable optical cavity design, atomic media characteristics, gain equations, rate equations, cavity modes, cavity devices mode control, and pulse forming networks. Prerequisite: Electrical Engineering 421.
EE-425 Lines Waves and Antennas (3 credits)
Examines transmission lines, waveguides, and antennas. Topics include transmission line equations, Smith charts, slotted lines, microwave impedance matching, plane wave propagation, radiation patterns, and antenna arrays. Prerequisite: Electrical Engineering 320. Taught by request.
EE-430 Energy Conversion Systems (3 credits)
Introduces theory of operation and analysis of energy conversion devices and systems. Topics include magnetic and electric forces, electromechanical energy conversion, motors, energy storage, solar electric, wind power, small hydro,fuel cells, biomass, and geothermal. Includes a project lab. Prerequisites: Electrical Engineering 210;Mathematics 222.
EE-432 Analysis of Power Systems (3 credits)
Covers operation, control, protection, and stability of power systems. Topics include power flow analysis, synchronous machine transient analysis, symmetrical components, balanced and unbalanced fault analysis, power system control, frequency control, automatic generation control, reactive power and voltage control, stability analysis, and protection of power systems. Prerequisite: Electrical Engineering 330 or 430.
EE-437 Power System Planning (3 credits)
Covers topics in distribution system planning, load characteristics, design of subtransmission lines, distribution substations, primary and secondary systems, application of capacitors, voltage regulation, distribution system protection, and reliability. Prerequisite: Electrical Engineering 330.
EE-438 Electric Power Quality (3 credits)
Focuses on such subjects as harmonics, noise, filtering, and communication interference in power systems. Modeling, analysis, and solutions are points of emphasis. Topics include measures and standards of power quality, measurements and errors, modeling and design of components, harmonics, loads which cause power quality problems, susceptibility of loads to unwanted signals, and power quality improvement.
EE-440 Communication Electronics (3 credits)
Lecture/project focuses on circuits used in modern wireless communication devices. Topics include high frequency passive component models, transmission line and microstrip theory and the Smith chart, multiport networks and scattering parameters, radio frequency filter design, high frequency active devices and models,matching networks, radio frequency amplifiers, oscillators,and mixers. Prerequisites: EE 320, 470.
EE-445 Industrial Electronics and Controls (3 credits)
Introduces power electronic systems and design of power electronic devices used for commercial and industrial instrumentation and control. Topics include magnetic materials and design, semiconductor switches, power diodes, rectifiers, inverters, ac voltage controllers, level triggered switching devices, power MOSFETS, IGBT, pulsed triggered devices, thyristors, GTO, MCT, thyristor circuits, power transistors, dc to dc converters, switch-mode power supplies, dc to controlled ac, UPS, ac to controlled ac, ac and dc motor drivers. Prerequisite: Electrical Engineering 342.
EE-454 Microcontroller Applications (3 credits)
Focuses on the use of microcontrollers in real-time applications. Organized around several open-ended projects. Each project requires the complete design of a working microcontroller system for a given application and programming in C. Prerequisite: Electrical Engineering 354. Spring.
EE-456 Small Computer System Design (3 credits)
Project-based course covers advanced design and development topics related to real-time microcomputer systems and networks. Topics include memory management, data structures, network architecture, communication protocols, power considerations, hardware design, and hardware/ software trade-offs. Prerequisites: Electrical Engineering 354, 454. Taught by request.
EE-458 Real-Time Operating Systems Programming (3 credits)
Covers real-time operating system concepts including concurrent programming, task scheduling, mutual exclusion, synchronization, and inter-process communication. Practical experience is gained through a series of project assignments.Prerequisites: Computer Science 215; Electrical Engineering 254 or Computer Science 220; Spring.
EE-465 Digital Control Systems (3 credits)
Advanced analysis and design of linear systems. Analysis and design of digital control systems emphasized through classroom discussions, homework assignments and design projects. Both classical and modern control system design techniques studied. Prerequisite: Electrical Engineering 360.
EE-470 Analog and Digital Communications Theory (3 credits)
Communication theory for both digital and analog systems. Emphasis on digital systems. Topics include Fourier analysis, modulation and demodulation theory, digital signaling formats, communication systems design fundamentals, and applications. Probability and random processes introduced and applied to the study of narrow band noise in communication systems. Prerequisite: Electrical Engineering 310. Fall.
EE-471 Wireless Communication Theory (3 credits)
Wireless Communication Theory (3) This is a senior level course that provides a systems-level view of modern wireless communication systems. Special emphasis will be placed upon development and understanding of the cellular telephone network. Topics include: wireless propagation, antenna radiation, channel characteristics, interference, cellular concepts including clustering, cell sectoring and splitting, traffic engineering, pulse detection, the matched filter, correlation receivers, digital modulation, spread-spectrum signaling, channel access methods including frequency division (FDMA), time division (TDMA), and code division (CDMA) multiple access. Prerequisites: EE 310. Spring.
EE-494 Senior Project Seminar (0 credits)
Provides guidance for the selection of a topic in the senior design project sequence. Projects, including industry-sponsored projects, presented for student selection. Prerequisite: 12 hours of 300-level electrical engineering courses. Spring.
EE-495 Senior Project Phase I (3 credits)
Plan the engineering project and formulate the preliminary design under the guidance of faculty and industrial advisors. Seminar sessions address professional ethics and the social and political contexts of engineering. The economic, environmental, health, and safety aspects of the project are addressed in a written engineering proposal, as are the issues of manufacturability and sustainability. An oral presentation of the proposal is required. Students submit written reaction to seminar topics. Prerequisites: Electrical Engineering 380, 494; GPA of at least 2.0. Fall, spring.
EE-497 Senior Project Phase II (3 credits)
Complete the design proposed in Electrical Engineering 495 and build a prototype. A formal design review conducted early in the semester. Written final report, oral report, and demonstration of the completed project required. Prerequisite: Electrical Engineering 495. Fall, spring.
EE-498 Independent Study in Electrical Engineering (1-3 credits)
(variable credit) Independent study of a topic of interest to the student. Requires faculty sponsor and approved detailed study plan.
EE-499 Special Topics in Electrical Engineering (1-3 credits)
(1-3 credits) Study of topics of special interest. Topics will be announced. May be repeated. Prerequisites announced when scheduled.