Computer Science & Electrical Engineering
Esteban Rodriguez-Marek, Chair
CSEE department web page
Dr. Saqer Alhloul, Electrical & Computer Engineering Program Director
Dr. Dan Tappan, Computer Science Program Director
Dr. Stuart Steiner, Cybersecurity Program Director
Mr. Rob Lemelin, Internship Coordinator
Dr. Bojian Xu, Graduate Program Advisor
Dr. Antonio Espinoza, Cybersecurity Graduate Program Advisor
Faculty
Saqer Alhloul, Arindam Das, Min-Sung Koh, Michael Meyer, Suzanne Rieseberg, Esteban Rodriguez-Marek, Uri Rogers, Thomas Walsh.
Abinash Borah, Chris Cain, Antonio Espinoza, Kosuke Imamura (Emeritus), Sarah Johnson, Sanmeet Kaur, Robert J. Lemelin, Jr., Dan Li, Paul H. Schimpf (Emeritus), Stuart Steiner, Karen Thurston, Dan A. Tappan, Yun Tian, Bojian Xu, Shamima Yasmin.
Degrees
BS–Electrical and Computer Engineering
BCS–Computer Science
BS–Computer Science
BS–Computer Science Cyber Operations
BS–Cyber Operations
Minor–Computer Graphics
Minor–Computer Science Programming
Minor–Cybersecurity
Minor–Embedded Systems
Minor–Machine Learning
MS–Computer Science
MS–Cyber Defense
MS–Interdisciplinary
MS–Professional Cybersecurity
Required courses in these programs of study may have prerequisites. Reference the course description section for clarification.
Pre Admission
High school students wanting to pursue a major in this department are advised to take as much mathematics as possible, including a course or courses in their senior year. Students will benefit from computer science courses available in high school but should not take them at the expense of mathematics courses. Students also are encouraged to take laboratory science courses and a keyboarding course.
Transfer Students
Community college transfer students interested in Electrical & Computer Engineering should pursue mathematics courses through calculus and beyond, and calculus-based Physics courses.
Community college transfer students interested in Computer Science should pursue mathematics courses through pre-calculus or beyond, as well as an advanced sophomore level composition course.
Consult transfer guides to determine whether the institution has developed agreements with Eastern for transfer equivalencies, and which courses are equivalent for general education requirements and courses that may apply to the major. Contact the department for advice on selecting preparatory coursework. Courses taken to apply to the major should be taken late in the community college experience, just prior to transferring to EWU.
Major Declaration
All prospective department majors should contact the Department of Computer Science & Electrical Engineering to obtain the latest information to aid in planning a program of study.
Freshen and transfer students interested in Electrical & Computer Engineering should declare their major as soon as admitted to EWU.
Freshman and transfer students entering Eastern with an interest in the computing sciences are encouraged to declare their major as soon as practical after completing CSCD 211 and MATH 142, or equivalent courses. To declare a major, students complete the online major declaration form and bring any official or unofficial copies of all non-EWU college-level work to a meeting with a computer science advisor.
Students may contact an advisor for an appointment. At the advising session students have the opportunity to review course requirements, ask questions, and prepare a quarterly schedule, which also requires agreeing to abide by the department’s Code of Ethics and Professional Conduct, which is available on the department’s website.
Undergraduate Programs
Electrical & Computer Engineering, Computer Science and Cybersecurity are exciting and rapidly evolving disciplines involving the study of computing, computation, cybersecurity, and electrical systems. These systems are critical components in nearly every field. As these applications have increased in number and complexity, so has the need for specialists in electrical systems, computer systems, cybersecurity, and software. Research in these fields continues to broaden and extend our knowledge and provide new opportunities.
The study of Electrical & Computer Engineering, Computer Science and Cybersecurity is a challenging and satisfying intellectual activity that can be carried forward into graduate school and throughout one’s life. Our graduates achieve a high degree of success in building careers in both public and private sectors.
Facilities and Equipment
The department has multiple computing labs that support exploration in areas such as power systems, embedded systems, control systems, signal processing, animation, computer architecture, cybersecurity, data mining, database systems, data visualization, embedded real-time controls, general use of GPUs in computing, graphics, intelligent systems, machine learning, network computing, parallel and cloud computing, software development, and virtual reality.
- Classroom labs are utilized, providing hands-on instructional capabilities.
- Lower Division Computer Science Lab: this study lab supports lower division students, staffed by peer tutors.
- Upper Division Computer Science Lab: this study lab is designed to support junior and senior level computer science students in their individual and group projects.
- Power Lab: utilized in all courses dealing with power systems.
- Circuits Lab: used for lower division courses in circuit analysis.
- Mixed-signal Lab: pertinent for courses in hardware design language, control systems, electronics, and others.
- Projects Lab: used for various student projects, including our Capstone sequence.
Opportunities for Students
Upper-division majors should check EWUs Handshake for opportunities for work-study and departmental positions as course assistants, paper graders, or tutors.
Many of our students are able to obtain internships where the theory and skills learned in the academic setting are put to the test. Internships allow students to gain new knowledge and understanding of current practices. An internship experience is an excellent opportunity to refine career aspirations and make valuable contacts for future employment.
All students in Electrical & Computer Engineering are highly encouraged to join the student chapter of the IEEE, EWU's section of the professional society for electrical engineers. This club works on self-motivated projects, as well as closely working with the IEEE Spokane section in setting up field trips and various networking events.
All students in our computing programs are encouraged to join the student chapter of the Association for Computing Machinery (ACM). This group sponsors colloquia, field trips, programming contests, and social events. Membership in the student chapter is the beginning of a long-term opportunity to connect with professionals in a chosen field.
Graduate Programs
Application/Admission Requirements–the petitioner must:
- meet all Eastern Washington University requirements for admission to graduate study;
- complete and submit the online application for graduate school;
- if you are an international student, provide a TOEFL score of 580 or greater (237 CBT, 92 iBT).
Note: Some graduate courses may have prerequisites and the student is responsible for mastering prerequisites before taking such courses. If the prerequisite course is not at the senior level it cannot be counted towards the graduate degree.
Computer Science Courses
CSCD 110. INTRODUCTION TO PROGRAMMING. 5 Credits.
Students learn fundamental programming concepts, programming environment topics and current technologies in computing. Programming concepts include structure and design using pseudo-code, basic syntax, variables, arithmetic, decisions, repetition, input and output. Programming environment topics include editor use, saving, compiling, running and debugging. Programming projects are required.
CSCD 196. EXPERIMENTAL COURSE. 1-5 Credits.
CSCD 199. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
CSCD 202. COMPUTING ETHICS. 4 Credits.
Pre-requisites: ENGL 101.
Satisfies: a BACR for humanities and arts.
This course explores the uses of computing technologies from a socio-cultural and ethical perspective, including the impacts of information systems on individuals, organization, and society and future direction in which the forces of technology and computing are tending to move us.
CSCD 210. PROGRAMMING PRINCIPLES I. 5 Credits.
Notes: Concurrent registration in MATH 141 or higher, highly recommended. Transcript evidence of a previous programming course at the high school or college level will be accepted for CSCD 110.
Pre-requisites: MATH 114 with grade ≥C and CSCD 110.
This course covers the concepts and practices of information representation, computer algorithms, hardware organization and computer program design and implementation. Students write, run, debug, analyze and evaluate computer programs. Topics include primitive data types, number systems, file I/O classes, control structures, method design and usage, array–sorting and searching algorithms. Programming projects are required.
CSCD 211. PROGRAMMING PRINCIPLES II. 5 Credits.
Notes: concurrent registration in MATH 142 or higher is highly recommended.
Pre-requisites: CSCD 210 with a grade ≥C+, MATH 141 with a grade ≥C.
This course continues coverage of concepts introduced in Programming Principles I. Topics include composition, recursion, data abstraction, polymorphism, inheritance, interfaces, inner classes, abstract classes, object cloning, array lists, linked lists, and exception handling. Programming projects are required.
CSCD 240. C AND UNIX PROGRAMMING. 5 Credits.
Pre-requisites: CSCD 210 with a grade ≥C+ or EENG 163 with a grade ≥C+.
This course includes program development tools of the UNIX operating system and syntax and programming techniques of the C language in that environment. UNIX topics include interactive shells, common text editors, utility programs, file system structure, libraries and operating system calls and system programming. C topics include data types, structures, pointers and pointer arithmetic, arrays, linked lists, and function design and use. Programming projects are required.
CSCD 260. ARCHITECTURE AND ORGANIZATION. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+; EENG 160 with a grade ≥C. Corequisite: CSCD 260L.
Covers fundamentals of digital computer design and microcomputer systems. Topics include number systems, Boolean algebra, basic digital circuits, and an instruction set for a microprocessor. Homework assignments will include use of current software for the design, analysis, and simulation of digital circuits, assembly language programming emphasizing I/O device access and features that support high level languages. Programming projects are required. Companion course to CSCD 260L.
CSCD 260L. ARCHITECTURE AND ORGANIZATION LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+; EENG 160 with a grade ≥C. Corequisite: CSCD 260.
Companion lab to CSCD 260.
CSCD 296. EXPERIMENTAL COURSE. 1-5 Credits.
CSCD 299. SPECIAL STUDIES. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Subjects studied vary according to student and faculty interest.
CSCD 300. DATA STRUCTURES. 5 Credits.
Pre-requisites: CSCD 211 and MATH 142. A grade ≥C+ is required for CSCD prerequisite and a ≥C for each supporting prerequisite.
This course covers fundamental abstract concepts of data structures as well as their implementation in a programming language. Topics include linked lists, stacks, queues, hashing, recursion, complexity analysis of algorithms, and binary search trees. Programming projects with formal documentation are required.
CSCD 305. C++ PROGRAMMING. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+ or EENG 255 with a grade ≥C+. Corequisite: CSCD 305L.
Covers the C++ programming language. Topics include basic syntax, pointers, memory management, classes, inheritance and polymorphism, exception handling, standard template library usage, namespaces, memory management, and graphical user interface (GUI) programming. Programming projects are required. Companion course to CSCD 305L.
CSCD 305L. C++ PROGRAMMING LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+ or EENG 255 with a grade ≥C+. Corequisite: CSCD 305.
Companion lab to CSCD 305.
CSCD 320. ALGORITHMS. 5 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, MATH 301 with a grade ≥C, advancement programming exam clearance.
This course studies data structures and algorithms, with emphasis on algorithmic strategies such as dynamic programming and emphasis on non-linear data structures such as trees and graphs. Programming projects are required.
CSCD 327. RELATIONAL DATABASE SYSTEMS. 3 Credits.
Pre-requisites: CSCD 211 with a grade ≥C+ and MATH 301 with a grade ≥C. Corequisite: CSCD 327L.
Covers the basic concepts in relational database systems, including data manipulation language and data definition language. Relational models are covered in depth together with an overview of SQL, Relational Algebra, Entity-Relationship Model, and its role in application development. Companion course to CSCD 327L.
CSCD 327L. RELATIONAL DATABASE SYSTEMS LAB. 1 Credit.
Pre-requisites: CSCD 211 with a grade ≥C+ and MATH 301 with a grade ≥C. Corequisite: CSCD 327.
Companion lab to CSCD 327.
CSCD 330. COMPUTER NETWORKS. 3 Credits.
Pre-requisites: CSCD 210 with a grade ≥C+, CSCD 240 with a grade ≥C+. Corequisite: CSCD 330L.
Covers fundamental concepts, protocol mechanisms, and programming skills for computer networks. Includes a technical overview of telecommunication media and fundamental protocols for the Internet such as ISO/OSI layers, Ethernet, collision detection, and channel allocation. Programming projects are required. Companion course to CSCD 330L.
CSCD 330L. COMPUTER NETWORKS LAB. 1 Credit.
Pre-requisites: CSCD 210 with a grade ≥C+, CSCD 240 with a grade ≥C+. Corequisite: CSCD 330.
Companion lab to CSCD 330.
CSCD 340. OPERATING SYSTEMS. 5 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+; and CSCD 260 with a grade ≥C+ or EENG 260 with a grade ≥C+.
This course covers major concepts in the design and modeling of operating systems for digital computers. Topics include historical development of operating systems; methods used in simulations, memory management, system protection mechanisms, I/O management, CPU scheduling, process management and file systems. Programming assignments, program analyses and written reports are required.
CSCD 350. SOFTWARE DEVELOPMENT PRINCIPLES. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 350L.
Covers formal approaches and tools for conceiving, understanding, analyzing, designing, building, testing, deploying, documenting, and maintaining large software systems. May include software lifecycle models; project and team management; verification and validation techniques; legal and ethical issues; practical development and application of skills in critical thinking, communication, and professionalism. A team-based software development project is required. Companion course to CSCD 350L.
CSCD 350L. SOFTWARE DEVELOPMENT PRINCIPLES LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 350.
Companion lab to CSCD 350.
CSCD 371. .NET PROGRAMMING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, advancement programming exam clearance. Corequisite: CSCD 371L.
Introduces .NET Programming and the .NET framework. Emphasis is placed on the syntactical features of the language and how to effectively use the design of the language in conjunction with the .NET Framework. Topics include .NET fundamentals, .NET assemblies, language fundamentals, object oriented design and programming, delegates and events, threading, serialization, database connectivity, windows and dialogs, and GUI components. Programming projects are required. Companion course to CSCD 371L.
CSCD 371L. .NET PROGRAMMING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, advancement programming exam clearance. Corequisite: CSCD 371.
Companion lab to CSCD 371.
CSCD 377. INTRODUCTORY COMPUTER GRAPHICS. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+, MATH 142 with a grade ≥C. Corequisite: CSCD 377L.
Introduces the basic underlying concepts and techniques of 3D modeling and animation with primitive building blocks using OpenGL Shading Language. Companion course to CSCD 377L.
CSCD 377L. INTRODUCTORY COMPUTER GRAPHICS LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+, MATH 142 with a grade ≥C. Corequisite: CSCD 377.
Companion lab to CSCD 377.
CSCD 379. .NET WEB APPLICATION DEVELOPMENT. 3 Credits.
Pre-requisites: CSCD 327 & CSCD 327L with a grade ≥C+, CSCD 371 & CSCD 371L with a grade ≥C+. Corequisite: CSCD 379L.
Examines the fundamental principles and techniques associated with the development of multi-tier web applications, using the .NET Framework. Topics include web standards, portability, and usability. Programming projects are required. Companion course to CSCD 379L.
CSCD 379L. .NET WEB APPLICATION DEVELOPMENT LAB. 1 Credit.
Pre-requisites: CSCD 327 & CSCD 327L with a grade ≥C+, CSCD 371 & CSCD 371L with a grade ≥C+. Corequisite: CSCD 379.
Companion lab to CSCD 379.
CSCD 395. INTERNSHIP. 1-10 Credits.
Notes: graded Pass/Fail.
Pre-requisites: permission of the instructor, department chair and college dean.
CSCD 396. EXPERIMENTAL COURSE. 1-5 Credits.
CSCD 399. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
CSCD 420. COMPILERS. 3 Credits.
Pre-requisites: CSCD 320 with a grade ≥C+. Corequisite: CSCD 420L.
Explores Automata Theory, Regular Expressions, the Backus-Naur metalanguage for specifying programming language syntax, and Interpreter and Compiler Design. Programming projects are required. Companion course to CSCD 420L.
CSCD 420L. COMPILERS LAB. 1 Credit.
Pre-requisites: CSCD 320 with a grade ≥C+. Corequisite: CSCD 420.
Companion lab to CSCD 420.
CSCD 427. ADVANCED DATABASE MANAGEMENT SYSTEMS. 3 Credits.
Pre-requisites: CSCD 327 with a grade ≥C+, advancement programming exam clearance. Corequisite: CSCD 427L.
Focuses on current trends in database technologies. Topics may include secondary storage, index structures, query processing, query optimization, concurrency control, transaction management, distributed databases, data mining, and information retrieval. Companion course to CSCD 427L.
CSCD 427L. ADVANCED DATABASE MANAGEMENT SYSTEMS LAB. 1 Credit.
Pre-requisites: CSCD 327 with a grade ≥C+, advancement programming exam clearance. Corequisite: CSCD 427.
Companion lab to CSCD 427.
CSCD 429. DATA MINING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 429L.
Data mining is the process of automatic discovery of patterns, changes, associations, and anomalies in massive databases. This course provides an introduction to the main topics in data mining and knowledge discovery, including: data preparation for knowledge discovery, frequent pattern and association mining, classification and cluster analysis. Companion course to CSCD 429L.
CSCD 429L. DATA MINING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 429.
Companion lab to CSCD 429.
CSCD 430. BIG DATA ANALYTICS. 3 Credits.
Pre-requisites: CSCD 320 and CSCD 327, both with a grade ≥C+, Advance Programming Exam (APE) clearance. Corequisite: CSCD 430L.
Examines the basic concepts and practices of big data computing. Covers the challenges that arise when the size of data to be analyzed outgrows the limits of traditional data analytics systems, the new challenges big data computing introduces, and the evolution of the big-data ecosystem. Additionally, touches upon classical subjects such as MapReduce, modern approaches such as Spark, and the approaches of analyzing semi-structured and unstructured data. Companion course to CSCD 430L.
CSCD 430L. BIG DATA ANALYTICS LAB. 1 Credit.
Pre-requisites: CSCD 320 and CSCD 327, both with a grade ≥C+, Advance Programming Exam (APE) clearance. Corequisite: CSCD 430.
Companion lab to CSCD 430.
CSCD 439. TOPICS IN COMPUTER SCIENCE. 2-5 Credits.
Prerequisites will be applied as required by the topic. This course is a variable topics course dealing with current trends in computer science. Possible topics include compiler design, advanced operating systems, computational complexity, computer graphics, software testing and verification, artificial intelligence, pattern recognition, computer simulation and modeling, graph algorithms.
CSCD 445. GPU COMPUTING. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 300 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 445L.
Beyond its applications in Graphics, general-purpose graphics processing unit computing (GPGPU) utilizes a Graphics Processing Unit (GPU)–which typically used to perform computations exclusively for computer graphics–at present to parallelize computations traditionally performed by the CPU. GPGPU becomes more widely used in applications demanding high performance. Companion course to CSCD 445L.
CSCD 445L. GPU COMPUTING LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 300 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 445.
Companion lab to CSCD 445.
CSCD 467. PARALLEL AND CLOUD COMPUTING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 330 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 467L.
Explores up-to-date parallel platforms, such as Cluster computing and Cloud computing that use networked computers to store and process large datasets in parallel. Topics include synchronization techniques, high-performance server/service design, performance issues, distributed file systems and MapReduce framework, VPC technology, Cloud scalability, availability and Cloud architecture. Hands-on assignments and projects are required. Companion course to CSCD 467L.
CSCD 467L. PARALLEL AND CLOUD COMPUTING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 330 with a grade ≥C+, Advancement Programming Exam (APE) clearance. Corequisite: CSCD 467.
Companion lab to CSCD 467.
CSCD 470. 3D COMPUTER GRAPHICS PRINCIPLES. 3 Credits.
Pre-requisites: CSCD 377 & CSCD 377L with a grade ≥C+ or equivalent. Corequisite: CSCD 470L.
Introduces the basic, and some advanced, theoretical concepts involved in 3D computer graphics. Concepts are illustrated using 3D rendering software allowing students to understand the practical application of the theory. Programming projects are required. Companion course to CSCD 470L.
CSCD 470L. 3D COMPUTER GRAPHICS PRINCIPLES LAB. 1 Credit.
Pre-requisites: CSCD 377 & CSCD 377L with a grade ≥C+ or equivalent. Corequisite: CSCD 470.
Companion lab to CSCD 470.
CSCD 471. ADVANCED 3D COMPUTER GRAPHICS. 3 Credits.
Pre-requisites: CSCD 470 & CSCD 470L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 471L.
Involves program implementation of 3D computer graphics theory elements from previous graphics courses using a commonly available cross platform 3D graphics application program interface. Programming assignments include implementation of topics from CSCD 470 such as generation of graphics primitives, the virtual camera, perspective projection, modeling and representation of three-dimensional objects, and basic lighting. Companion course to CSCD 471L.
CSCD 471L. ADVANCED 3D COMPUTER GRAPHICS LAB. 1 Credit.
Pre-requisites: CSCD 470 & CSCD 470L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 471.
Companion lab to CSCD 471.
CSCD 473. DATA VISUALIZATION. 3 Credits.
Pre-requisites: CSCD 240 and CSCD 300 with a grade ≥C+. Corequisite: CSCD 473L.
Introduces several tools and approaches for scientific data visualization with hands-on projects and assignments. Covers cutting-edge information visualization tools and techniques. Companion course to CSCD 473L.
CSCD 473L. DATA VISUALIZATION LAB. 1 Credit.
Pre-requisites: CSCD 240 and CSCD 300 with a grade ≥C+. Corequisite: CSCD 473.
Companion lab to CSCD 473.
CSCD 474. GAME DESIGN AND DEVELOPMENT 1. 3 Credits.
Pre-requisites: CSCD 350 & CSCD 350L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 474L.
An overview of game design principles including game analysis frameworks, prototyping, testing, balance, puzzle design, player typology, and AI. Students learn the Unity game development engine and produce guided games and small projects that demonstrate tiling, terrain generation, and scripting in C#. This is the first course in a two-course sequence. Application of many of these principles will come in the following course. Companion course to CSCD 474L.
CSCD 474L. GAME DESIGN AND DEVELOPMENT 1 LAB. 1 Credit.
Pre-requisites: CSCD 350 & CSCD 350L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 474.
Companion lab to CSCD 474.
CSCD 475. GAME DESIGN AND DEVELOPMENT 2. 3 Credits.
Pre-requisites: CSCD 474 & CSCD 474L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 475L.
Application of game design principles learned in CSCD 474. Students create three games from scratch in Unity and emulate releasing them to the real world. Students review and analyze games created by other students. Advanced topics covered depend on student interests. Companion course to CSCD 475L.
CSCD 475L. GAME DESIGN AND DEVELOPMENT 2 LAB. 1 Credit.
Pre-requisites: CSCD 474 & CSCD 474L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 475.
Companion lab to CSCD 475.
CSCD 477. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES. 3 Credits.
Pre-requisites: CSCD 470 with a grade ≥C+. Corequisite: CSCD 477L.
Introduces the concept of virtual reality (VR) using knowledge of computer graphics with hands-on projects and programming assignments. Students use game engines as the implementation platforms for graphics-related programming assignments and projects. With virtual devices, scientific results, visualization, and simulations are explored in unimodal and multimodal virtual environments. Companion course to CSCD 477L.
CSCD 477L. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES LAB. 1 Credit.
Pre-requisites: CSCD 470 with a grade ≥C+. Corequisite: CSCD 477.
Companion lab to CSCD 477.
CSCD 480. INTELLIGENT SYSTEMS. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥ C+. Corequisite: CSCD 480L.
Fundamental concepts and techniques of modeling, simulating, visualizing, and analyzing complex real-world quantitative and qualitative systems of systems by using artificial intelligence, knowledge acquisition and representation, reasoning, planning, machine learning, expert systems, intelligent agents and multi-agent systems, and search strategies; emphasizes practical applications to contemporary smart and mobile devices. Companion course to CSCD 480L.
CSCD 480L. INTELLIGENT SYSTEMS LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥ C+. Corequisite: CSCD 480.
Companion lab to CSCD 480.
CSCD 483. MODELING AND SIMULATION. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 483L.
Covers tools and techniques for modeling, simulation, visualization and analysis of interesting real-world physical and virtual systems. Examples include: airplanes, helicopters, trains, ships, cars, submarines, tanks, construction equipment, weapon systems, air traffic control, flight simulation, gaming, virtual reality, software engineering, software quality assurance, reliability and risk analysis, engineering, control systems, physics, economics, big data. Companion course to CSCD 483L.
CSCD 483L. MODELING AND SIMULATION LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 483.
Companion lab to CSCD 483.
CSCD 484. MACHINE LEARNING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam Clearance. Corequisite: CSCD 484L.
Study of various methods for learning and recognizing patterns in data. Discusses supervised learning models that include decision trees, linear regression and its nonlinear transformation, logistic regression, neural networks, and model ensembles. Topics include various clustering algorithms and principle component analysis for dimensionality reduction. Focuses on explaining why these underhood learnings can be possible and how they are achieved. Companion course to CSCD 484L.
CSCD 484L. MACHINE LEARNING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam Clearance. Corequisite: CSCD 484.
Companion lab to CSCD 484.
CSCD 485. DEEP LEARNING. 3 Credits.
Pre-requisites: CSCD 484 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 485L.
Study of various neural network based deep machine learning models. Includes Convolutional Networks, Recurrent Networks and its LSTM variant, Generative Adversarial Network, Diffusion Models, and attention-based Transformers. Discusses practical strategies for effective model training such as Dropout and batch/layer Normalization. Demonstrates the use of these models via real-world applications. Programming assignments are required to implement these models. Companion course to CSCD 485L.
CSCD 485L. DEEP LEARNING LAB. 1 Credit.
Pre-requisites: CSCD 484 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 485.
Companion lab to CSCD 485.
CSCD 488. SENIOR PROJECT. 5 Credits.
Notes: students will receive a Y grade until successful completion of CSCD 490.
Pre-requisites: senior standing, CSCD 327 with a grade ≥ C+, CSCD 350 with a grade ≥ C+, Advancement Programming Exam clearance.
This course is the first of a two-quarter project sequence. Students will take CSCD 490 Senior Capstone the quarter following successful completion of Senior Project. Student teams apply computer science principles to specified projects. Based on requirements provided, each team will use appropriate tools, systems, and management skills in support of project development.
CSCD 490. SENIOR CAPSTONE. 5 Credits.
Notes: this course is the second course of a two-quarter project sequence and must be taken the quarter following successful completion of the Senior Project course.
Pre-requisites: CSCD 488 prior quarter and Advancement Programming Exam clearance.
Satisfies: a university graduation requirement–senior capstone.
During this course the specified project is completed using appropriate tools and digital systems development methodologies to additionally specify, design, implement, install and test a systems solution that meets the specified needs. Milestone reports, including an oral presentation and complete final project documentation are required.
CSCD 495. INTERNSHIP. 1-10 Credits.
Notes: graded Pass/Fail.
Pre-requisites: CSCD 300 a grade ≥C+; permission of the instructor, department chair and college dean.
Internship.
CSCD 496. EXPERIMENTAL COURSE. 1-5 Credits.
CSCD 498. SEMINAR. 1-5 Credits.
Pre-requisites: permission of the instructor.
CSCD 499. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
CSCD 501. ADVANCED ALGORITHMS. 5 Credits.
Pre-requisites: CSCD 320 with a grade ≥C+; MATH 301 with a grade ≥C.
Studies advanced data structures and skills for designing and analyzing nontrivial algorithms. Progresses toward advanced topics based on the foundation of basic algorithm design and analysis skills such as divide-conquer and dynamic programming. Covers topics including approximate algorithms, randomized algorithms and statistical analysis, string algorithms, algorithms for network flow problems, various advanced data structures, and the NP-completeness.
CSCD 524. ADVANCED SOFTWARE ENGINEERING. 3 Credits.
Pre-requisites: CSCD 350 with a grade ≥C+. Corequisite: CSCD 524L.
A variable content survey of advanced topics in software engineering. Emphasis is on software quality assurance through quantitative modeling, simulation, visualization, and analysis for disciplined test and evaluation in support of software verification, validation, accreditation, and certification. A research project is required. Companion course to CSCD 524L.
CSCD 524L. ADVANCED SOFTWARE ENGINEERING LAB. 1 Credit.
Pre-requisites: CSCD 350 with a grade ≥C+. Corequisite: CSCD 524.
Companion lab to CSCD 524.
CSCD 527. MODERN DATABASE SYSTEMS. 3 Credits.
Pre-requisites: CSCD 327 with a grade ≥C+. Corequisite: CSCD 527L.
An in-depth study of relational DBMSs and other selected database topics. Possible topics include recovery, concurrency control, transaction management, distributed DB models, and various NoSQL systems. Companion course to CSCD 527L.
CSCD 527L. MODERN DATABASE SYSTEMS LAB. 1 Credit.
Pre-requisites: CSCD 327 with a grade ≥C+. Corequisite: CSCD 527.
Companion lab to CSCD 527.
CSCD 529. DATA MINING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 529L.
Data mining is the process of automatic discovery of patterns, changes, associations, and anomalies in massive databases. This course provides an introduction to the main topics in data mining and knowledge discovery, including: data preparation for knowledge discovery, frequent pattern and association mining, classification, and cluster analysis. Companion course to CSCD 529L.
CSCD 529L. DATA MINING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 529.
Companion lab to CSCD 529.
CSCD 530. BIG DATA ANALYTICS. 3 Credits.
Pre-requisites: CSCD 320 with a grade ≥C+; CSCD 327 with a grade ≥C+. Corequisite: CSCD 530L.
Examines the basic concepts and practices of big data computing. Covers the challenges that arise when the size of data to be analyzed outgrows the limits of traditional data analytics systems, the new challenges big data computing introduces and the evolution of the big-data ecosystem. Touches upon classical subjects such as MapReduce, modern approaches such as Spark, and the approaches of analyzing semi-structured and unstructured data. Companion course to CSCD 530L.
CSCD 530L. BIG DATA ANALYTICS LAB. 1 Credit.
Pre-requisites: CSCD 320 with a grade ≥C+; CSCD 327 with a grade ≥C+. Corequisite: CSCD 530.
Companion lab to CSCD 530.
CSCD 539. TOPICS IN COMPUTER SCIENCE. 4 Credits.
Pre-requisites: graduate standing in computer science or permission of the instructor.
A variable content course dealing with an area of computer science other than hardware. Possible topics include compiler design, advanced operating systems, computational complexity, computer graphics, software testing and verification, artificial intelligence, pattern recognition, computer architecture, simulation and modeling, graph algorithms.
CSCD 545. GPU COMPUTING. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 545L.
Beyond its applications in Graphics, General-Purpose Graphics Processing Unit computing (GPGPU) utilizes a Graphics Processing Unit (GPU)–which typically used to perform computations exclusively for computer graphics–at present to parallelize computations traditionally performed by the CPU. GPGPU becomes more widely used in applications demanding high performance. Companion course to CSCD 545L.
CSCD 545L. GPU COMPUTING LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 300 with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CSCD 545.
Companion lab to CSCD 545.
CSCD 567. PARALLEL AND CLOUD COMPUTING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+; CSCD 330 with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 567L.
Studies the core technologies used to develop the essential components in modern distributed, parallel and Cloud systems using networked computers to store and process large datasets in parallel. Topics include synchronization techniques, high-performance server/service design, performance issues, distributed file systems and MapReduce framework, VPC technology, Cloud scalability, availability, and Cloud architecture. Companion course to CSCD 567L.
CSCD 567L. PARALLEL AND CLOUD COMPUTING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+; CSCD 330 with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 567.
Companion lab to CSCD 567.
CSCD 570. 3D COMPUTER GRAPHICS PRINCIPLES. 3 Credits.
Pre-requisites: CSCD 377 with ≥C+ or equivalent. Corequisite: CSCD 570L.
Dives deep into basic and advanced concepts of computer graphics with hands-on assignments and introduces how animation is performed in Pixar movies. Companion course to CSCD 570L.
CSCD 570L. 3D COMPUTER GRAPHICS PRINCIPLES LAB. 1 Credit.
Pre-requisites: CSCD 377 with ≥C+ or equivalent. Corequisite: CSCD 570.
Companion lab to CSCD 570.
CSCD 573. DATA VISUALIZATION. 3 Credits.
Pre-requisites: CSCD 240 with a grade ≥C+; CSCD 300 with a grade ≥C+. Corequisite: CSCD 573L.
Introduces several tools and approaches for scientific data visualization with hands-on projects and assignments. Students will be familiar with cutting-edge information visualization tools and techniques. Companion course to CSCD 573L.
CSCD 573L. DATA VISUALIZATION LAB. 1 Credit.
Pre-requisites: CSCD 240 with a grade ≥C+; CSCD 300 with a grade ≥C+. Corequisite: CSCD 573.
Companion lab to CSCD 573.
CSCD 574. GAME DESIGN AND DEVELOPMENT 1. 3 Credits.
Pre-requisites: CSCD 350 & CSCD 350L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 574L.
An overview of game design principles including game analysis frameworks, prototyping, testing, balance, puzzle design, player typology, and AI. Students learn the Unity game development engine and produce guided games and small projects that demonstrate tiling, terrain generation, and scripting in C#. This is the first course in a two-course sequence. Application of many of these principles will come in the following course. Companion course to CSCD 574L.
CSCD 574L. GAME DESIGN AND DEVELOPMENT 1 LAB. 1 Credit.
Pre-requisites: CSCD 350 & CSCD 350L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 574.
Companion lab to CSCD 574.
CSCD 575. GAME DESIGN AND DEVELOPMENT 2. 3 Credits.
Pre-requisites: CSCD 574 & CSCD 574L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 575L.
An overview of game design principles including game analysis frameworks, prototyping, testing, balance, puzzle design, player typology, and AI. Students learn the Unity game development engine and produce guided games and small projects that demonstrate tiling, terrain generation, and scripting in C#. This is the first course in a two-course sequence. Application of many of these principles will come in the following course. Companion course to CSCD 575L.
CSCD 575L. GAME DESIGN AND DEVELOPMENT 2 LAB. 1 Credit.
Pre-requisites: CSCD 574 & CSCD 574L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CSCD 575.
Companion lab to CSCD 575.
CSCD 577. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES. 3 Credits.
Pre-requisites: CSCD 470 or CSCD 570 with a grade ≥C+. Corequisite: CSCD 577L.
Introduces the concept of virtual reality (VR) using knowledge of computer graphics with hands-on projects and programming assignments. Students learn to use game engines as the implementation platforms for graphics-related programming assignments and projects. With virtual devices, scientific results, visualization, and simulations are explored in unimodal and multimodal virtual environments. Companion course to CSCD 577L.
CSCD 577L. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES LAB. 1 Credit.
Pre-requisites: CSCD 470 or CSCD 570 with a grade ≥C+. Corequisite: CSCD 577.
Companion lab to CSCD 577.
CSCD 580. INTELLIGENT SYSTEMS. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+. Corequisite: CSCD 580L.
Fundamental concepts and techniques of modeling, simulating, visualizing, and analyzing complex real-world quantitative and qualitative systems of systems by using artificial intelligence, knowledge acquisition and representation, reasoning, planning, machine learning, expert systems, intelligent agents and multi-agent systems, and search strategies; emphasizes practical applications to contemporary smart and mobile devices. Companion course to CSCD 580L.
CSCD 580L. INTELLIGENT SYSTEMS LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+. Corequisite: CSCD 580.
Companion lab to CSCD 580.
CSCD 583. MODELING AND SIMULATION. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥ C+. Corequisite: CSCD 583L.
Covers tools and techniques for modeling, simulation, visualization and analysis of interesting real-world physical and virtual systems. Examples include airplanes, helicopters, trains, ships, cars, submarines, tanks, construction equipment, weapon systems, air traffic control, flight simulation, gaming, virtual reality, software engineering, software quality assurance, reliability and risk analysis, engineering, control systems, physics, economics, big data. Companion course to CSCD 583L.
CSCD 583L. MODELING AND SIMULATION LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥ C+. Corequisite: CSCD 583.
Companion lab to CSCD 583.
CSCD 584. MACHINE LEARNING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥ C+, Advancement Programming Exam clearance. Corequisite: CSCD 584L.
Study of various methods for learning and recognizing patterns in data. Discusses supervised learning models that include the perceptron learning algorithm, linear regression and its nonlinear transformation, logistic regression, neural networks, and model ensembles. Focuses on explaining why these under-hood “learnings” can be possible and how they are achieved. Programming assignments are required to implement these machine learning mechanisms from scratch. Companion course to CSCD 584L.
CSCD 584L. MACHINE LEARNING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥ C+, Advancement Programming Exam clearance. Corequisite: CSCD 584.
Companion lab to CSCD 584.
CSCD 585. DEEP LEARNING. 3 Credits.
Pre-requisites: CSCD 584 with a grade ≥ C+, Advancement Programming Exam clearance. Corequisite: CSCD 585L.
Study of various neural network based deep machine learning models. Includes Convolutional Networks, Recurrent Networks and its LSTM variant, Generative Adversarial Network, Diffusion Models, and attention-based Transformers. Discusses practical strategies for effective model training such as Dropout and batch/layer Normalization. Demonstrates the use of these models via real-world applications. Programming assignments are required to implement these models. Companion course to CSCD 585L.
CSCD 585L. DEEP LEARNING LAB. 1 Credit.
Pre-requisites: CSCD 584 with a grade ≥ C+, Advancement Programming Exam clearance. Corequisite: CSCD 585.
Companion lab to CSCD 585.
CSCD 595. PROFESSIONAL INTERNSHIP. 2-16 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Professional Internship.
CSCD 596. EXPERIMENTAL COURSE. 2-5 Credits.
CSCD 598. SEMINAR. 1-5 Credits.
CSCD 599. DIRECTED STUDY. 1-6 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
CSCD 600. THESIS. 1-16 Credits.
Notes: graded Pass/No Credit.
Pre-requisites: permission of the instructor, department chair and college dean.
A research thesis under the direction of a graduate committee.
CSCD 601. RESEARCH REPORT. 1-16 Credits.
Notes: graded Pass/No Credit.
Pre-requisites: permission of the instructor, department chair and college dean.
A research study in lieu of a bound thesis conducted as partial fulfillment of a master’s degree under the direction of a graduate committee.
CSCD 602. INDUSTRY PROJECT. 1-16 Credits.
Notes: graded Pass/No Credit.
Development and documentation of applied computer science project in an industry setting.
CSCD 695. DEPARTMENTAL INTERNSHIP. 1-16 Credits.
Notes: graded Pass/No Credit.
Pre-requisites: graduate standing; permission of the instructor, department chair and college dean.
Support work for the department relating to computer science. Activities will take place under the supervision of a department faculty or staff member. May involve experiences such as teaching lower-division coursework, systems administration activities and assisting with research activities.
Cybersecurity Courses
CYBR 101. CYBERSECURITY FUNDAMENTALS. 5 Credits.
Satisfies: a BACR for social sciences.
This course introduces the fundamentals of the cybersecurity discipline through the lens of sociology and psychology with an emphasis on practical skills and basic competencies concerning phishing, spoofing, privacy, social engineering, and ethics. Students develop critical thinking skills and be able to communicate effectively in writing about complex topics. Students become information literate, understanding how to find, evaluate, and use information responsibly and ethically.
CYBR 303. COMPUTER AND INFORMATION SECURITY. 3 Credits.
Pre-requisites: CYBR 101 with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 303L.
Covers computing security, including threat types, how computers become infected with viruses and malware, and how to secure computers and information stored on them. Possible topics include: operating system security, email security, internet security, browser tools, firewalls, and other defensive techniques. Includes hands-on practice with security tools and techniques. Companion course to CYBR 303L.
CYBR 303L. COMPUTER AND INFORMATION SECURITY LAB. 1 Credit.
Pre-requisites: CYBR 101 with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 303.
Companion lab to CYBR 303.
CYBR 403. CYBERSECURITY POLICIES, PRIVACY AND LAWS. 4 Credits.
Pre-requisites: CSCD 202 with a grade ≥C+; CYBR 303 with a grade ≥C+.
A survey of the issues and complexity of cybersecurity policies and privacy in the digital age. Topics include cybersecurity policies and privacy, case studies of cybersecurity breaches, cybersecurity for business, social media and the general populace, information technology and intellectual property law, privacy law, privacy issues and data protection, electronic voting, health, and other societal digital information. Written assignments, and hands-on practice with security tools are required.
CYBR 410. APPLIED CYBER DEFENSE. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 410L.
This hands-on course allows students practical experiences related to cybersecurity threats, mitigations, malware, and cyber defense scenarios. Students learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. Includes written assignments, and hands-on practice with security tools and techniques. Companion course to CYBR 410L.
CYBR 410L. APPLIED CYBER DEFENSE LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 410.
Companion lab to CYBR 410.
CYBR 412. APPLIED CYBER OPERATIONS. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 412L.
This hands-on course allows students practical experiences related to cybersecurity attacks, malware, and cyber operations scenarios. Students learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. Includes written assignments, and hands-on practice with security tools and techniques. Companion course to CYBR 412L.
CYBR 412L. APPLIED CYBER OPERATIONS LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 412.
Companion lab to CYBR 412.
CYBR 424. SECURITY OPERATIONS CENTER ANALYST. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 424L.
Explores practical topics towards becoming a security operations center (SOC) analyst. SOC analysts work hands-on to understand the activity occurring within their network and to defend their organization from attack. This hands-on includes investigating security alerts and suspicious activity, establishing and managing threat protection systems, and responding to incidents. Companion course to CYBR 424L.
CYBR 424L. SECURITY OPERATIONS CENTER ANALYST LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 424.
Companion lab to CYBR 424.
CYBR 434. NETWORK SECURITY. 3 Credits.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 434L.
Explores practical topics in network security. Topics include policy and mechanism; malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. Emphasizes the trade-offs among risks of misuse, cost of prevention, and social issues. Concepts are implemented in programming assignments and comprehensive projects. Companion course to CYBR 434L.
CYBR 434L. NETWORK SECURITY LAB. 1 Credit.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 434.
Companion lab to CYBR 434.
CYBR 437. SECURE CODING. 3 Credits.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 437L.
Introduces a variety of topics of concern to programmers when writing code. Examines characteristics of secure programs and the ability to implement programs that are free from vulnerabilities, including evaluating software, understanding mechanisms for testing software for vulnerabilities, and understanding specific vulnerabilities such as buffer overflow. Java, C and C++ code are examined. Written assignments and coding assignments are required. Companion course to CYBR 437L.
CYBR 437L. SECURE CODING LAB. 1 Credit.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 437.
Companion lab to CYBR 437.
CYBR 439. TOPICS IN CYBERSECURITY. 2-5 Credits.
Pre-requisites: will be applied as required by the topic. Corequisite: CYBR 439L.
A variable topics course dealing with current trends in cybersecurity. Possible topics include secure compiler design, advanced secure operating systems, secure software testing and verification, and artificial intelligence applied to security. Companion course to CYBR 439L.
CYBR 439L. TOPICS IN CYBERSECURITY LAB. 1 Credit.
Pre-requisites: will be applied as required by the topic. Corequisite: CYBR 439.
Companion lab to CYBR 439.
CYBR 445. CRITICAL INFRASTRUCTURE SECURITY I. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 445L.
Provides an overview of the concepts, theories, principles, and practice of programming PLCs, how PLCs communicate using Modbus and how to attack PLCs using the Modbus protocol. A case study of the Stuxnet worm is also presented. Programming projects are required. Companion course to CYBR 445L.
CYBR 445L. CRITICAL INFRASTRUCTURE SECURITY I LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 445.
Companion lab to CYBR 445.
CYBR 446. CRITICAL INFRASTRUCTURE SECURITY II. 3 Credits.
Pre-requisites: CYBR 445 & CYBR 445L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 446L.
Provides an overview of the concepts, theories, principles, required for securing operational technology (OT) as compared to vs. information technology (IT). Moves beyond fundamental programmable logic controllers to understanding human machine interface operations to the complexities of advanced IT and OT security architecture and monitoring. Written case study reviews and programming projects are required. Companion course to CYBR 446L.
CYBR 446L. CRITICAL INFRASTRUCTURE SECURITY II LAB. 1 Credit.
Pre-requisites: CYBR 445 & CYBR 445L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 446.
Companion lab to CYBR 446.
CYBR 455. DIGITAL FORENSICS AND CYBERCRIME. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 455L.
Provides an overview of the concepts, theories, principles, and practice of digital forensics and cybercrime, methods and procedures, legal issues, disk structures, file systems, evidence acquisition and processing, OS registry and artifacts, reporting and testimony, mobile forensics, network forensics. Use of analytical and investigative techniques to identify, collect, examine, and preserve data. Written assignments, and hands-on with security tools are required. Companion course to CYBR 455L.
CYBR 455L. DIGITAL FORENSICS AND CYBERCRIME LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+; Advancement Programming Exam clearance. Corequisite: CYBR 455.
Companion lab to CYBR 455.
CYBR 463. APPLIED CRYPTOGRAPHY. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance, MATH 225 or MATH 301 with a grade ≥C. Corequisite: CYBR 463L.
Covers the general principles of modern cryptography, including symmetric cryptosystems, asymmetric cryptosystems, secure hash functions, and cryptographic level randomness. Other topics may include historic cryptosystems and their cryptanalysis, information entropy, zero knowledge proofs, trusted computing architectures, and information theory as it relates to cryptography. Programming assignments are required, writing and class presentations may be required. Companion course to CYBR 463L.
CYBR 463L. APPLIED CRYPTOGRAPHY LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance, MATH 225 or MATH 301 with a grade ≥C. Corequisite: CYBR 463.
Companion lab to CYBR 463.
CYBR 470. REVERSE ENGINEERING. 3 Credits.
Pre-requisites: CSCD 340 with a grade ≥C+, CYBR 437 & CYBR 437L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 470L.
Covers fundamental problems, principles, and techniques in software reverse engineering of binaries including static analysis techniques, disassembly algorithms, dynamic analysis techniques, automated static and dynamic analysis techniques, malware analysis techniques, anti-analysis techniques, and malware obfuscation and packing techniques. Companion course to CYBR 470L.
CYBR 470L. REVERSE ENGINEERING LAB. 1 Credit.
Pre-requisites: CSCD 340 with a grade ≥C+, CYBR 437 & CYBR 437L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 470.
Companion lab to CYBR 470.
CYBR 487. SECURE SOFTWARE ENGINEERING. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 437 & CYBR 437L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 487L.
Covers formal approaches and tools for conceiving, understanding, analyzing, designing, building, testing, deploying, documenting, and maintaining large software systems. Highlights the security aspect of software engineering and teaches how to bring a legacy code bases up to date. Companion course to CYBR 487L.
CYBR 487L. SECURE SOFTWARE ENGINEERING LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 437 & CYBR 437L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 487.
Companion lab to CYBR 487.
CYBR 490. SENIOR CAPSTONE. 5 Credits.
Pre-requisites: CYBR 487 & CYBR 487L; Advancement Programming Exam clearance.
Satisfies: a university graduation requirement–senior capstone.
Students work together in teams to apply computer science and cybersecurity principles to specified projects. Based on requirements provided, each team uses appropriate tools, systems, and management skills in support of project development. Milestone reports, including an oral presentation and complete final project documentation are required.
CYBR 495. INTERNSHIP. 1-10 Credits.
Notes: graded Pass/Fail.
Pre-requisites: CYBR 303 with a grade ≥C+; permission of the instructor, department chair and college dean.
Internship.
CYBR 499. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Directed study.
CYBR 502. INFORMATION ASSURANCE FOUNDATIONS. 4 Credits.
This course is a survey of the fundamental elements of computer security and information assurance. Topics may include confidentiality, integrity, and availability; security policies; authentication; access control; risk management; threat and vulnerability assessment; common attack/defense methods; ethical issues. Through weekly lectures and assignments students gain a high-level understanding of the subject of information assurance.
CYBR 504. INFORMATION SECURITY MANAGEMENT. 4 Credits.
Pre-requisites: CYBR 502 with a grade ≥C+.
Provides an understanding of the information security vision and strategy set forth by executive management. Concepts and techniques from the management and organizational behavior disciplines are integrated in order to identify and propose solutions to the problems of information security administration. Domain specific issues such as HIPAA and SOX are addressed as appropriate.
CYBR 510. APPLIED CYBER DEFENSE. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 510L.
This hands-on course allows students practical experiences related to cybersecurity threats, mitigations, malware, and cyber defense scenarios. Students learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. Includes written assignments and hands-on practice with security tools and techniques. Companion course to CYBR 510L.
CYBR 510L. APPLIED CYBER DEFENSE LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 510.
Companion lab to CYBR 510.
CYBR 512. APPLIED CYBER OPERATIONS. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 512L.
This hands-on course allows students practical experiences related to cybersecurity attacks, malware, and cyber operations scenarios. Students learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. Includes written assignments and hands-on practice with security tools and techniques. Companion course to CYBR 512L.
CYBR 512L. APPLIED CYBER OPERATIONS LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 512.
Companion lab to CYBR 512.
CYBR 515. RESEARCH METHODS AND COLLOQUIUM. 4 Credits.
Pre-requisites: graduate or post baccalaureate standing.
This course explores research and research methods in the cybersecurity discipline. Topics covered include literature review, hypothesis formation, quantitative methods, paper and thesis writing, and presentation skills. Students are exposed to research conducted by department faculty and graduate students as well as presenters from other institutions. Students gain knowledge of current faculty research, which aids them in choosing their research focus.
CYBR 524. SECURITY OPERATIONS CENTER ANALYST. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 524L.
Explores practical topics towards becoming a security operations center (SOC) analyst. SOC analysts work hands-on to understand the activity occurring within their network and to defend their organization from attack. This hands-on includes investigating security alerts and suspicious activity, establishing and managing threat protection systems, and responding to incidents. Companion course to CYBR 524L.
CYBR 524L. SECURITY OPERATIONS CENTER ANALYST LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 327 & CSCD 327L with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 524.
Companion lab to CYBR 524.
CYBR 525. ADVANCED COMPUTER AND INFORMATION SECURITY. 3 Credits.
Pre-requisites: CYBR 303 with a grade ≥C+, graduate or post baccalaureate standing. Corequisite: CYBR 525L.
This comprehensive course equips students with the advanced knowledge and practical skills needed to protect digital assets and secure information in a rapidly evolving cybersecurity landscape. Explores a wide range of possible topics: security principles, risk management, digital forensics, and privacy. Emphasizes an understanding of security threats, vulnerabilities, attack vectors, secure software development, cryptography, and network attacks. Companion course to CYBR 525L.
CYBR 525L. ADVANCED COMPUTER AND INFORMATION SECURITY LAB. 1 Credit.
Pre-requisites: CYBR 303 with a grade ≥C+, graduate or post baccalaureate standing. Corequisite: CYBR 525.
Companion lab to CYBR 525.
CYBR 534. NETWORK SECURITY. 3 Credits.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 534L.
Explores practical topics in network security. Topics include policy and mechanism; malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. Emphasizes the trade-offs among risks of misuse, cost of prevention, and social issues. Concepts are implemented in programming assignments and comprehensive projects. Companion course to CYBR 534L.
CYBR 534L. NETWORK SECURITY LAB. 1 Credit.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 534.
Companion lab to CYBR 534.
CYBR 535. ADVANCED NETWORK SECURITY. 3 Credits.
Pre-requisites: CYBR 434 & CYBR 434L or CYBR 534 & CYBR 534L with a grade ≥C+. Corequisite: CYBR 535L.
Delves into advanced network security topics including real world applications and current research in the field. Builds on the basic network security curriculum. Students study, in detail, current topics in network security focusing on: censorship, surveillance, man in the middle attacks, side channels, VPN issues, and more. Companion course to CYBR 535L.
CYBR 535L. ADVANCED NETWORK SECURITY LAB. 1 Credit.
Pre-requisites: CYBR 434 & CYBR 434L or CYBR 534 & CYBR 534L with a grade ≥C+. Corequisite: CYBR 535.
Companion lab to CYBR 535.
CYBR 537. SECURE CODING. 3 Credits.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 537L.
Introduces a variety of topics of concern to programmers when writing code. Examines characteristics of secure programs and the ability to implement programs that are free from vulnerabilities, including evaluating software, understanding mechanisms for testing software for vulnerabilities, and understanding specific vulnerabilities such as buffer overflow. Java, C, and C++ code are examined. Written assignments and coding assignments are required. Companion course to CYBR 537L.
CYBR 537L. SECURE CODING LAB. 1 Credit.
Pre-requisites: CYBR 303 & CYBR 303L with a grade ≥C+, CSCD 330 & CSCD 330L with a grade ≥C+. Corequisite: CYBR 537.
Companion lab to CYBR 537.
CYBR 539. TOPICS IN CYBERSECURITY. 2-5 Credits.
Pre-requisites: will be applied as required by the topic. Corequisite: CYBR 539L.
A variable topics course dealing with current trends in cybersecurity. Possible topics include secure compiler design, advanced secure operating systems, secure software testing and verification, and artificial intelligence applied to security. This course may be taken more than once, provided distinct topics are studied. Companion course to CYBR 539L.
CYBR 539L. TOPICS IN CYBERSECURITY LAB. 1 Credit.
Pre-requisites: will be applied as required by the topic. Corequisite: CYBR 539.
Companion lab to CYBR 539.
CYBR 545. CRITICAL INFRASTRUCTURE SECURITY I. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 545L.
Provides an overview of the concepts, theories, principles, and practice of programming PLCs, how PLCs communicate using Modbus, and how to attack PLCs using the Modbus protocol. A case study of the Stuxnet worm is also presented. Programming projects are required. Companion course to CYBR 545L.
CYBR 545L. CRITICAL INFRASTRUCTURE SECURITY I LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 545.
Companion lab to CYBR 545.
CYBR 546. CRITICAL INFRASTRUCTURE SECURITY II. 3 Credits.
Pre-requisites: CYBR 545 & CYBR 545L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 546L.
Provides an overview of the concepts, theories, principles, required for securing operational technology (OT) as compared to vs. information technology (IT). Moves beyond fundamental programmable logic controllers to understanding human machine interface operations to the complexities of advanced IT and OT security architecture and monitoring. Written case study reviews and programming projects are required. Companion course to CYBR 546L.
CYBR 546L. CRITICAL INFRASTRUCTURE SECURITY II LAB. 1 Credit.
Pre-requisites: CYBR 545 & CYBR 545L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 546.
Companion lab to CYBR 546.
CYBR 555. DIGITAL FORENSICS AND CYBERCRIME. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 555L.
Provides an overview of the concepts, theories, principles, and practice of digital forensics and cybercrime, methods and procedures, legal issues, disk structures, file systems, evidence acquisition and processing, OS registry and artifacts, reporting and testimony, mobile forensics, and network forensics. Use of analytical and investigative techniques to identify, collect, examine, and preserve data. Written assignments and hands-on with security tools required. Companion course to CYBR 555L.
CYBR 555L. DIGITAL FORENSICS AND CYBERCRIME LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 555.
Companion lab to CYBR 555.
CYBR 563. APPLIED CRYPTOGRAPHY. 3 Credits.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance, MATH 225 or MATH 301 with a grade ≥C. Corequisite: CYBR 563L.
Covers the general principles of modern cryptography, including symmetric cryptosystems, asymmetric cryptosystems, secure hash functions, and cryptographic level randomness. Other topics may include historic cryptosystems and their cryptanalysis, information entropy, zero knowledge proofs, trusted computing architectures, and information theory as it relates to cryptography. Programming assignments are required, writing and class presentations may be required. Companion course to CYBR 563L.
CYBR 563L. APPLIED CRYPTOGRAPHY LAB. 1 Credit.
Pre-requisites: CSCD 300 with a grade ≥C+, CYBR 303 & CYBR 303L with a grade ≥C+, Advancement Programming Exam clearance, MATH 225 or MATH 301 with a grade ≥C. Corequisite: CYBR 563.
Companion lab to CYBR 563.
CYBR 570. REVERSE ENGINEERING. 3 Credits.
Pre-requisites: CSCD 340 with a grade ≥C+, CYBR 437 & CYBR 437L or CYBR 537 & CYBR 537L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 570L.
Covers fundamental problems, principles, and techniques in software reverse engineering of binaries including static analysis techniques, disassembly algorithms, dynamic analysis techniques, automated static and dynamic analysis techniques, malware analysis techniques, anti-analysis techniques, and malware obfuscation and packing techniques. Companion course to CYBR 570L.
CYBR 570L. REVERSE ENGINEERING LAB. 1 Credit.
Pre-requisites: CSCD 340 with a grade ≥C+, CYBR 437 & CYBR 437L or CYBR 537 & CYBR 537L with a grade ≥C+, Advancement Programming Exam clearance. Corequisite: CYBR 570.
Companion lab to CYBR 570.
CYBR 595. INTERNSHIP. 1-10 Credits.
Notes: graded Pass/Fail.
Pre-requisites: CYBR 303 a grade ≥C+; permission of the instructor, department chair and college dean.
Internship.
CYBR 599. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Directed Study. This course may be taken more than once, provided distinct topics are studied.
CYBR 600. THESIS. 1-16 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
A research thesis under the direction of a graduate committee.
CYBR 601. RESEARCH REPORT. 1-16 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
A research study in lieu of a bound thesis conducted as partial fulfillment of a master’s degree under the direction of a graduate committee.
Electrical Engineering Courses
EENG 160. DIGITAL CIRCUITS. 4 Credits.
Pre-requisites: MTHD 104 or equivalent. Corequisite: EENG 160L.
Fundamentals of digital computer design including appropriate number systems, boolean algebra, and basic digital circuits. Methods introduced include the use of Karnaugh Maps and the Quine-Mckluskey procedure. Computer laboratory work involves the use of current software for the design, analysis, and simulation of digital circuits. Companion course to EENG 160L.
EENG 160L. DIGITAL CIRCUITS LAB. 1 Credit.
Pre-requisites: MTHD 104 or equivalent. Corequisite: EENG 160.
Companion lab to EENG 160.
EENG 163. INTRODUCTION TO EMBEDDED SYSTEMS AND ELECTRICAL ENGINEERING. 4 Credits.
Pre-requisites: EENG 160. Corequisite: EENG 163L.
Provides an introduction to Electrical Engineering while exploring the fundamentals of Embedded System using Python. Topics include programming, basic input/output, control flow, and debugging. Laboratory exercises include a diverse set of exercises, drawing from different areas in electrical engineering. Companion course to EENG 163L.
EENG 163L. INTRO TO EMBEDDED SYSTEMS AND ELECTRICAL ENGINEERING LAB. 1 Credit.
Pre-requisites: EENG 160. Corequisite: EENG 163.
Companion lab to EENG 163.
EENG 199. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Directed study.
EENG 209. CIRCUIT THEORY I. 4 Credits.
Pre-requisites: PHYS 153 or permission of the instructor. Corequisite: EENG 209L.
Provides electrical engineering students with an understanding of electricity and its applications. Topics include AC/DC circuit-analysis methods such as nodal and mesh analysis, superposition, Norton Theorem, Thevenin Theorem, and transient analysis. Companion course to EENG 209L.
EENG 209L. CIRCUIT THEORY I LAB. 1 Credit.
Pre-requisites: PHYS 153 or permission of the instructor. Corequisite: EENG 209.
Companion lab to EENG 209.
EENG 210. CIRCUIT THEORY II. 4 Credits.
Pre-requisites: EENG 209. Corequisite: EENG 210L.
Covers circuit analysis using Laplace transform, phasors and AC analysis, AC Power, three-phase circuits, magnetically coupled circuits, and the ideal transformer. Companion course to EENG 210L.
EENG 210L. CIRCUIT THEORY II LAB. 1 Credit.
Pre-requisites: EENG 209. Corequisite: EENG 210.
Companion lab to EENG 210.
EENG 220. INTRODUCTION TO LINEAR SYSTEMS. 4 Credits.
Pre-requisites: MATH 163, EENG 163. Corequisite: EENG 220L.
Provides an applied introduction to multi-input multi-output (MIMO), linear, time-invariant Electrical and Computer Engineering systems. Topics include linear systems representation methods; Eigen-Decomposition with Eigenvalue and Eigenvectors; State-Space methods for computer simulation of MIMO systems. Companion course to EENG 220L.
EENG 220L. INTRODUCTION TO LINEAR SYSTEMS LAB. 1 Credit.
Pre-requisites: MATH 163, EENG 163. Corequisite: EENG 220.
Companion lab to EENG 220.
EENG 255. INTRODUCTION TO C FOR EMBEDDED SYSTEMS. 4 Credits.
Pre-requisites: EENG 163; MATH 161 or permission of the instructor. Corequisite: EENG 255L.
An introduction to the C programming language, with a focus on skills required for embedded systems. Students write, run, debug, analyze, and evaluate C programs. Topics include data types, number systems, file I/O, control structures, function design and usage, arrays, pointers, and digital I/O. The lab component focuses on programming projects that interact with hardware. Companion course to EENG 255L.
EENG 255L. INTRODUCTION TO C FOR EMBEDDED SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 163; MATH 161 or permission of the instructor. Corequisite: EENG 255.
Companion lab to EENG 255.
EENG 260. MICROCONTROLLER SYSTEMS. 3 Credits.
Pre-requisites: EENG 160, EENG 255. Corequisite: EENG 260L.
An introductory course on microprocessor and microcontroller systems organization. Provides low-level programming principles for microcomputer based systems. Emphasizes assembly and C language programming techniques and laboratory experiments in input/output programming, memory organization, interrupts and interfacing methods. Companion course to EENG 260L.
EENG 260L. MICROCONTROLLER SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 160, EENG 255. Corequisite: EENG 260.
Companion lab to EENG 260.
EENG 299. DIRECTED STUDY. 1-5 Credits.
Directed study.
EENG 320. SIGNALS AND SYSTEMS I. 4 Credits.
Pre-requisites: EENG 163, EENG 210 or concurrent enrollment, or permission of the instructor; MATH 163. Corequisite: EENG 320L.
An introduction to continuous-time signal analysis. Topics include: generalized functions and the relationship to basic signals including impulses, pulses and unit step; system properties such as linearity, time-invariance and causality; and Fourier analysis. Companion course to EENG 320L.
EENG 320L. SIGNALS AND SYSTEMS I LAB. 1 Credit.
Pre-requisites: EENG 163, EENG 210 or concurrent enrollment, or permission of the instructor; MATH 163. Corequisite: EENG 320.
Companion lab to EENG 320.
EENG 321. SIGNALS AND SYSTEMS II. 4 Credits.
Pre-requisites: EENG 320, MATH 163. Corequisite: EENG 321L.
Introduction to Laplace Transform, Z-transform, the Fourier Series, the Fourier Transform, the Discrete Fourier Transform (DFT), the Discrete-Time Fourier Transform (DTFT) and Sampling Theorem. Introduction to analysis of Linear Time Invariant (LTI) system using above techniques for continuous and discrete time. Companion course to EENG 321L.
EENG 321L. SIGNALS AND SYSTEMS II LAB. 1 Credit.
Pre-requisites: EENG 320, MATH 163. Corequisite: EENG 321.
Companion lab to EENG 321.
EENG 330. MICROELECTRONICS I. 4 Credits.
Pre-requisites: CHEM 171, or HONS 171, and CHEM 171L; EENG 209; MATH 163. Corequisite: EENG 330L.
Introduces the characterization, modeling, and application of semiconductor devices in the context of analog integrated circuits. Emphasis is placed on the development of models for circuit-level behavior of diodes, bipolar transistors, and apply the models to the analysis and design of linear amplifiers. Companion course to EENG 330L.
EENG 330L. MICROELECTRONICS I LAB. 1 Credit.
Pre-requisites: CHEM 171, or HONS 171, and CHEM 171L; EENG 209; MATH 163. Corequisite: EENG 330.
Companion lab to EENG 330.
EENG 331. MICROELECTRONICS II. 4 Credits.
Pre-requisites: EENG 210, EENG 330, MATH 163. Corequisite: EENG 331L.
Second in the characterization, modeling and application of semiconductor devices in the context of analog integrated circuits. Emphasis is on the metal-oxide-semiconductor (MOS) transistor. Topics include differential amplifiers, frequency response and feedback effects. Companion course to EENG 331L.
EENG 331L. MICROELECTRONICS II LAB. 1 Credit.
Pre-requisites: EENG 210, EENG 330, MATH 163. Corequisite: EENG 331.
Companion lab to EENG 331.
EENG 350. ENERGY SYSTEMS. 4 Credits.
Pre-requisites: EENG 210, MATH 163. Corequisite: EENG 350L.
Provides an introduction to the different energy sources, methods of electric energy conversion, the electric power system, transformers, and electrical machines. Companion course to EENG 350L.
EENG 350L. ENERGY SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 210, MATH 163. Corequisite: EENG 350.
Companion lab to EENG 350.
EENG 360. HARDWARE DESCRIPTION LANGUAGES. 4 Credits.
Pre-requisites: EENG 255 or EENG 163; EENG 160. Corequisite: EENG 360L.
Introduces methodologies and computer-aided design (CAD) tools for the design of complex electronic systems. Emphasis is on high-level description languages and their use for specifying, designing, simulating and synthesizing digital very large-scale integration (VLSI) circuits in MOS (metal-oxide-semiconductor) technologies. Theoretical knowledge will be complemented by hands-on use of commercial CAD tools. Companion course to EENG 360L.
EENG 360L. HARDWARE DESCRIPTION LANGUAGES LAB. 1 Credit.
Pre-requisites: EENG 255 or EENG 163; EENG 160. Corequisite: EENG 360.
Companion lab to EENG 360.
EENG 383. APPLIED STOCHASTIC PROCESSES. 4 Credits.
Pre-requisites: MATH 163; EENG 163 or EENG 255 or CSCD 240; or permission of the instructor. Must be taken concurrently with EENG 388.
Provides an introduction to the basic concepts of stochastic processes and their application to engineering problems. Topics include analysis of continuous and discrete random signals and systems, as well as modern estimation techniques.
EENG 388. STOCHASTIC PROCESSES LAB. 1 Credit.
Pre-requisites: concurrent enrollment in EENG 383.
This laboratory course introduces basic concepts of stochastic processes and their application to engineering problems.
EENG 399. DIRECTED STUDY. 1-5 Credits.
Pre-requisites: senior standing.
Directed study.
EENG 401. ENGINEERING APPLIED ELECTROMAGNETICS. 4 Credits.
Pre-requisites: EENG 210, EENG 320, MATH 241, and MATH 347. Corequisite: EENG 401L.
Provides the technical basis to analyze electromagnetic applications systems. Topics include waves and phasors, vector analysis, electrostatics, magnetostatics, Maxwell’s equations for time-varying fields, and plane wave propagation. Companion course to EENG 401L.
EENG 401L. ENGINEERING APPLIED ELECTROMAGNETICS LAB. 1 Credit.
Pre-requisites: EENG 210, EENG 320, MATH 241, and MATH 347. Corequisite: EENG 401.
Companion lab to EENG 401.
EENG 420. DIGITAL SIGNAL PROCESSING. 4 Credits.
Pre-requisites: EENG 321. Corequisite: EENG 420L.
Provides an introduction to digital signal processing. Convolution, time invariance, and stability of discrete-time systems are presented. In addition, various signal processing techniques such as Z-transform, discrete Fourier transform (DFT) and fast Fourier transform (FFT) are studied. Time and frequency domain techniques for designing and applying infinite impulse response (IIR) and finite impulse response (FIR) digital filters are introduced. Companion course to EENG 420L.
EENG 420L. DIGITAL SIGNAL PROCESSING LAB. 1 Credit.
Pre-requisites: EENG 321. Corequisite: EENG 420.
Companion lab to EENG 420.
EENG 427. INTRODUCTION TO DEEP NEURAL NETWORKS. 4 Credits.
Pre-requisites: EENG 383 and EENG 388 (or MATH 380); and EENG 255 (or CSCD 240, or any high-level programming language such as C/C++, Java, Python etc.). Corequisite: EENG 427L.
Provides an introduction to deep neural networks (DNNs) such as CNNs, RNNs, ResNets, GANs, etc. Those DNNs are built up from a basic multi-layer perceptron. The learning algorithm using backpropagation is introduced and built up to advanced learning algorithms such as SGD, Adam etc. In addition, several design issues in DNNs such as overfitting/underfitting, vanishing and exploding gradient problems etc. are explained in the context of optimization for DNNs. Companion course to EENG 427L.
EENG 427L. INTRODUCTION TO DEEP NEURAL NETWORKS LAB. 1 Credit.
Pre-requisites: EENG 383 and EENG 388 (or MATH 380); and EENG 255 (or CSCD 240, or any high-level programming language such as C/C++, Java, Python etc.). Corequisite: EENG 427.
Companion lab to EENG 427.
EENG 428. REINFORCEMENT LEARNING. 4 Credits.
Pre-requisites: EENG 383 or permission of instructor. Corequisite: EENG 428L.
Introduces various reinforcement learning (RL) algorithms such as Dynamic Programming (DP), Monte Carlo (MC) learning, Temporal-Difference (TD) learning, Dyna-Q learning etc. These RL learning algorithms are built up in iterative ways from Bellman equations based on the interactions between agent(s) and environment. Furthermore, exploration, exploitation, and effective search algorithms are introduced in the context of the RL learning process. Companion course to EENG 428L.
EENG 428L. REINFORCEMENT LEARNING LAB. 1 Credit.
Pre-requisites: EENG 383 or permission of instructor. Corequisite: EENG 428.
Companion lab to EENG 428.
EENG 440. DIGITAL COMMUNICATION SYSTEMS. 4 Credits.
Pre-requisites: EENG 321, EENG 383. Corequisite: EENG 440L.
Provides a solid background in modern digital communication systems. Random processing is applied in the realm of communication theory. Common digital modulation and demodulation techniques are presented. Other topics include bandpass transmission of binary data, coherent/noncoherent communications, intersymbol interference and equalization. Companion course to EENG 440L.
EENG 440L. DIGITAL COMMUNICATION SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 321, EENG 383. Corequisite: EENG 440.
Companion lab to EENG 440.
EENG 450. POWER SYSTEMS ANALYSIS. 4 Credits.
Pre-requisites: EENG 350. Corequisite: EENG 450L.
Provides the ability to analyze power systems from technical and economic perspectives. It includes symmetrical components, calculation of line parameters, power flow control, representation of transmission lines, and power components. Companion course EENG 450L.
EENG 450L. POWER SYSTEMS ANALYSIS LAB. 1 Credit.
Pre-requisites: EENG 350. Corequisite: EENG 450.
Companion lab to EENG 450.
EENG 452. PROTECTIVE RELAYS. 4 Credits.
Pre-requisites: EENG 450. Corequisite: EENG 452L.
Provides the technical basis to analyze and design protection for power systems. Topics include per unit and phasors, symmetrical components, relay input sources, protection fundamentals, system grounding principles, and protection of power system components. Companion course to EENG 452L.
EENG 452L. PROTECTIVE RELAYS LAB. 1 Credit.
Pre-requisites: EENG 450. Corequisite: EENG 452.
Companion lab to EENG 452.
EENG 460. COMPUTING SYSTEMS: ORGANIZATION AND DESIGN. 4 Credits.
Pre-requisites: EENG 255, EENG 360. Corequisite: EENG 460L.
Provides the theoretical and practical knowledge required for analyzing and designing complex computing systems. Topics include computer performance, MIPs assembly language, integer and floating point arithmetic, designing a processor, pipelining and memory hierarchies. Assembly programming and design using VHDL are offered in weekly labs. Companion course to EENG 460L.
EENG 460L. COMPUTING SYSTEMS: ORGANIZATION AND DESIGN LAB. 1 Credit.
Pre-requisites: EENG 255, EENG 360. Corequisite: EENG 460.
Companion lab to EENG 460.
EENG 461. EMBEDDED SYSTEMS DESIGN. 4 Credits.
Pre-requisites: EENG 260, EENG 360 or permission of the instructor. Corequisite: EENG 461L.
Provides theoretical and practical knowledge required for analyzing and designing embedded computing systems. The key challenge of embedded systems is to optimize various design metrics and assess the impact the organization and interfacing of hardware/software components have on system performance. Hands-on experience using hardware interfaced with select microcontroller development boards is offered in weekly labs. Companion course to EENG 461L.
EENG 461L. EMBEDDED SYSTEMS DESIGN LAB. 1 Credit.
Pre-requisites: EENG 260, EENG 360 or permission of the instructor. Corequisite: EENG 461.
Companion lab to EENG 461.
EENG 462. REAL TIME EMBEDDED SYSTEMS. 4 Credits.
Pre-requisites: EENG 461 or permission of the instructor. Corequisite: EENG 462L.
Involves the design and development of real-time software and hardware for embedded systems with an emphasis on Real-Time Operating Systems (RTOS), Networking and Security. Communication and Timeliness can be compromised under these design environments and therefore constitute some of the design challenges. Hands-on experience using microcontroller development boards sensors and actuators, are offered in weekly labs. Companion course to EENG 462L.
EENG 462L. REAL TIME EMBEDDED SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 461 or permission of the instructor. Corequisite: EENG 462.
Companion lab to EENG 462.
EENG 470. CONTROL SYSTEMS. 4 Credits.
Pre-requisites: EENG 321. Corequisite: EENG 470L.
Reviews basic topics such as transfer function, step response and stability conditions. Includes feedback systems, analysis techniques such as root-locus analysis, transient and steady-state response analyses, and frequency response analysis are studied. In addition, state-space analysis techniques are explained within the context of state-space system models. Analysis and design of proportional, integral, and derivative (PID), PI and PD controllers are presented. Companion course to EENG 470L.
EENG 470L. CONTROL SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 321. Corequisite: EENG 470.
Companion lab to EENG 470.
EENG 471. DIGITAL CONTROL SYSTEMS. 4 Credits.
Pre-requisites: EENG 470. Corequisite: EENG 471L.
Provides the technical basis to understand and analyze digital control systems. Topics include frequency response, modeling digital control systems, steady-state error, stability, Z-domain design, and state-space models. An introduction to Lyapunov techniques is presented. Companion course to EENG 471L.
EENG 471L. DIGITAL CONTROL SYSTEMS LAB. 1 Credit.
Pre-requisites: EENG 470. Corequisite: EENG 471.
Companion lab to EENG 471.
EENG 490A. SENIOR CAPSTONE DESIGN I. 1 Credit.
Pre-requisites: EENG 210, EENG 260, EENG 320, EENG 330, and EENG 350. Corequisite: EENG 490AL.
Satisfies: a university graduation requirement–senior capstone.
Simulates the industrial environment, where students work in a team to solve a real world problem, from design to implementation. Team dynamics are strictly monitored and each student’s unique skills are utilized in different stages of the design process. Dealing with problems typical of a team environment results in an invaluable learning experience both in the professional and civic lives of the students. First of a two-course sequence. Companion course to EENG 490AL.
EENG 490AL. SENIOR CAPSTONE DESIGN I LAB. 1 Credit.
Pre-requisites: EENG 210, EENG 260, EENG 320, EENG 330, and EENG 350. Corequisite: EENG 490A.
Companion lab to EENG 490A.
EENG 490B. SENIOR CAPSTONE DESIGN II. 1 Credit.
Pre-requisites: EENG 490A. Corequisite: EENG 490BL.
Satisfies: a university graduation requirement–senior capstone.
Simulates the industrial environment, where students work in a team to solve a real world problem, from design to implementation. Team dynamics are strictly monitored and each student’s unique skills are utilized in different stages of the design process. Dealing with problems typical of a team environment results in an invaluable learning experience both in the professional and civic lives of the students. Second of a two-course sequence. Companion course to EENG 490BL.
EENG 490BL. SENIOR CAPSTONE DESIGN II LAB. 2 Credits.
Pre-requisites: EENG 490A. Corequisite: EENG 490B.
Companion lab to EENG 490B.
EENG 495. INTERNSHIP. 1-6 Credits.
Notes: graded Pass/Fail.
Pre-requisites: junior or senior status and permission of the instructor, department chair and dean.
Internship.
EENG 496. EXPERIMENTAL. 1-5 Credits.
Pre-requisites: varies by course.
Experimental.
EENG 498. SEMINAR. 1-6 Credits.
Seminar.
EENG 499. DIRECTED STUDY. 1-10 Credits.
Pre-requisites: permission of the instructor, department chair and college dean.
Designed for students wanting to pursue a subject beyond the scope of regular courses.
EENG 599. INDEPENDENT STUDY. 1-5 Credits.
Independent Study.