Department of Computer Sciences and Electrical Engineering
Programs
- Computer and Information Security, B.S.
- Computer and Information Security, Minor
- Computer Science, Accelerated Master's degree
- Computer Science, B.S.
- Computer Science, Minor
- Cybersecurity, Accelerated Master's Degree
- Data Science, Accelerated Master's Degree
- Electrical and Computer Engineering, B.S.E.E.
- Pre-Computer Science
Courses
- General Education Course
Computer Science
This course is designed to expose students to coding with no previous programming experience. The topic covers basic programming with software development methodologies.

Central principles and big ideas of computing: problem-solving, computational and critical thinking, abstraction, creativity, reasoning, data, algorithms, recursion, visualization, and limits of computation. Solve real-world problems with computing.
Pre-req: ACT Math with a score of 17 or SAT Verbal Before March 16 with a score of 400 or SAT MATH SECTION SCORE with a score of 440 or Placement Math After SP17 with a score of 101 or MTH 102 with a minimum grade of C or MTH 102B with a minimum grade of C or MTH 127 with a minimum grade of C or MTH 130 with a minimum grade of C or MTH 132 with a minimum grade of C or MTH 229 with a minimum grade of C or MTH 229H with a minimum grade of C.
Pre-req: ACT Math with a score of 24 or SAT Mathematics Before Mar. 16 with a score of 560 or SAT MATH SECTION SCORE with a score of 580 or MTH 127 or MTH 130 and MTH 132 (may be taken concurrently) or MTH 229 (may be taken concurrently) or MTH 229H (may be taken concurrently).
Object-oriented and algorithmic problem solving principles and techniques; programming with classes in an integrated programming environment; and program debugging.
Pre-req: ACT Math with a score of 24 or SAT Mathematics Before Mar. 16 with a score of 560 or SAT MATH SECTION SCORE with a score of 580 or MTH 127 or MTH 130 and MTH 132 (may be taken concurrently) or MTH 129 (may be taken concurrently) or MTH 129H (may be taken concurrently).
Object-oriented analysis and design, advanced programming with classes, arrays, strings, sorting, searching, I/O, GUI development, system life cycle and software development methodologies. CR/PR: CS 110
Pre-req: CS 110 with a minimum grade of D or CS 110H with a minimum grade of D.
An introduction to computer programming, software design, and algorithm analysis and implementation. Abstract concepts illustrated with examples and exercises drawn from the mathematical and physical sciences. Primarily for non-CS majors.
Pre-req: MTH 140 or MTH 229 (may be taken concurrently) or MTH 229H (may be taken concurrently).
Design and implementation of data structures including stacks, queues, lists, trees, heaps, balanced trees, and graphs. Other topics include hasing, threading, data parsing, program testing, correctness, efficiency, and exceptions. Data structures including stacks, queues, lists, trees, graphs, priority queues, and dictionaries.
Pre-req: CS 120 with a minimum grade of D and MTH 220 (may be taken concurrently) with a minimum grade of D.
Advanced techniques for designing and analyzing algorithms, including asymptotic analysis; data structures; divide-and-conquer algorithms and recurrences; greedy algorithms; dynamic programming; graph algorithms; randomized algorithms; and NP-complete problems.
Pre-req: CS 210 with a minimum grade of D and (MTH 229 with a minimum grade of D or MTH 229H with a minimum grade of D) and MTH 220 (may be taken concurrently) with a minimum grade of D.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
Pre-req: CS 210 with a minimum grade of D.
This course provides a broad introduction to software engineering theories, methods, and tools. Requires substantial writing. Topics include requirements engineering, analysis and design, implementation, versioning, and testing. This course provides a broad introduction to software engineering theories, methods, and tools. Requires substantial writing. Topics include requirements engineering, analysis and design, implementation, versioning, and testing.
Pre-req: MTH 220 and CS 210 and ENG 354 (may be taken concurrently).
Pre-req: CS 305 with a minimum grade of D.
Testing techniques and validation of system requirements. Design reviews and code inspections; unit, integration, system, regression, load, stress, user acceptance, and regression testing; statistical testing; test strategies and project metrics.
Pre-req: CS 310 and MTH 345.
Modern operating systems design and implementation: multi-tasking and time sharing, concurency and synchronization, interprocess communication, resource scheduling, memory management, deadlocks, I/O, file systems, and security.
Pre-req: CS 210.
A supervised experience in which the student works for a company to gain practical experience in a students major.
Pre-req: ENGR 217 with a minimum grade of D.
Basic theoretical concepts are introduced, including finite state automata, regular expressions, context-free grammars, pushdown automata, Turing machines, recursively enumerable languages, the halting problem, and the Church-Turing thesis. Basic theoretical concepts are introduced, including finite state automata, regular expressions, context-free grammars, pushdown automata, Turing machines, recursively enumerable languages, the halting problem, and the Church-Turing thesis.
Mathematical theory and practical tools and techniques for generating realistic pictures using computers. This is a project-centered course and involves extensive programming using the open GL standard.
Pre-req: CS 210 with a minimum grade of D.
Design and analyze structure of major hardware components of computers including: ALU, instruction sets, memory hierarchy, parallelism through multicore and many core, storage systems and interfaces.
Pre-req: CS 300 with a minimum grade of D.
Software design and development targeting high performance computing architectures. Multi-core and many-core systems: I/O, file systems, performance metrics. Programming models include MPI, OpenMP, MapReduce, CUDA, OpenCL.
Pre-req: CS 402.
Study of computational algorithms and programming techniques for various bioinformatics tasks including parsing DNA files, sequence alignments, tree construction, clustering, species identification, principal component analysis, correlations, and gene expression arrays.
Pre-req: CS 215.
Study of data models, data description languages, query languages including relational algebra and SQL, logical and physical database design, transactions, backup and recovery. Design and implementation of a database application.
Pre-req: CS 210 with a minimum grade of D.
The design of systems containing embedded computers. Micro-controller technology, assembly language and C programming, input/output interfacing, data acquisition hardware, interrupts, and timing. Real-time operating systems and application programming. Application examples.
Pre-req: CS 402 with a minimum grade of D or EE 340 with a minimum grade of D.
Genetic algorithms, evolutionary strategies, and genetic programming. Methods of knowledge representation using rough sets, type-1 fuzzy sets, and type-2 fuzzy sets. Neural network architectures and their learning algorithms. Genetic algorithms, evolutionary strategies, and genetic programming. Methods of knowledge representation using rough sets, type-1 fuzzy sets, and type-2 fuzzy sets. Neural network architectures and their learning algorithms.
Pre-req: CS 300.
Concepts and issues in physical and cyber security; technological vulnerabilities found in operating systems, database servers, web servers, internet, and local area networks; developing defensive and offensive security measures.
Pre-req: CS 320 with a minimum grade of D.
Advanced course on the functions and purposes of the latest development in cyber security techniques and tools used to create, secure, protect and remediate cyber-infrastructures from various cyber threats.
Pre-req: CS 430 with a minimum grade of D or CS 340 with a minimum grade of D.
Fundamental algorithms and computational models for core tasks in natural language processing: word and sentence tokenization, parsing, information and meaning extraction, spelling correction, text summarization, question answering, and sentiment analysis.
Pre-req: (CS 215 and MTH 220).
Tools and techniques for optimizing the design and construction of software-intensive systems by considering system issues and making engineering tradeoffs in conflicting criteria and interacting decision parameters.
Pre-req: CS 330 and CS 340 and CS 350.
An in-depth and hands-on involvement in a real-world project under direct professional supervision. The project may be on-campus or off-campus. Requires prior apporval of the internship director, who is a member of the computer science faculty.
Pre-req: CS 300 with a minimum grade of D or CS 215 with a minimum grade of D.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE

Application of technical and professional skills in solving a real-world problem in a team environment. Discuss professional code of conduct, societal issues, and transition from student to industry professional.
Pre-req: CS 310 with a minimum grade of D and CS 410 with a minimum grade of D.
Senior capstone experience. Application of technical and professional skills in constructing and testing a real-world problem in a team environment.
Pre-req: CS 490.
Computer & Info Security
Introduction to the various technical and administrative aspects of Computer and Information Security. Understanding key issues associated with protecting information assets, determining the protection needed and response to security incidents.
Pre-req: CS 105 or CS 110 or CS 110H.
Introduction to information security policies, sociological and psychological issues in policy implementation in general. Discuss the lifecycle of policy creation, enactment in different domains of security and policy structure.
Pre-req: CS 105 with a minimum grade of D or CS 110 with a minimum grade of D or CS 110H with a minimum grade of D.
This course covers the basic aspects of modern crytography, including block ciphers, pseudorandom functions, symmetric encryption, Hash functions, message authentication, number theoretic primitives, public-key encryption, digital signatures and zero knowledge proofs.
Pre-req: CS 210 and (STA 225 or STA 345).
Concepts and issues in physical and cyber security; technical vulnerabilities found in operating systems, database servers, Web servers, Internet, and local area networks; developing defensive and offensive security measures.
Pre-req: CS 320 with a minimum grade of D.
Introduction of System Administration and related topics, including trouble-shooting system and network problems, hardware and software configuration and installation, basic scripting, and security aspects of Internet hosts.
Pre-req: CS 320 with a minimum grade of D.
Comprehensive analysis on the utilization and augmentation of cyber security technologies to harden cyber infrastructure and its interconnected cyber-physical systems against various attacks.
Pre-req: CS 320 with a minimum grade of D.
Foundation technical and analytical skills to implement comprehensive computer security that encompass designing secure systems, information security, protecting information assets, managing computer security, risk mitigation strategies, and incident response.
Pre-req: CYBR 350.
Advanced course on the functions and purposes of the latest development in cyber security techniques and tools used to create, secure, protect and remediate cyber-infrastructures from various cyber threats.
Pre-req: CYBR 330 with a minimum grade of D or CS 330 with a minimum grade of D.
An in-depth and hands-on involvement in a real-world project under direct professional supervision. The project my be on-campus or off-campus.
Study of an advanced topic not normally covered in other courses.
Study of an advanced topic not normally covered in other courses.
Study of an advanced topic not normally covered in other courses.
Study of an advanced topic not normally covered in other courses.
Study of an advanced topic not normally covered in other courses.
Study of an advanced topic not normally covered in other courses.
Independent study for selected juniors and seniors under supervision of faculty; may be repeated only once.
Independent study for selected juniors and seniors under supervision of faculty; may be repeated only once.
Independent study for selected juniors and seniors under supervision of faculty; may be repeated only once.
Independent study for selected juniors and seniors under supervision of faculty; may be repeated only once.

Application of technical and profesional skills in solving a real-world problem in a team environment. Discuss professional code of conduct, societal issues, and transition from student to industry professional.
Pre-req: CYBR 330.
Electrical Engineering
Number systems, digital components and systems, Boolen switching algebra; the analysis and design of combinational and sequential circuits; introduction to computer architecture.
Pre-req: MTH 220 with a minimum grade of D.
This course introduces students to the fundamental principles of programming for solving engineering programs. It familiarizes students with the process of translating real-life engineering problems to computation problems.
Pre-req: CS 110.
Provide a study of Data Structure, operating systems' concepts, HW designed methods and relationship between hardware and software.
Pre-req: EE 210 with a minimum grade of D.
This course provdies in depth coverage of all aspects electromagnetics, with a focus on field and wave generation and propagation. The course will focus on more practical aspects of E-M theory.
Pre-req: EE 202 with a minimum grade of D and MTH 335 with a minimum grade of D.
This class introduces students to concepts of probability and random variables necessary for study of signals and systems involving uncertainty; applications to elementary problems in detection, signal processing and communication.
Pre-req: MTH 335.
This course will introduce the students to the fundamental concepts of probabiliity theory applied to engineering problems, including elementary set operations, sample spaces and probability laws, conditional probability and independence.
Pre-req: EE 320 with a minimum grade of D.
This course is a study of the factors influencing the design of hardware and software elements of computer systems. Topics include: instruction set design; cache and virtual memory organizations.
Pre-req: EE 211 with a minimum grade of D.
Introduction to basic physical properties of solid materials; some solid state physics employed, but major emphasis is on engineering applications based on semiconducting, magnetic, dielectric and superconducting phenomena.
Pre-req: EE 202 with a minimum grade of D.
Application of state variable and frequency domain techniques to modeling, analysis and synthesis of single input, single output linear control systems.
Pre-req: EE 202 with a minimum grade of D.
Fundamentals of energy-handling electric circuits, analysis of power electric circuits, elements of linear and rotating electric machinery, induction, and DC machinery.
Pre-req: EE 310 with a minimum grade of D.
Introduction to the fundamental concepts of computer communication networks. Topics include the OSI reference model, the physical data link, network, and transport layers, TCP/IP, LANs, ALOHA, routing and flow controls.
Pre-req: EE 310 with a minimum grade of D and EE 320 (may be taken concurrently) with a minimum grade of D.
Hardware and software for real-time microprocessor-based digital systems. Basic concepts of on-chip components related to digital system functionality. Introduction to 32-bit machines with treatment of 16- and 8- bit machines.
Pre-req: EE 204 with a minimum grade of D and EE 340 with a minimum grade of D.
This course will cover topics in the field of RF/microwave engineering, such as transmission lines, waveguides, impedance matching, microwave resonators, RF filters, RF amplifiers and an introduction to antenna design.
Pre-req: EE 375 with a minimum grade of D.
Application of design process and project engineering as practiced in industry; team approach to the design process; development of a project proposal; proposed project implemented in EE 420.
This course covers the analysis and design of digital integrated circuits using CMOS technology. The course emphasizes design of circuit layout, and HSPICE and IRSIM for simulations, lab included.
Pre-req: ENGR 204.
Introduction to the design process and project engineering as practiced in industry; student teams apply the design process by developing a project from proposal; proposed project implemented in EE 420.
This course provides fundamental of hardware design methodologies and modeling. It covers the essentials of HDL, embedded C and hardware-embedded systems using VHDL language, Lab included.
Pre-req: EE 380 with a minimum grade of D.
This course covers the transformation, manipulation of signals. It introduces the concepts of discrete-time, discrete frequency domains, representations and analyses of systems, and filter designs, lab is included.
Pre-req: EE 350.

Application of the design process and project engineering as practiced in industry; team approach to the design process; completion of project based on proposal from EE 410 or EE 412.
Pre-req: EE 410 with a minimum grade of D or EE 412 with a minimum grade of D.
The course emphasizes power engineering area that includes power generation, transmission, and distribution.
Pre-req: EE 202 with a minimum grade of D.
Feedback systems in which a digital computer is used to implement the control law; Z-transform and time domain methods serve as a basis for control systems design.
Pre-req: EE 360.
Fundamental Radio Frequency (RF) and microwave circuit analysis; return loss, insertion loss; transmission lines, lumped elements, impedence matching; theory, analysis and design of basic RF and microwave passive circuits.
Pre-req: EE 320.
This course provides an introduction to the principles of real-time digital signal processing and hands-on development of real-time signal processing algorithms.
Pre-req: EE 320.
Principles of power electronics. Including understanding of power semiconductor devices, passive components, basic switching circuits, AC/DC, DC/DC, DC/AC converters and their applications.
Pre-req: (ENGR 202 with a minimum grade of D or EE 202 with a minimum grade of D) and EE 310 with a minimum grade of D.
Special Topics
Special Topics
Special Topics
Special Topics
Independent Study
Independent Study
Independent Study
Independent Study
This course provides fundamental understanding of Digital circuits. Students learn the essentials of digital circuit operation, design and simulate digital circuits using the techniques of practicing electrical and computer engineers.
The course provides a rigorous introduction to the analysis and control of linear dynamical systems in the time domain. The course introduces the fundamentals of linear spaces and linear operator theory.
This course provides an introduction to modeling and analysis of cyber-physical systems. Several models of continuous-time systems and discrete-time systems are introduced.
This course covers the power system faults and application of relays for power system protection. Symmetrical components as applied fault currents. Introduction to digital filtering, microprocessor, computer simulation for relays.
This course provides an introduction to the fundamentals of random variables, random signals, and simulation of random phenomena.
This course covers Laplace transform for boundary-value problem, applications to control theory, frequency response of ordinary differential equations, linear algebra techniques; eigenvalue analysis of linear systems and in multivariate optimization.
This course covers complex functions, complex integration, vectors, matrices, functions of matrices, Cayley-Hamilton theorem, state-space modeling, optimization techniques, least squares technique, total least squares, and numerical techniques.
Overview of research methods in engineering. Research theory, design, ethics, and practice. Research plan and proposal. Experimental, numerical, and analytical research. Reviewing literatures, collect and analyze data quantitatively and qualitatively.
This course covers the CMOS circuits. Design approaches with emphasis placed on structured full custom design, MOS device, critical interconnect and gate characteristics. CMOS logic design from transistor to fabrication.
This course covers the Designing real-time embedded systems from a hardware and software perspective. Communications and signal processing systems. Applications to seismic monitoring, process control, and biomedical systems.
This course introduces the underlying concepts behind networking using the internet and its protocols as examples.
This course introduces fundamental technologies for wireless communication.
Linear systems, norms for signals and systems, stability and performance, uncertainty and robustness, parameterization of stabilizing controllers, algebraic Riccati equations, H2 control, and H infinity control.
The course introduces the theory of Optimal Control. It covers evaluation methods for control signals that satisfy some physical constraints and minimize or maximize some performace measures.
This course covers modern power systems, operational, control problems, solution techniques. State estimation, contingency analysis, load-frequency control and automatic generation control, load flow analysis and external equivalents for steady-state operations.
The course provides a rigorous introduction to the analysis and control of nonlinear dynamical systems in time domain.
This course covers the fundamentals of energy and sustainability; power efficiency; hydro, wind, solar, fuel systems; Converters and controllers for integration of renewable energy sources; Smart grid, hybrid generation systems.
Subject matter to be selected from topics of current interest.
Subject matter to be selected from topics of current interest.
Subject matter to be selected from topics of current interest.
Subject matter to be selected from topics of current interest.
Surface and subsurface geology, geotechnical properties of soil and rock. Geotechnical engineering design aspects of landfills, groundwater barriers, tunneling. Mechnics of ground movements, sediment and erosion control. (PR: Engineering or Geology degree) Surface and subsurface geology, geotechnical properties of soil and rock. Geotechnical engineering design aspects of landfills, groundwater barriers, tunneling. Mechnics of ground movements, sediment and erosion control. (PR: Engine- ering or Geology degree)
Independent study in which a student meets regularly with a faculty member to discuss assignments.
Independent study in which a student meets regularly with a faculty member to discuss assignments.
Independent study in which a student meets regularly with a faculty member to discuss assignments.
Independent study in which a student meets regularly with a faculty member to discuss assignments.
The course introduces the principles of product design: specifications, evaluation of design alternatives, technical reports and oral presentations. Intellectual property, industry standards and conventions, engineering economics, reliability, safety, engineering ethics.
This represents the course designation for a Master's Degree Research Thesis. Successful completion of a thesis fulfills the research requirement for the M.S. degree in Electrical Engineering.