Computer Science, Electrical and Computer Engineering

School

School of Science, Engineering and Technology

School Interim Dean

Thomas "Ted" Macrini, Ph.D.

Department

Computer Science, Electrical and Computer Engineering

Interim Department Chair

Wenbin Luo, Ph.D.

Annual Enrollment and Graduation of Accredited Programs

The Bachelor of Science degree program in Computer Engineering is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org

The Bachelor of Science degree program in Electrical Engineering is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org

Student Learning Outcomes

The student outcomes that prepare graduates to attain the program educational objectives are:

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

  2. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors

  3. an ability to communicate effectively with a range of audiences

  4. an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts

  5. an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives

  6. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

  7. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies

Computer Science

Computer Science (CS) focuses on the theory, design and development of software and computational systems. Students learn programming, algorithms, cybersecurity, artificial intelligence and data science while building strong skills in logic and problem-solving.

Typical careers include software developer, data scientist, cybersecurity analyst and AI/ML engineer.

  • Bachelor of Science in Computer Science with a minor in Mathematics provides the most rigorous degree due to the mathematics requirements, and prepares students for the widest range of job opportunities in the field of computer science.
  • Bachelor of Arts in Computer Information Systems requires five business courses, providing a focus on business applications of computers and preparing students for careers in computers as they apply to business problems.
  • Bachelor of Arts in Computer Science/Application Systems offers the greatest flexibility to a computer science student, providing five open electives and thus allowing a student to earn a minor in another discipline of their choosing.

Computer Engineering

Computer Engineering (CE) blends electrical engineering and computer science, focusing on hardware-software integration in systems like embedded devices, robotics and IoT. It emphasizes digital systems and microprocessors and explores how software interacts with hardware.

Typical careers include embedded systems engineer, hardware designer, robotics engineer and firmware developer.

  • Bachelor of Science in Computer Engineering

Electrical Engineering

Electrical Engineering (EE) applies principles of electricity, electronics and electromagnetism to technologies ranging from circuits and microprocessors to power systems and renewable energy. Students gain skills in areas such as signal processing, control systems, communications and system design at both the micro and macro scales. The field also explores emerging technologies like wireless networks, biomedical devices and sustainable energy solutions.

Career paths include power systems engineer, electronics design engineer, control systems engineer and telecommunications engineer.

  • Bachelor of Science in Electrical Engineering

Software Engineering

Software Engineering (SE) applies systematic engineering principles to build reliable, scalable software systems that meet real-world business needs. Students focus on software architecture, requirements analysis, project management, quality assurance and collaborative development processes like Agile and DevOps. The program emphasizes working with stakeholders and ensuring software maintainability in professional team environments.

Graduates are well-prepared for software engineer, full-stack developer, software architect, QA/test engineer and project manager roles.

  • Bachelor of Science in Software Engineering

Minor in Computer Science

All courses serving as prerequisites in the School of Science, Engineering and Technology must be completed with a “C” or better in order to advance to the next sequenced course.

CS 1300. Introduction to Computers. 3 Semester Hours.

Survey of computer systems and their integration and application in society. The fundamentals of software development are discussed and applied through word processing, spreadsheet, slide presentation, and database applications.

CS 1301. Computer Science Principles. 3 Semester Hours.

Includes a variety of computing topics with some programming and computational thinking.

CS 1310. Programming I in C. 3 Semester Hours.

Fundamentals of the software development process with emphasis on program design (algorithm development), structured programming techniques, and code and test using a structured, modular programming language. (Fall only) Requires access to a Windows laptop.

CS 1311. Data Structures. 3 Semester Hours.

Data structures including properties, representation, and manipulation of internal information structures including lists, queues, stacks, and trees. (Spring only) Prerequisite: C or better in CS 1310 or EG 1302. Requires access to a Windows laptop.

CS 1320. Topics in Programming Languages. 3 Semester Hours.

Various topics in computer programming, involving designing, coding, and testing computer programs using language-specific commands. May be repeated as topics change.

CS 2110. Sophomore CS Seminar. 1 Semester Hour.

Introduction to various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 2313. Object Oriented Programming I. 3 Semester Hours.

Introduction to object-oriented programming (OOP) concepts using the C++ programming language. Topics include classes, objects, exception handling, operator overloading, inheritance, polymorphism, templates (generics), stream and file input/output, and the Standard Template Library (STL). (Fall only) Prerequisite: C or better in CS1311.

CS 2315. Algorithms. 3 Semester Hours.

Topics include review of C programming language concepts and theory, design, analysis, implementation, and application of fundamental computer algorithms. (Fall only) Prerequisite: C or better in CS1311.

CS 2323. Object Oriented Programming II. 3 Semester Hours.

Review of object-oriented program (OOP) concepts using the Java programming language. Topics (in addition those listed for CS2313) include graphical user interface (GUI) design and implementation, regular expressions, applets, multithreading, networking, and database access. (Spring only) Prerequisite: C or better in CS2313.

CS 2350. Computer Architecture. 3 Semester Hours.

Introduction to the logical organization and design of digital computer hardware. Topics include simple digital logic design, memory architectures, microprogramming, instruction set architecture (ISA), and assembly language programming. (Spring only) Prerequisite: C or better in CS2313 or CS2315.

CS 3110. Junior CS Seminar. 1 Semester Hour.

Extension of various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 3300. Introduction to Programming for Data Analytics (in Python). 3 Semester Hours.

Fundamentals of the software development process with emphasis on program design (software structure and algorithm development), structured programming techniques, coding, and testing using the Python programming language. Topics include literals, variables, arithmetic and relational operators, selection statements, loops, functions with parameter passing, arrays, lists, sets, dictionaries, tuples, terminal and file I/O, exception handling, and introduction to domain-specific Python libraries used for data analytics, graphics, statistics, and database, as appropriate for students taking the course.

CS 3310. Intro to Systems Analysis and Design. 3 Semester Hours.

An introduction to the use of current methodologies for the analysis and design of various types of computer software systems. Methodologies studied include both the traditional and object-oriented approaches, including Universal Markup Language (UML). (Fall only).

CS 3311. Compilers. 3 Semester Hours.

Design and implementation of compilers. Prerequisite: C or better in CS1311.

CS 3320. Files and Database. 3 Semester Hours.

Database system concepts, relational data model and relational database, SQL, relational algebra, entity relationship model, UML diagrams, database programming techniques, functional dependencies and database normalization, database security. File structures, XML files, indexing, hashing, B trees, B+ trees, distributed databases, NoSQL databases, and big data. Prerequisites: CS 2313 or EG 1316 (Fall only).

CS 3330. Computer Networks. 3 Semester Hours.

Fundamentals of data communications, TCP/IP protocol architecture, media, transmission, encoding, error detection and handling, link control, flow control, multiplexing. Local area networks. WAN technology and protocols, circuit and packet switching, IP, routing. Wireless networks. Different applications. Prerequisite: C or better in CS2313 (Spring only).

CS 3335. Survey of Programming Languages. 3 Semester Hours.

Survey of existing high-level computer programming languages with emphasis on implementation of language concepts. Students design a general-purpose programming language and develop a working compiler for their language. (Fall only) Prerequisite: C or better CS2313.

CS 3340. Software Engineering. 3 Semester Hours.

Engineering approach to software development focusing on product development in a team with appropriate documentation. (Spring only) Prerequisite: C or better in CS3310 or EG 2342.

CS 3350. Operating Systems. 3 Semester Hours.

The study of the design and implementation of computer operating systems, including issues in process, memory, file system, storage, and device management. (Fall only) Prerequisite: C or better in CS 2350 or EG 3313.

CS 4110. Senior CS Seminar. 1 Semester Hour.

Further extension of various topics in computer science and career planning/preparation, including electronic portfolio and resume preparation, interviewing skills, employer research, professional event attendance/networking, and presentations from industry on careers in computer science, as well as internship/job opportunities. Students create their senior project proposal. (Fall only) Prerequisite: CS major (BSCS, BSCS w/Cyber, BSCS w/Game, BACIS, BAAS, and BACSTC).

CS 4175. Advanced Topics. 1 Semester Hour.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: C or better in CS2313 or instructor permission.

CS 4275. Advanced Topics. 2 Semester Hours.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: : C or better in CS2313 or instructor permission.

CS 4314. Software Security. 3 Semester Hours.

Theory and practice of software security. Identification of potential threats and vulnerabilities early in the design cycle. Methodologies and tools for identifying and eliminating security vulnerabilities. Techniques to prove the absence of vulnerabilities and ways to avoid security holes in new software. Essential guidelines for building secure software: how to design software with security in mind from the ground up and to integrate analysis and risk management throughout the software life cycle. Prerequisite: C or better in CS 2313 or EG 1316.

CS 4315. Artificial Intelligence & Machine Learning. 3 Semester Hours.

An overview of artificial intelligence and machine learning. Topics include knowledge representation, search, supervised and unsupervised learning, decision trees, clustering, dimensionality reduction (PCA), neural networks, and selected applications of machine learning. Prerequisite: CS2313.

CS 4325. Computer Graphics. 3 Semester Hours.

The study and implementation of computer imaging and techniques for representation, manipulation and display of graphical objects. Prerequisite: C or better in CS 2313.

CS 4335. Game Development. 3 Semester Hours.

A study of computer games and computer game development including evaluating, designing, and developing a computer video game with appropriate documentation. Prerequisites: C or better in CS2313.

CS 4345. eLearning and Gamification. 3 Semester Hours.

A study of computer based tutoring systems, intelligent tutoring systems, and the gamification of instruction. Students evaluate computer tutors and make a tutor. Prerequisites: C or better in CS2313.

CS 4361. Computer Network Security. 3 Semester Hours.

Overview of network architecture and protocols. Network specific threats and attack types. Hacking methodologies used to assess and attack a target computer system. Security for wireless networks. Introduction to cryptography. Using security tools and techniques to find and fix vulnerabilities. Network protection systems. Prerequisite: C or better in CS 2313.

CS 4362. Comp Security & Privacy. 3 Semester Hours.

Introduction to security and privacy issues. Cryptographic tools, authentication, access control; database security; malicious software, DoS, intrusion detection, firewalls and intrusion prevision systems; software security, buffer overflow, operating system security; end-to-end system security, trusted computing, multilevel security, cloud security. Prerequisite: C or better in CS 2313.

CS 4363. Cloud Computing Security. 3 Semester Hours.

Overview of cloud computing, cloud services and platforms, Hadoop and MapReduce, cloud application development. Cloud security, architecture, authentication, authorization, access control, data confidentiality, key management; provable data possession for static data, provable data possession for dynamic data; integrity verification for multiple static/dynamic data copies over cloud servers, dynamic data and mutual trust.Prerequisite: C or better in CS 2313.

CS 4364. Digital Forensics and Cyber Crime. 3 Semester Hours.

Overview of digital forensics and cybercrime, digital forensics methods and procedures, legal issues in digital forensics, disk structures, file systems, evidence acquisition and processing, OS registry and artifacts, reporting and testimony, mobile forensics, network forensics.

CS 4365. Preparation for Security Certification. 3 Semester Hours.

Security trends and general security concepts, information security and risk management, change management, privilege management, access control, security architecture and design, physical and environment security, telecommunications and network security, cryptography, public key infrastructure, standards and protocols, business continuity and disaster recovery, legal, regulations, compliance, and investigations, application security, operations security, authentication and remote access, wireless security, intrusion detection systems, security baselines, types of attacks and malicious software, e-mail and instant messaging, web components, computer forensics.

CS 4367. Cybersecurity Risk Management. 3 Semester Hours.

Risk management fundamentals, risk management frameworks, categorize information and information systems, security controls, implement security controls, assess security controls, preparing the information system for use, monitor security state, practical applications of the NIST and technology risk management framework, physical and human resources security, security auditing, legal and ethical aspects.

CS 4368. Cybersecurity Policy and Law. 3 Semester Hours.

An overview of basic legal concepts emanating from the U.S. Constitution, federal statutes, case law, administrative regulations and treaties as they address domestic cyber law with a brief introduction to emerging international cyber warfare.

CS 4369. Cryptography Principles and Practice. 3 Semester Hours.

Basic concepts of cryptography, symmetric encryption schemes, review of finite fields, number theory, and elliptic curves, advanced cryptographic schemes, public-key cryptography, MAC, hash functions, digital signature, key management and distribution, user authentication, and different applications. Prerequisite: C or better in CS 2313.

CS 4375. Advanced Topics. 3 Semester Hours.

Advanced topics in Computer Science including internship. May be repeated for credit when topics vary. Prerequisite: C or better in CS2313 or instructor permission.

CS 4385. Programming Projects. 3 Semester Hours.

Students create a series of programming and computational assignments and solutions appropriate to first programming courses such as in middle and high school.

CS 4395. Senior Project. 3 Semester Hours.

Application of software engineering techniques to the analysis, design, implementation, and testing of a comprehensive computer software development project. (Spring only) Prerequisite: CS3340, Senior standing or higher and completed senior project proposal.

EG 1113. C Programming for Engineering Lab. 1 Semester Hour.

The lab focuses on use of editors, compilation, debugging, basic C programs, string manipulation, file management, conditional statements, switch case, loops, arrays, functions, files, command line arguments, string manipulations. (Spring) Corequisite: EG1213.

EG 1122. MATLAB Programming. 1 Semester Hour.

The course focuses on MATLAB and its application to engineering problems, including M-file and its debugging features, flow control in MATLAB, more advanced usage of MATLAB help utilities and commands, toolboxes, solving advanced engineering and scientific problems using MATLAB, and advanced graphing capabilities of MATLAB. (Spring) Prerequisite: EG1213.

EG 1213. C Programming for Engineering. 2 Semester Hours.

The goal of this course is to provide students with a working knowledge of C programming language as defined by the ANSI standard. This class does not just focus on the C language syntax and program constructs. It will also emphasize good programming habits in developing a well-structured code. The concepts that will be presented in this course include programming environment; basic C program structure; variables, constants, and operators; looping with for, while, and do while statements; decision-making constructs (if, if/else, switch, and conditional expression statements); using and writing functions; using arrays, pointers, and combination thereof; string operations/functions; performing file I/O; using the preprocessor directives; and using modular development methodology. (Spring) Prerequisite: none. Corequisite: EG 1113.

EG 1303. Engineering and Society. 3 Semester Hours.

This course introduces students to the engineering profession and its role in addressing and solving contemporary global and societal challenges. Students will explore the application of engineering concepts, principles, and tools to creatively solve problems while considering public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors. Students will be exposed to ethical and professional responsibilities in engineering decision-making, and learn to exercise critical thinking, presentation and writing skills. This course is open to all university majors. (Fall; Spring) Prerequisite: none.

EG 1316. Object-Oriented Programming and Design. 3 Semester Hours.

Introduction to object-oriented programming and design. Classes, objects, data members (class attributes), methods (member functions or class behavior), compilers, IDEs, and standard library. Object-oriented analysis and design methodologies and their role in the software development process. Object-oriented programming principles: data abstraction, encapsulation, inheritance, and polymorphism. Software reuse. The Unified Modeling Language (UML) as a design and development tool. Hands-on programming is emphasized with programming assignments. (Spring) Prerequisite: EG 1213 or CS 1310.

EG 1341. Graphics and Design. 3 Semester Hours.

Brief introduction to the history of drawing. Introduction to drawing instruments, lettering, and the sketching process. Development of perceptual and conceptual drawing skills through a variety of approaches, including sighting, contour line, and compositional studies. Elaboration of work drawings: pictorials, orthographic projection, dimensioning, sections, and auxiliary views. Descriptive geometry: points, lines, planes, revolutions, intersections, etc. Utilization of CAD software. Introduction to the engineering design process and development of basic design projects. The course is open to all university majors. (Fall; Spring) Prerequisite: none.

EG 2113. Logic Design Laboratory. 1 Semester Hour.

This lab introduces the basic principles of digital electronics design using standard TTL devices. Experiments illustrate the principles learned in the Fundamentals of Logic Design (EG 2313) class. The first part of this laboratory focuses on the design of combinational networks. This includes the basic operation of various logic gates; verification of truth tables; minimization of logic functions; realization of digital functions using multiple stage networks, decoders, multiplexer, and read-only memory. The second part of this lab emphasizes the design of sequential network. Here, students are introduced to various types of flip-flops, counters; design of digital circuits using Finite State Machines. Writing intensive course. (Fall) Corequisite: EG 2313.

EG 2121. Circuit Analysis Laboratory. 1 Semester Hour.

This hands-on laboratory course reinforces the theoretical principles covered in circuit analysis through practical experimentation. Students will validate key electrical theorems and laws, such as Ohm’s Law, Kirchhoff’s Voltage and Current Laws (KVL/KCL), Thevenin’s and Norton’s Theorems, using real-world measurements and simulations. The course emphasizes proficiency in the use of standard electrical laboratory equipment, including oscilloscopes, function generators, DC power supplies, and digital multimeters. Students will explore DC and AC circuit behavior, including transient and steady-state responses in first-order (RC and RL) and second-order (RLC) circuits. Additional topics include frequency response analysis, resonance in RLC circuits, operational amplifier (op-amp) applications, and basic filter design. Students are expected to design circuits in multiSIM before implementing them on a breadboard to enable comparison of simulated and experimental results. This is a writing-intensive course. (Fall) Corequisite: EG 2321.

EG 2126. Electronics Laboratory. 1 Semester Hour.

This comprehensive lab integrates foundational and advanced topics in electronics through hands-on experimentation. Students will explore DC and AC circuit behavior, nonlinear devices such as diodes and transistors. Lab experiments include rectifiers, clamping and filtering circuits, transistor biasing and switching, common-emitter and emitter-follower amplifiers, current sources and mirrors, FET-based configurations, open-loop and closed-loop configurations, integrators, differentiators, and active rectifiers. Additional topics include analog switches, sample-and-hold circuits, comparators, Schmitt triggers, and phase-locked loops. (Fall) Corequisite: EG 2326: Electronics. Prerequisite: EG 2121: Circuit Analysis Lab.

EG 2312. Data Structures and Algorithms. 3 Semester Hours.

This course builds on students' prior knowledge of programming and mathematics, introducing advanced techniques for designing and analyzing data structures and algorithms. Students will learn to evaluate and implement key data structures and algorithms used in modern operating systems, application programs, and other computational systems. Emphasis is placed on practical problem-solving, efficiency analysis, and real-world applications, equipping students with the skills to develop optimized solutions for engineering and software development challenges. (Spring) Prerequisites: MT2323 and either EG1213 or CS1310.

EG 2313. Fundamentals of Logic Design. 3 Semester Hours.

The first half of this course focuses on combinational network design. This includes the number systems and conversion; Boolean algebra; minimization of switching functions using Karnaugh maps; multi-level gate networks; multi-output networks; realizing Boolean functions using multiplexers, decoders, read-only memories, and programmable logic devices. The second half of this course focuses on the analysis and the design of sequential network. Topics covered in this part of the course include flip-flops; designing counters using different type of flip-flops; analysis of sequential networks; derivation of state graphs and tables; introduction to Finite State Machines; minimization of state tables; guidelines for state assignment; derivation of flip-flop input equations, and realization of sequential networks. (Fall) Prerequisite: none. Co-requisite: EG 2113.

EG 2321. Circuit Analysis I. 3 Semester Hours.

This course provides students with a foundational understanding of electricity essential for circuit design and analysis. The course covers fundamental circuit elements and their models, resistive circuits, and key circuit theorems. Students will learn loop and nodal analysis techniques for resistive networks, as well as methods for analyzing operational amplifiers. Additionally, the course explores circuits containing energy storage elements, including capacitors and inductors, and examines the natural and step responses of RL, RC, and RLC circuits. (Fall) Prerequisite: PY 2404 and MT 2332 or MT 2317 (concurrent registration allowed for Math courses).

EG 2324. Circuit Analysis II. 3 Semester Hours.

The goal of this course is to provide students with a working knowledge of phasor diagrams; sinusoidal steady-state power analysis and complex load matching; series and parallel resonance; Laplace transform and its applications in circuit analysis: the step function, the impulse function, inverse transforms, initial and final value theorems, and circuit analysis in the s-domain. Transfer functions and Bode diagrams are also included. (Spring) Prerequisite: EG 2321.

EG 2326. Electronics. 3 Semester Hours.

Circuit models used for diodes. DC analysis and design of diode-based switching circuits. AC behavior of diodes, including AC to DC conversion, small signal model, and other AC circuits. DC behavior of Metal-Oxide-Semiconductor-Field-Effect transistors (MOSFET) and their application in circuits. AC application of MOSFET and design of amplifier circuits. DC behavior of Bipolar-Junction transistors (BJT) and their application in circuits. AC application of BJT and design of amplifier circuits. Basics of multistage amplification. (Spring) Prerequisite: EG2321.

EG 2343. Statics. 3 Semester Hours.

Fundamentals of statics, vector methods, concentrated and distributed force systems, methods of moments for extended rigid structures, statice quilibrium of structures. Topics also include Moments of inertia, Friction, and Centroids/Center of Gravity. (Fall; Spring) Prerequisites: EG1341, MT2412, and PY1404.

EG 2393. Engineering Economy. 3 Semester Hours.

This course introduces students to concepts and methods of economy, finance, and accounting in the context of engineering as an economic activity within a globally-connected society. Students will explore the changing value of money and goods over time through the effects of interest, inflation, and currency exchange, and apply this knowledge to analyze the breakeven and payback of engineering projects and engineered products, as well as to compare alternatives. Capital and operating costs, sustaining capital for replacements and overhauls, and salvage value and remediation or recycling cost will figure into our analyses. As tools for project management, students will gain exposure to financial statements and their notation, the stage-gate process for financing projects as stakeholder investments, the value of earned work hours, the escalation and scaling of estimates, and how to quantify risk in dollars. The course teaches spreadsheet skills and makes extensive use of Excel. (Fall; Spring; Summer) Prerequisite: none.

EG 3101. Engineering Design & Analysis Workshop I. 1 Semester Hour.

Students learn the foundation skills, concepts, structure, and application of engineering design by working individually and in teams on a variety of design related activities and projects. The course activities require students to identify opportunities, develop requirements, perform analysis/synthesis, generate multiple solutions, evaluate them against requirements, and make trade-offs by applying appropriate math, basic science or engineering, involve (iterative and creative) decision-making process for devising a system, component or a process to meet desired needs by considering technical constraints, risks, public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors (such as accessibility, aesthetics, codes, constructability, cost, ergonomics, extensibility, functionality, interoperability, legal considerations, maintainability, manufacturability, marketability, policy, regulations, schedule, standards/codes, sustainability, or usability), design thinking, design sprints, usability for product/process development. (Fall) Prerequisite: EG1303.

EG 3102. Engineering Design & Analysis Workshop II. 1 Semester Hour.

The course emphasizes team projects, with each student contributing uniquely based on their background. Students will develop essential teamwork skills, demonstrate leadership, and recognize and promote diversity and inclusiveness by incorporating varied perspectives, ideas, skills, and backgrounds. Effective project management is a key focus, including setting goals, planning tasks, and meeting objectives using tools such as Gantt charts, schedules, Scrum methodology, goal setting, and decision matrices. The course also fosters innovation and entrepreneurship. A term design project is a central feature, requiring students to demonstrate commitment to on-time delivery and effective teamwork. (Spring) Prerequisites: None.

EG 3112. Digital System Design Laboratory. 1 Semester Hour.

Experiments illustrate the principles learned in the Digital Systems Design (EG 2382) class. The first part of this laboratory focuses on the design of sequential networks using 7400 series TTL and CMOS devices. This includes comparing the electric characteristics; drive capability, fan-in, and fan-out of TTL and CMOS devices; Tristate buffers, and Open-collector outputs. The second part of this laboratory emphasizes the more recent digital systems design techniques that use modern CAD tools that support Hardware Design Languages such as VHDL. Many laboratory experiments introduce students to various VHDL sequential and concurrent constructs. Students learn how to simulate, verify, and synthesize their designs using state-of-the-art CAD tools. Writing intensive course. (Spring) Prerequisite: EG2113; Corequisite: EG3312.

EG 3122. Advanced Electronics Design Lab. 1 Semester Hour.

This hands-on laboratory course emphasizes the design, construction, and testing of advanced analog, digital, and mixed-signal electronic circuits. Students will work on practical projects involving operational amplifier circuits and feedback mechanisms, active filters, oscillators, voltage regulators, and both linear and switching power supplies. Additional focus areas include precision and low-noise design techniques, instrumentation amplifiers, and the implementation of analog-to-digital (ADC) and digital-to-analog (DAC) converters. Students will gain experience evaluating frequency response, analyzing circuit performance, and troubleshooting complex systems. MultiSIM is heavily used throughout the lab to simulate and validate circuit designs prior to physical implementation. (Spring) Corequisite: EG 3322.

EG 3312. Digital Systems Design. 3 Semester Hours.

Review of sequential network design concepts; iterative networks; integrated circuit logic families and their electric characteristics; Mixing logic families; Hazard detection and prevention; designing digital systems using Programmable Logic Devices (PLD); digital systems design using Algorithmic State Machine (ASM) charts. Design of combinational and sequential networks using VHDL. Students will learn how to use the top-down design techniques to analyze, design, simulate, verify, and synthesize complex digital circuits using modern CAD tools. (Spring) Prerequisites: EG2113 and EG2313.

EG 3313. Computer Organization and Architecture. 3 Semester Hours.

This course explores the fundamental principles of Computer Organization and Architecture, with a strong emphasis on RISC (Reduced Instruction Set Computer) architecture. Topics include instruction set architecture (ISA), addressing modes, and instruction formats. Students will examine the design and operation of the Arithmetic Logic Unit (ALU), data paths, and control. The course also introduces CPU performance evaluation techniques and delves into pipelining, including pipelined data paths, control, and hazard handling. Additionally, students will study the memory hierarchy, covering cache fundamentals, cache performance optimization, and virtual memory principles. Through practical exercises and hands-on projects, students will gain a deep understanding of modern processor design, with a particular focus on RISC-based architectures. (Fall) Prerequisite: EG2313.

EG 3322. Advanced Electronics Design. 3 Semester Hours.

This course emphasizes practical circuit design and analysis. Key topics include operational amplifier circuits and feedback mechanisms, active and passive filters, oscillators, voltage regulators, linear and switching power supplies, precision and low-noise design techniques, AM and FM modulation, analog to digital and digital to analog circuits, and frequency response. multiSIM will be heavily used throughout the course for simulation and design validation. (Spring) Prerequisite: EG 2326: Electronics.

EG 3323. Microprocessors I. 3 Semester Hours.

This is the first part of a two-semester course sequence that is intended to familiarize students with the development of microcontroller-based products. The first goal of the course is to teach students the skills of assembly language programming in general and mixed programming with C. The second goal of the course is to introduce and familiarize students with different architecture and hardware designs in microcontrollers. (Fall) Prerequisites: EG1113 and EG1213.

EG 3324. Microprocessors II. 3 Semester Hours.

The second part of a two-semester course sequence is intended to familiarize students with the development of microcontroller-based products. Concepts covered in this course include interfacing, timing diagrams and synchronization for handshake purposes. The course utilizes all the onboard functionalities microcontroller such as the A/D converter; synchronous and asynchronous serial interfaces; a timer module with input capture, output compare, and pulse accumulator capabilities; PWM; controller area network (CAN); and a variety of input and output ports. (Spring) Prerequisite: EG3323 and EG 2313.

EG 3325. Signals and Systems. 3 Semester Hours.

Mathematical modeling and properties of continuous signals. Mathematical modeling and properties of linear systems, time-invariant systems, Bounded-Input-Bounded-Output (BIBO) stable systems. Basics of Fourier Series and Fourier Transform. Response of continuous Linear-Time-Invariant (LTI) systems to periodic and non-periodic signals. The convolution integral. Analysis of Power spectrum of periodic signals and energy spectrum of non-periodic signals. Sampling theorem. (Fall) Prerequisites: EG1122, EG2324, and MT2333.

EG 3326. Electromagnetic Theory. 3 Semester Hours.

Basics of transmission lines, including signal propagation, line impedance, impedance matching and power analysis. Review of the electric and magnetic fields. Maxwell’s Equations and its application to design and analysis of waveguides and antennas. (Spring) Prerequisites: EG2324 and MT2333.

EG 3328. Control Systems. 3 Semester Hours.

This course provides a comprehensive introduction to automatic control systems, covering both theoretical analysis and practical design for various engineering applications. Key topics include the modeling of physical systems using transfer functions and state-space representations, system response analysis, and performance evaluation based on design criteria. The course explores control system characteristics such as stability, sensitivity, steady-state errors, and transient response. Students will learn stability analysis techniques, including the Routh-Hurwitz criterion, Root Locus, Nyquist, and Bode methods. The course also covers lead and lag compensators, PID controllers, and control system design using the Root Locus and frequency response methods. MATLAB and SIMULINK are integrated throughout to facilitate system analysis and design. (Spring) Prerequisite: EG3325.

EG 3360. Requirements Engineering. 3 Semester Hours.

This course introduces the fundamentals of software requirements management. Topics covered include requirements gathering, system modeling and software specifications. The major emphasis is on using a variety of modeling tools and techniques to define a system specification. Languages and models for representing requirements. Analysis and validation techniques, including need, goal, and use case analysis. Students participate in a group project on software requirements. (Spring) Prerequisite: EG3365.

EG 3362. Software Design and Architecture. 3 Semester Hours.

This course explores fundamental principles and practices of software design and architecture. Students learn architectural patterns (microservices, event-driven, serverless, layered), design patterns (GoF patterns, SOLID principles), and architectural styles (REST, MVC, hexagonal). Core topics include middleware architectures, component-based design, and frameworks. The course emphasizes designing for quality attributes: performance optimization, security by design, scalability, reliability, maintainability, and reusability. Students apply techniques for architectural modeling (UML, C4 model), technical decision-making, and trade-off analysis. Through hands-on projects, students evaluate architectures using metrics and architectural fitness functions. Topics include cloud-native architectures, API design, domain-driven design, and architectural documentation. Students develop skills in building, documenting, and assessing software architectures for modern distributed systems. (Spring) Prerequisite: EG 1316 and EG 2312.

EG 3365. Software Engineering. 3 Semester Hours.

This course provides comprehensive training in software engineering principles and modern development practices. Students learn Agile methodologies (Scrum, Kanban), requirements engineering, software architecture, and design patterns. Core topics include object-oriented analysis/design using UML, cloud-based software development, and version control systems. Students gain hands-on experience with software testing strategies (unit, integration, system testing), quality assurance practices, and security/privacy considerations. Project management principles include sprint planning, user story mapping, and stakeholder communication. The course introduces DevOps concepts and CI/CD fundamentals. Students work in teams to develop applications using industry-standard tools, applying best practices for code management, testing, and documentation to create secure, maintainable software solutions. (Fall) Prerequisite: EG2312.

EG 3369. Human Computer Interaction. 3 Semester Hours.

The goal of this course is to teach the fundamentals of human-computer interface in software design and development. Students learn to design, implement, and evaluate effective and usable graphical computer interfaces. The course emphasizes the importance of usability and iterative design. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Color, icons, and sound. Students work on individual and team projects to design, implement, and evaluate computer interfaces. (Spring) Prerequisite: EG1316.

EG 4101. Eng. Design & Analysis Workshop III. 1 Semester Hour.

Course activities involve application of professional and ethical concepts from the National Society of Professional Engineers (NSPE) Code of Ethics for Engineers and ethical frameworks such as utilitarianism and virtue theory for ethical decision making. Course activities require students to identify ethical/professional issues, perform systematic analysis, and make informed judgments based on the impact of product/process design or engineering solutions in global, economic, environmental, and societal contexts. Course activities require students to independently identify and apply new knowledge through reference to external resources such as engineering standards and research publications. (Fall) Prerequisites: PL2301.

EG 4122. Energy Conversion Laboratory. 1 Semester Hour.

Laboratory examination of the design, construction and operating characteristics of transformers and various types of motors and generators. Measurement of transformer parameters. The experimental investigation of the ac generator (alternator); the series, shunt, and compound dc motors; the synchronous motor; the induction motor; and the universal motor. This is a writing-intensive course. (Elective) Corequisite: EG4322.

EG 4301. Senior Design Project I. 3 Semester Hours.

This is the first course in the six-hour senior design sequence. It requires a thorough understanding and implementation of the iterative engineering design and analysis process: need recognition, literature review, assessment of societal impact, project management, definition of design objectives, design, model building, analysis, implementation, validation, and testing. Industry-university cooperation, status briefings with the industrial sponsors and senior design instructor are required. A common reflection theme is the impact of the students' engineering projects on the local, national, or global communities as they enter the next stage of their lives. (Fall) Prerequisite: Senior standing in the major and consent of the academic advisor. Co-requisite: EG 4101. Specific prerequisites by major: CE: EG3312, EG3112, EG3313, and EG3365; EE: EG 3321, EG 3324, and EG3226; EM: EG 3394, EG 3396, and EG 3398 ES: Advisor consent; IE: EG 3394, EG 3396, EG 3398, and Co-requisite EG4391; ME:,EG 3343, EG 2423, EG 3349, and EG 4343 SE: EG 3101, EG 3102, EG 3362, and EG 3365.

EG 4302. Senior Design Project II. 3 Semester Hours.

This is the second course in the six-hour senior design sequence. In addition to the requirements in EG 4301, this course requires a formal final presentation and comprehensive final report submission. The final report should include a reflection by each student about their personal growth in terms of their self-perception and maturity, spirituality, and their perception of others and the world as a result of their tenure at the university. This is a writing intensive course. (Spring) Prerequisite: EG4301.

EG 4315. Cryptography Principles and Practices. 3 Semester Hours.

This course provides a comprehensive introduction to cryptographic principles and techniques. Topics include fundamental concepts of cryptography, symmetric encryption schemes, finite fields, number theory, and elliptic curves. Students will explore advanced cryptographic methods, including public-key cryptography, message authentication codes (MACs), hash functions, and digital signatures. The course also covers key management, secure key distribution, user authentication, and real-world applications of cryptographic protocols. Through theoretical foundations and practical applications, students will gain a strong understanding of modern cryptographic systems and their role in securing information. (Fall) Prerequisite: EG2312.

EG 4316. Computer Networks. 3 Semester Hours.

This course provides a foundational understanding of computer networking and data communication, structured around the OSI and TCP/IP reference models. Students will explore the roles and functions of each layer, including the application, transport, network, and link layers, as well as local area networks (LANs). The course also covers key design principles, performance metrics, and major challenges in building high-speed networks. Additionally, students will examine current trends and emerging technologies shaping modern computer networks. (Spring) Prerequisite: MT 4331 or MT 3303.

EG 4318. Parallel Programming. 3 Semester Hours.

Brief review of uniprocessor organization and architecture. Flynn taxonomy of parallel computers. Fundamental design issues in parallel processing. Interconnection networks, Parallelization process. Partitioning for performance. Data access and communication in a multi-memory system. Analysis of parallel algorithms. Performance issues from the processor perspective. Shared memory multiprocessors. Single level and multilevel cache hierarchies. Cache coherence issues, memory consistency, and synchronization. Snooping bus protocols. Distributed memory systems. Directory-based cache coherence. Parallel programming of distributed-memory systems using MPI. Parallel programming of shared-memory multi-core processors using Posix Threads (Pthreads) and OpenMP. (Spring) Prerequisites: EG3313 and EG2312.

EG 4322. Energy Conversion. 3 Semester Hours.

Three-phase circuits, magnetic circuits, transformers, electrical-mechanical transducers, dc motors, synchronous motors, induction motors, ac generators. Theoretical principles, mathematical models, operating characteristics, and practical applications of transformers, motors, and generators are emphasized. (Elective) Prerequisites: EG2324, EG3326, and MT2332.

EG 4323. Semiconductor Devices. 3 Semester Hours.

Review of quantum mechanics. Introduction to crystallography. Energy band and charge carriers in pure, n-type and p-type semiconductor materials. Physical properties of p-n junction and diodes. Physical behavior of Bipolar Junction Transistors (BJT) in active, saturation and cut off modes. Physical behavior of Field Effect Transistors (FET) in pinch off, triode and off modes. (Fall) Prerequisites: EG2326.

EG 4325. Digital Signal Processing. 3 Semester Hours.

Discrete time signals & systems, z-transform, discrete Fourier transform, flow graph and matrix representation of digital filters, digital filter design techniques and computation of the fast Fourier transform (FFT). MATLAB software package is heavily utilized in this course. (Fall) Prerequisite: EG3325.

EG 4328. Communication Theory. 3 Semester Hours.

Introduction to information theory. Review of Fourier Transform, Fourier Series and linear systems. Basics of digital communication systems, including conversion of analog signals into digital signals, digital signal transmission, wave shaping, companding, delta modulation, quantization noise and conversion of digital signals into analog signals. Basics of analog communication systems, including Amplitude Modulation (AM) and Frequency Modulation (FM). (Spring) Prerequisites: EG3325 and EG3395.

EG 4361. Software Quality Assurance and Testing. 3 Semester Hours.

Testing and quality control of software projects. Testing methodologies: Unit testing, integration testing, test driven development, compatibility testing, web site testing, alpha, beta, and acceptance testing. Testing tools. Developing test plans. Managing the test process. Problem reporting, tracking, and analysis. Defects vs. failures. Quality: how to assure it and verify it, and the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing, verification, and validation techniques. Process assurance vs. Product assurance. Quality process standards. Product and process assurance. (Fall) Prerequisite: EG3362.

EG 4364. Software Maintenance and Evolution. 3 Semester Hours.

This course examines methodologies and practices for maintaining and evolving software systems in dynamic environments. Students learn techniques for analyzing, modifying, and modernizing legacy systems, including software re-engineering and data reverse engineering. Core topics include refactoring strategies, technical debt management, code quality metrics, and architectural transformation patterns. The course emphasizes designing maintainable software through modular design, clean code principles, documentation practices, and automated testing. Students explore strategies for incremental modernization, system migration (cloud transitions, containerization), and continuous evolution. Topics include change impact analysis, regression testing, version control strategies, and maintaining backward compatibility. Through hands-on projects, students apply tools for code analysis, documentation generation, and automated refactoring while developing skills in evaluating software for change and validating modifications in production environments (Spring) Prerequisite: EG3362.

Ben Abbott, Ph.D.
Lecturer

Sharmin Aktar, Ph.D.
Assistant Professor

Ozgur Aktunc, Ph.D.
Professor

Mehran Aminian, Ph.D.
Professor

Ayad Barsoum, Ph.D.
Professor

Vahid Emamian, Ph.D.
Professor

Wenbin Luo, Ph.D.
Professor

Ricardo Ramirez, Jr., Ph.D.
Assistant Professor

Carol Luckhardt Redfield, Ph.D.
Professor

Michael John Yuhas, Ph.D.
Assistant Professor

Yike "Nicole" Zhang, Ph.D.
Assistant Professor