inside.ewu.edu

Computer Science & Electrical Engineering

Esteban Rodriguez-Marek, Chair
CSEE department web page 

cs-ee@ewu.edu 

Dr. Saqer Alhloul, Electrical & Computer Engineering Program Director
Dr. Dan Tappan, Computer Science Program Director
Dr. Stuart Steiner, Cyber Program Director
Mr. Rob Lemelin, Internship Coordinator 
Dr. Bojian Xu, Graduate Program Advisor


Faculty

Saqer Alhloul, Arindam Das, Min-Sung Koh, Michael Meyer, Suzanne Rieseberg, Esteban Rodriguez-Marek, Uri Rogers, Thomas Walsh.

Scott Amack, Antonio Espinoza, Kosuke Imamura (Emeritus), Sanmeet Kaur, Robert J. Lemelin, Jr., Dan Li, Paul H. Schimpf (Emeritus), Stuart Steiner, Dan A. Tappan, Yun Tian, Bojian Xu, Shamima Yasmin.


Degrees

BS–Electrical and Computer Engineering

BCS–Computer Science


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 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.

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

Computer Science is an exciting and rapidly evolving discipline involving the study of computing systems and computation. Computing systems are now a critical component in nearly every field. As computer applications have increased in number and complexity, so has the need for specialists in computer systems and software. Research in computer science continues to broaden and extend our knowledge and provide new opportunities.

The study of computer science 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 animation, computer architecture, cyber security, data mining, database systems, data visualization, embedded real-time controls, embedded systems, general use of GPUs in computing, graphics, image signal processing, intelligent systems, machine learning, network computing, parallel and cloud computing, software development, and virtual reality. 

  • Classroom labs are utilized, providing hands-on instructional capabilities for any area of computer science.
  • 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.
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 you to gain new knowledge and understanding of current practices. An internship experience is an excellent opportunity to refine your career aspirations and make valuable contacts for future employment.

All students in our 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 your chosen field.

Graduate Programs

Application/Admission Requirements–the petitioner must:
  1. meet all Eastern Washington University requirements for admission to graduate study;
  2. complete and submit the online application for graduate school;
  3. 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 198. SEMINAR IN COMPUTER SCIENCE. 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 212. OBJECT ORIENTED PROGRAMMING WITH DESIGN PATTERNS. 5 Credits.

Pre-requisites: CSCD 211 with a grade ≥C+.
This course involves a deeper look at object-oriented principles including commonly used design patterns. UML class diagrams, unit testing, and code versioning will also be introduced. Programming projects and a group project 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 255. C PROGRAMMING FOR ENGINEERS. 5 Credits.

Pre-requisites: EENG 163 and MATH 161 with grades ≥C, or permission of instructor.
This course is an introduction to the C language in the context of beginning computer science concepts and engineering practices. Students will write, run, debug, analyze and evaluate C programs. Topics include primitive data types, number systems, file I/O, control structures, function design and usage, 1D arrays, sorting, searching and pointers. Programming projects are required.

CSCD 260. ARCHITECTURE AND ORGANIZATION. 4 Credits.

Pre-requisites: CSCD 240 with a grade ≥C+, EENG 160 with a grade ≥C.
This course 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.

CSCD 296. EXPERIMENTAL COURSE. 1-5 Credits.

CSCD 298. SEMINAR. 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 303. COMPUTER AND INFORMATION SECURITY. 4 Credits.

Cross-listed: CYBR 303.
Pre-requisites: CYBR 101 with a grade ≥C+.
This course covers fundamentals of computing security, including threat types, how computers become infected with viruses and malware, how to avoid viruses and malware, and how to secure your computers and information stored on them. Possible topics include: operating system security, email security, internet security, virus and spyware scanners, browser tools, firewalls and other defensive techniques. The course includes hands-on practice with security tools and techniques.

CSCD 305. C++ PROGRAMMING. 4 Credits.

Pre-requisites: CSCD 240 with a grade ≥C+ or (CSCD 211 with a grade ≥C+ and CSCD 255 with a grade ≥C+).
This course teaches 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.

CSCD 310. DISCRETE STRUCTURES. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, EENG 160 with a grade ≥C, MATH 301 with a grade ≥C, advancement programming exam clearance.
This course studies mathematical aspects of computer science with emphasis on data structures and algorithmic implementation. Topics include logic, methods of proof, set theory, relations and functions, numerical representations, cardinality, computability, combinatorics, discrete probability, computational complexity and graph theory.

CSCD 316. PRACTICAL PROBLEM SOLVING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+.
This course explores algorithms to apply to solve problems in computing, including computing costs. Unit testing for solution validation is introduced. Interviewing skills and strategies as well as building an appropriate resume are covered. Whiteboard problem solving and programming projects are required. Participation in a programming contest is also required. This contest may be held outside of class meeting time.

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. 4 Credits.

Pre-requisites: CSCD 211 with a grade ≥C+ and MATH 301 with a grade ≥C.
This course 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.

CSCD 330. COMPUTER NETWORKS. 4 Credits.

Pre-requisites: CSCD 210 with a grade ≥C+.
This course covers fundamental concepts, protocol mechanisms and programming skills for computer networks. It 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.

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 349. DESIGN PATTERNS. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, advancement programming exam clearance.
This course involves program implementation of object oriented principle design patterns sets to solve real world software design problems. Programming projects and group projects are required.

CSCD 350. SOFTWARE DEVELOPMENT PRINCIPLES. 4 Credits.

Pre-requisites: ≥C+ in CSCD 212 and CSCD 300, and Advancement Programming Exam (APE) clearance.
This course covers formal approaches and tools for conceiving, understanding, analyzing, designing,building, testing, deploying, documenting and maintaining large software systems. Topics 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 major team-based software development project is required.

CSCD 370. GUI PROGRAMMING. 4 Credits.

Pre-requisites: CSCD 212 with a grade ≥C+, CSCD 300 with a grade ≥C+, advancement programming exam clearance.
This course explores programming techniques for the production of graphical user interfaces. Event driven programming is covered in detail. Topics include event handling, windows and dialogs, and GUI widgets such as menus, toolbars, buttons, sliders, combo boxes, lists and scrolling. Multi-threading as it applies to GUI programming is also introduced. Programming projects are required.

CSCD 371. .NET PROGRAMMING. 4 Credits.

Pre-requisites: CSCD 212 with a grade ≥C+, CSCD 300 with a grade ≥ C+, advancement programming exam clearance.
This course introduces .NET Programming and the .NET framework. Emphasis will be placed on understanding 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.

CSCD 372. ANDROID MOBILE DEVELOPMENT. 4 Credits.

Pre-requisites: CSCD 212 with a grade ≥C+ and CSCD 300 with a grade ≥C+, advancement programming exam clearance.
This course introduces Android Programming and the Android framework. Emphasis is placed on understanding the syntactical features of the language, as well as how to effectively use the design of the language in conjunction with mobile development. Topics include event handling, windows and dialogs, and GUI components. Programming projects are required.

CSCD 373. IOS MOBILE DEVELOPMENT. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, advancement programming exam clearance.
This course introduces iOS programming and the Apple framework. Emphasis is placed on understanding the syntactical features of the language and how to effectively use the design of the language in conjunction with mobile development. Topics include event handling, windows and dialogs, and GUI components. Programming projects are required.

CSCD 377. INTRODUCTORY COMPUTER GRAPHICS. 4 Credits.

Pre-requisites: CSCD 240 and MATH 142. A grade ≥C+ is required for CSCD prerequisite and a ≥C for each supporting prerequisite.
This course introduces the basic underlying concepts and techniques of 3D modeling and animation with primitive building blocks using OpenGL Shading Language.

CSCD 378. WEB APPLICATION DEVELOPMENT. 4 Credits.

Pre-requisites: CSCD 327 with a grade ≥C+. (DESN 368 or XHTML/HTML knowledge (highly recommended) or permission of the instructor.)
This course examines the fundamental principles and techniques associated with the development of multi-tier web applications. Topics include web standards, portability, and usability. Programming projects are required.

CSCD 379. .NET WEB APPLICATION DEVELOPMENT. 4 Credits.

Pre-requisites: CSCD 327 and CSCD 371 with a grade ≥C+, or permission of the instructor.
This course 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.

CSCD 386. SOUND SPACES. 3 Credits.

Cross-listed: MUSC 386.
Notes: this course may be repeated.
Pre-requisites: DESN 384, MUSC 293 or MUSC 361.
This is a project-oriented course for designing, building, composing, and performing with new instruments. Students are encouraged to collaborate in the learning process, explore their creativity, and share their knowledge and experiences. The course is interdisciplinary in nature. Students with backgrounds in music, fine arts, programming, and engineering are welcome.

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 397. WORKSHOP, SHORT COURSE, CONFERENCE, SEMINAR. 1-5 Credits.

CSCD 398. SEMINAR. 2-5 Credits.

CSCD 399. DIRECTED STUDY. 1-5 Credits.

Pre-requisites: permission of the instructor, department chair and college dean.

CSCD 409. SCIENTIFIC PROGRAMMING. 4 Credits.

Pre-requisites: MATH 161 or HONS 161 with a grade ≥C and MATH 231 with a grade ≥C or MATH 301 with a grade ≥C.
This course provides an introduction to scientific computing in a programmable mathematics-oriented environment such as Matlab or Octave. Topics include programming constructs, data visualization, solutions to linear systems of equations and algebraic approaches to root-finding, signal processing, interpolation and optimization. Programming projects are required.

CSCD 420. COMPILERS. 4 Credits.

Pre-requisites: CSCD 320 with grade ≥C+.
This course explores Automata Theory, Regular Expressions, the Backus-Naur metalanguage for specifying programming language syntax, and Interpreter and Compiler Design. Programming projects are required.

CSCD 423. RANDOMIZED ALGORITHMS AND PROBABILISTIC ANALYSIS. 4 Credits.

Notes: May be stacked with CSCD 523. Workload include problem solving homeworks and programming assignments.
Pre-requisites: CSCD 320 with a grade ≥C+.
This course introduces the use of probability in computer science algorithm design and analysis. The course covers two subfields. One is the design of randomized algorithms, where decisions at some steps are determined by coin tossing. The other is the probabilistic analysis of (randomized or deterministic) algorithms. The goal is to measure the expected performance of an algorithm. Basic knowledge and techniques developed from the probability theory will be introduced.

CSCD 427. ADVANCED DATABASE MANAGEMENT SYSTEMS. 4 Credits.

Pre-requisites: CSCD 327 with a grade ≥C+, advancement programming exam clearance.
This course 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.

CSCD 429. DATA MINING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam Clearance.
Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases. This course will provide 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.

CSCD 430. BIG DATA ANALYTICS. 4 Credits.

Pre-requisites: CSCD 320 and CSCD 327, both with a grade ≥C+ and APE clearance.
This course examines the basic concepts and practices of big data computing. This course 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, the course touchs upon classical subjects such as MapReduce, modern approaches such as Spark and the approaches of analyzing semi-structured and unstructured data.

CSCD 433. ADVANCED NETWORKING CONCEPTS. 4 Credits.

Cross-listed: CYBR 433.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course covers the design, implementation, analysis, and evaluation of networks. Topics include protocol mechanisms, advanced network architecture, cellular, mobile, and wireless networks, network algorithms, network control, software defined networks, network simulation and performance analysis. Written and programming assignments are required.

CSCD 434. NETWORK SECURITY. 4 Credits.

Cross-listed: CYBR 434.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course explores practical topics in network security. Topics include policy and mechanism; malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. This course emphasizes the trade-offs among risks of misuse, cost of prevention and social issues. Concepts are implemented in programming assignments and comprehensive projects.

CSCD 435. PRINCIPLES OF PROGRAMMING LANGUAGE. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, advancement programming exam clearance.
This course is a study and comparison of programming languages by evolution, formal specifications, structures, features and application domains. Implementation of syntax and semantics and program run-time behavior for several languages will be considered. Programming projects required and presentations may be required.

CSCD 437. SECURE CODING. 4 Credits.

Cross-listed: CYBR 437.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 303 or CYBR 303 with a grade ≥C+.
This course introduces a variety of topics of concern to programmers when writing code. It 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.

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 443. DISTRIBUTED MULTIPROCESSING. 4 Credits.

Pre-requisites: CSCD 340 with a grade ≥C+, advancement programming exam clearance.
This course explores parallel processing concepts and history, including the study and comparison of several multi-processing environments (such as Java threads, PVM and MPI) Programming projects will be required in the Unix environment, and the C and Java languages.

CSCD 445. GPU COMPUTING. 4 Credits.

Notes: may be stacked with CSCD 545.
Pre-requisites: CSCD 240 with a grade ≥C+ and CSCD 300 with a grade ≥C+ and Advancement Programming Exam clearance.
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.

CSCD 460. ADVANCED ARCHITECTURE AND ORGANIZATION. 4 Credits.

Notes: programming projects are required.
Pre-requisites: CSCD 260 with a grade ≥C+, advancement programming exam clearance.
This course addresses computer processor design at the levels of the instruction set, the system architecture and logical gates. Knowledge of Boolean algebra and digital circuits are combined with a viewpoint of computers at the machine language level to build a complete understanding of how modern computer processors actually work, with some techniques and trade-offs that go into their design. The simulation of systems using a high-level programming language is also covered.

CSCD 461. EMBEDDED SYSTEMS. 4 Credits.

Pre-requisites: CSCD 260 with a grade ≥C+ or (CSCD 255 with a grade ≥C+ and EENG 260 with a grade ≥C).
This course introduces embedded systems with emphasis on software development. Topics includes surveys on digital systems design, software/hardware interface, communication protocols, interrupts service routine and applications programming on an embedded controller.

CSCD 462. EMBEDDED REAL-TIME CONTROL. 4 Credits.

Pre-requisites: EENG 160 with a grade ≥C, MATH 161 or HONS 161 with a grade ≥C and CSCD 240 or CSCD 255 with a grade ≥C+.
This course covers technologies typically found in embedded control systems, including basic hardware/software interfaces, multitasking, real-time scheduling and feedback control.

CSCD 467. PARALLEL AND CLOUD COMPUTING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 330 with a grade ≥C+, and advancement programming exam.
This course 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.

CSCD 470. 3D COMPUTER GRAPHICS PRINCIPLES. 4 Credits.

Notes: may be stacked with CSCD 570.
Pre-requisites: CSCD 377 with a grade ≥C+ or equivalent.
This course introduces the basic, and some advanced, theoretical concepts involved in 3D computer graphics. Concepts will be illustrated using 3D rendering software allowing students to understand the practical application of the theory. Programming projects will be required.

CSCD 471. ADVANCED 3D COMPUTER GRAPHICS. 4 Credits.

Notes: additional topics include the theory and implementation of realistic object rendering using Phong and Gouraud shading techniques, texture mapping and other advanced rendering techniques such as the production of shadows and reflections and the use of advanced rendering techniques in 3D games. Programming projects are required.
Pre-requisites: CSCD 470 with a grade ≥C+, advancement programming exam clearance.
This course 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.

CSCD 473. DATA VISUALIZATION. 4 Credits.

Pre-requisites: CSCD 240 and CSCD 300 with a grade ≥C+.
This course 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.

CSCD 477. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES. 4 Credits.

Pre-requisites: CSCD 300 and CSCD 240, and either CSCD 377 or MATH 231. A grade ≥C+ is required for CSCD prerequisite and a ≥C for each supporting prerequisite.
This course 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.

CSCD 480. INTELLIGENT SYSTEMS. 4 Credits.

Notes: may be stacked with CSCD 580.
Pre-requisites: CSCD 300 with a grade ≥ C+.
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.

CSCD 483. MODELING AND SIMULATION. 4 Credits.

Notes: may be stacked with proposed CSCD 583.
Pre-requisites: CSCD 300 with a grade ≥ C+.
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.

CSCD 484. MACHINE LEARNING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, Advancement Programming Exam Clearance.
This course studies various methods for learning and recognizing patterns in data. It discusses supervised learning models that include decision trees, linear regression and its nonlinear transformation, logistic regression, neural networks, and model ensembles. Unsupervised learning topics include various clustering algorithms, and principle component analysis for dimensionality reduction. The course focuses on explaining why these underhood learnings can be possible and how they are achieved.

CSCD 485. DEEP LEARNING. 4 Credits.

Pre-requisites: CSCD 484 with a grade ≥ C+, advancement programming exam clearance.
This course studies 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. The course discusses practical strategies for effective model training such as Dropout and batch/layer Normalization. The course demonstrates the use of these models via real-world applications. Programming assignments are required to implement these models.

CSCD 487. HUMAN COMPUTER INTERFACE. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥2.5 or permission of instructor.
This course will begin with a brief historical overview of human-computer user interfaces with an eye to identifying the key steps in their conceptual development. Students will read in the field of classical human factors, focusing on findings of a particular relevance to user interface design and operation. They will explore the domain of interaction design and testing and intellectual property protection as it relates to human-computer interfaces, investigating what constitutes (or does not constitute) a patentable method and how patent protections are pursued. Written projects and team projects are required.

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 497. WORKSHOP, SHORT COURSE, CONFERENCE, SEMINAR. 1-5 Credits.

Selected topics to be arranged in consultation with the requesting organization.

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 500. COLLOQUIUM IN COMPUTER SCIENCE. 1 Credit.

Pre-requisites: graduate standing.
This course presents a speaker based seminar for graduate students intended as an introduction to research currently conducted by CS faculty and graduate students with some outside presenters from other institutions and corporations. Students will gain knowledge of current faculty research in order to familiarize them aid them with research in CS sub-disciplines and aid them in selecting a graduate advisor.

CSCD 501. ADVANCED ALGORITHMS. 4 Credits.

Pre-requisites: CSCD 320 and either MATH 301 or CSCD 310 or equivalent.
This course studies advanced data structures and skills for designing and analyzing nontrivial algorithms. The course progresses toward advanced topics based on the foundation of basic algorithm design and analysis skills such as divide-conquer and dynamic programming. The course 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 505. CRYPTOGRAPHY. 4 Credits.

Pre-requisites: MATH 225 or MATH 301 or equivalent.
This course 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 will be required. Writing and class presentations may be required.

CSCD 506. RESEARCH METHODS IN COMPUTER SCIENCE. 4 Credits.

Pre-requisites: graduate or post baccalaureate standing.
This course explores research and research methods in the computer science discipline. Topics covered include literature review, hypothesis formation, quantitative methods, paper and thesis writing, and presentation skills. Students will also be exposed to research conducted by department faculty and graduate students as well as presenters from other institutions. Students will gain knowledge of current faculty research, which will aid them in choosing their research focus.

CSCD 523. RANDOMIZED ALGORITHMS AND PROBABILISTIC ANALYSIS. 4 Credits.

Notes: May be stacked with CSCD 423. Workload include problem solving homeworks, programming assignments and a term project.
Pre-requisites: CSCD 320 with a grade ≥C+.
This course introduces the use of probability in computer science algorithm design and analysis. The course covers two subfields. One is the design of randomized algorithms, where decisions at some steps are determined by coin tossing. The other is the probabilistic analysis of (randomized or deterministic) algorithms. The goal is to measure the expected performance of an algorithm. Basic knowledge and techniques developed from the probability theory will be introduced.

CSCD 524. ADVANCED SOFTWARE ENGINEERING. 4 Credits.

Pre-requisites: CSCD 350 with a grade ≥C+ or equivalent software development experience.
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.

CSCD 527. MODERN DATABASE SYSTEMS. 4 Credits.

Pre-requisites: CSCD 327 with a grade ≥C+ or equivalent.
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.

CSCD 529. DATA MINING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥ C+ and Advancement Programming Exam clearance.
Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases. This course will provide 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.

CSCD 530. BIG DATA ANALYTICS. 4 Credits.

Pre-requisites: CSCD 320 with a grade ≥C+, CSCD 327 with a grade ≥C+.
This course examines the basic concepts and practices of big data computing. We will cover 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. We will touch upon classical subjects such as MapReduce, modern approaches such as Spark, and the approaches of analyzing semi-structured and unstructured data.

CSCD 533. ADVANCED NETWORKING CONCEPTS. 4 Credits.

Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course covers the design, implementation, analysis, and evaluation of networks. Topics include protocol mechanisms, advanced network architecture, cellular, mobile, and wireless networks, network algorithms, network control, software-defined networks, network simulation and performance analysis. Written and programming assignments are required.

CSCD 534. NETWORK SECURITY. 4 Credits.

Pre-requisites: CSCD 330 with a grade ≥C+.
This course explores security in computer networks. The topics include introduction to malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. The students will research several key concepts in network security and produce several research papers or projects and present the material in a professional quality presentation or lecture.

CSCD 537. SECURE CODING. 4 Credits.

Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 303 with a grade ≥C+.
This course introduces a variety of topics of concern to programmers when writing code. Students examine 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 will be examined. Written assignments and coding assignments are required.

CSCD 538. TOPICS IN COMPUTER HARDWARE. 4 Credits.

Pre-requisites: graduate standing in computer science or permission of the instructor.
A variable content course dealing with some aspect of computer hardware. Possible topics include network theory, VLSI design, control systems, digital systems design, switching and automata theory, computer-aided engineering.

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 540. ADVANCED OPERATING SYSTEMS. 4 Credits.

Pre-requisites: CSCD 340 with a grade ≥C+ or equivalent.
The course covers synchronization in concurrent/distributed computing (which modern operating systems must support) and the implementation of virtual machine operating systems. Implementation includes file systems, memory management, paging, task switching, process management and basic operating system services. The virtual machine must be able to support various CPU time allocations schemes to simulate multiprocessor systems of different processing speeds.

CSCD 543. DISTRIBUTED MULTIPROCESSING ENVIRONMENTS. 4 Credits.

Pre-requisites: CSCD 340 or equivalent.
This course explores parallel processing concepts and history, including the study and comparison of several multi-processing environments (such as Java threads, PVM and MPI). Programming projects will be required in the Unix environment and the C and Java languages.

CSCD 544. TIME CRITICAL NETWORKING. 4 Credits.

Pre-requisites: CSCD 330 or equivalent.
This course studies multimedia networking concepts and history, including the study of current practices in multimedia networking technologies and protocols for multimedia signal transport. Selected contemporary multimedia networking application areas are studied as examples. Special Emphasis is placed on challenges to multimedia signal transport involving quality of service such as signal latency and jitter. Research projects are required.

CSCD 545. GPU COMPUTING. 4 Credits.

Notes: stacked with CSCD 445.
Pre-requisites: CSCD 240 with a grade ≥C+ and CSCD 300 with a grade ≥C+.
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.

CSCD 561. EMBEDDED SYSTEMS. 4 Credits.

Notes: a term project is required.
Pre-requisites: CSCD 260 with a grade ≥C+ or (CSCD 255 with a grade ≥C+ and EENG 260 with a grade ≥C).
This course introduces hardware and software development for embedded systems. Topics include interrupt driven I/O, digital systems design, FPGA design, and the Verilog Hardware Description Language.

CSCD 562. EMBEDDED REAL-TIME CONTROL. 4 Credits.

Notes: an individual term project will be required.
Pre-requisites: graduate standing, EENG 160 with a grade ≥C, MATH 161 with a grade ≥C and (CSCD 240 with a grade ≥C+ or CSCD 255 with a grade ≥C+).
This course covers technologies typically found in embedded control systems, including basic hardware/software interfaces, instrumentation, multitasking, real-time scheduling and feedback control.

CSCD 567. PARALLEL AND CLOUD COMPUTING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course 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.

CSCD 570. 3D COMPUTER GRAPHICS PRINCIPLES. 4 Credits.

Notes: may be stacked with CSCD 470.
Pre-requisites: CSCD 377 with ≥C+ or equivalent.
This course dives deep into some basic and advanced concepts of computer graphics with hands-on assignments and introduces how animation is performed in Pixar movies.

CSCD 573. DATA VISUALIZATION. 4 Credits.

Pre-requisites: CSCD 240 and CSCD 300 with a grade ≥C+.
This course 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.

CSCD 575. COMPUTER SYSTEMS DESIGN. 4 Credits.

A survey of computer system architecture including levels of machine description, instruction sets, interrupt handling, memory hierarchies, I/O subsystems, and buses.

CSCD 577. VIRTUAL REALITY WITH COMPUTER GRAPHICS AND GAME ENGINES. 4 Credits.

Pre-requisites: CSCD 377 with ≥ C+ or MATH 231 ≥ C.
This course 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.

CSCD 580. INTELLIGENT SYSTEMS. 4 Credits.

Notes: A research project is required. May be stacked with CSCD 480.
Pre-requisites: CSCD 300 with a grade ≥C+.
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.

CSCD 583. MODELING AND SIMULATION. 4 Credits.

Notes: may be stacked with CSCD 483.
Pre-requisites: CSCD 300 with a grade ≥ C+.
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. A research project is required.

CSCD 584. MACHINE LEARNING. 4 Credits.

Pre-requisites: CSCD 300 with a grade ≥ C+, advancement programming exam clearance.
This course studies various methods for learning and recognizing patterns in data. It discusses supervised learning models that include the perceptron learning algorithm, linear regression and its nonlinear transformation, logistic regression, neural networks, and model ensembles. The course 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.

CSCD 585. DEEP LEARNING. 4 Credits.

Pre-requisites: CSCD 584 with a grade ≥ C+, advancement programming exam clearance.
This course studies 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. The course discusses practical strategies for effective model training such as Dropout and batch/layer Normalization. The course demonstrates the use of these models via real-world applications. Programming assignments are required to implement these models.

CSCD 587. HUMAN-COMPUTER INTERFACE. 4 Credits.

Pre-requisites: CSCD 210 or CSCD 305.
This course will begin with a brief overview of human-computer user interfaces historically, with an eye to identifying the key steps in their development conceptually. Students will read in the field of classical human factors, focusing on finding a particular relevance to user interface design and operation. Exploration of the domain of interaction design and testing and intellectual property protection as it relates to human-computer interfaces, investigating what constitutes (or does not constitute) a patentable method, and how patent protections are pursued will be discussed. Written projects and team projects are required.

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 597. WORKSHOP, SHORT COURSE, CONFERENCE, SEMINAR. 1-5 Credits.

Notes: only one workshop course for up to 3 credits may be used to fulfill graduate degree requirements.

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. 4 Credits.

Cross-listed: CSCD 303.
Pre-requisites: CYBR 101 with a grade ≥C+.
This course covers fundamentals of computing security, including threat types, how computers become infected with viruses and malware, how to avoid viruses and malware, and how to secure your computers and information stored on them. Possible topics include: operating system security, email security, internet security, virus and spyware scanners, browser tools, firewalls and other defensive techniques. The course includes hands-on practice with security tools and techniques.

CYBR 403. CYBERSECURITY POLICIES, PRIVACY AND LAWS. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CSCD 202 with a grade ≥C+, CSCD 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. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CSCD 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This hands-on course allows students practical experiences related to cybersecurity threats, mitigations, malware, and cyber defense scenarios. Students will learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. This course includes written assignments, and hands-on practice with security tools and techniques.

CYBR 412. APPLIED CYBER OPERATIONS. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CYBR 410 with a grade ≥C+.
This hands-on course allows students practical experiences related to cybersecurity attacks, malware, and cyber operations scenarios. Students will learn the tactics malicious tactics actors use to exploit applications, computers, networks, and the strategies used to respond to these threats. The course includes written assignments, and hands-on practice with security tools and techniques.

CYBR 424. SECURITY OPERATIONS CENTER ANALYST. 4 Credits.

Pre-requisites: CSCD 303 with a grade ≥C+, CSCD 330 with a grade ≥C+, CSCD 434 with a grade ≥C+.
This course 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.

CYBR 433. ADVANCED NETWORKING CONCEPTS. 4 Credits.

Cross-listed: CSCD 433.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course covers the design, implementation, analysis, and evaluation of networks. Topics include protocol mechanisms, advanced network architecture, cellular, mobile, and wireless networks, network algorithms, network control, software defined networks, network simulation and performance analysis. Written and programming assignments are required.

CYBR 434. NETWORK SECURITY. 4 Credits.

Cross-listed: CSCD 434.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course explores practical topics in network security. Topics include policy and mechanism; malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. This course emphasizes the trade-offs among risks of misuse, cost of prevention and social issues. Concepts are implemented in programming assignments and comprehensive projects.

CYBR 437. SECURE CODING. 4 Credits.

Cross-listed: CSCD 437.
Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 303 or CYBR 303 with a grade ≥C+.
This course introduces a variety of topics of concern to programmers when writing code. It 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.

CYBR 439. TOPICS IN CYBERSECURITY. 2-5 Credits.

Pre-requisites: will be applied as required by the topic.
This course is 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.

CYBR 455. DIGITAL FORENSICS AND CYBERCRIME. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CSCD 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course 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 practice with security tools are required.

CYBR 463. APPLIED CRYPTOGRAPHY. 4 Credits.

Pre-requisites: MATH 225 or MATH 301 or equivalent.
This course 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.

CYBR 470. REVERSE ENGINEERING. 4 Credits.

Pre-requisites: CSCD 260 or EENG 260 with a grade ≥C+, CSCD 437 or CYBR 437 with a grade ≥C+.
This course 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.

CYBR 488. SENIOR PROJECT. 5 Credits.

Notes: students will receive a Y grade until successful completion of CYBR 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 CYBR 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.

CYBR 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: CYBR 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.

CYBR 495. INTERNSHIP. 1-10 Credits.

Notes: graded Pass/Fail.
Pre-requisites: CSCD 303 or 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. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
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. This course includes written assignments and hands-on practice with security tools and techniques.

CYBR 512. APPLIED CYBER OPERATIONS. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CYBR 510 with a grade ≥C+.
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. The course includes written assignments and hands-on practice with security tools and techniques.

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. 4 Credits.

Pre-requisites: CSCD 303 with a grade ≥C+, CSCD 330 with a grade ≥C+, CSCD 434 with a grade ≥C+.
This course 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.

CYBR 525. ADVANCED COMPUTER AND INFORMATION SECURITY. 4 Credits.

Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, graduate or post baccalaureate standing.
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. Students explore a wide range of possible topics: security principles, risk management, digital forensics, and privacy. The course emphasizes an understanding of security threats, vulnerabilities, attack vectors, secure software development, cryptography, and network attacks.

CYBR 533. ADVANCED NETWORKING CONCEPTS. 4 Credits.

Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course covers the design, implementation, analysis, and evaluation of networks. Topics include protocol mechanisms, advanced network architecture, cellular, mobile, and wireless networks, network algorithms, network control, software defined networks, network simulation and performance analysis. Written and programming assignments are required.

CYBR 534. NETWORK SECURITY. 4 Credits.

Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+.
This course explores practical topics in network security. Topics include policy and mechanism; malicious code; intrusion detection, prevention, response; cryptographic and protocols for privacy and integrity. This course emphasizes the trade-offs among risks of misuse, cost of prevention and social issues. Concepts are implemented in programming assignments and comprehensive projects.

CYBR 535. ADVANCED NETWORK SECURITY. 4 Credits.

Notes: this course may require additional prerequisites.
Pre-requisites: CSCD 434 or CYBR 434 or CYBR 534 with a grade ≥C+.
This course delves into advanced network security topics including real world applications and current research in the field. The course 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.

CYBR 537. SECURE CODING. 4 Credits.

Notes: this course meets for three hours of lecture and two hours of lab per week.
Pre-requisites: CSCD 240 with a grade ≥C+, CSCD 303 or CYBR 303 with a grade ≥C+.
This course introduces a variety of topics of concern to programmers when writing code. It 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.

CYBR 539. TOPICS IN CYBERSECURITY. 2-5 Credits.

Pre-requisites: will be applied as required by the topic.
This course is 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.

CYBR 555. DIGITAL FORENSICS AND CYBERCRIME. 4 Credits.

Notes: this course meets for 3 hours of lecture and 2 hours of lab per week.
Pre-requisites: CSCD 303 or CYBR 303 with a grade ≥C+, CSCD 330 with a grade ≥C+, CSCD 340 with a grade ≥C+.
This course 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 practice with security tools are required.

CYBR 563. APPLIED CRYPTOGRAPHY. 4 Credits.

Pre-requisites: MATH 225 or MATH 301 or equivalent.
This course 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.

CYBR 570. REVERSE ENGINEERING. 4 Credits.

Pre-requisites: CSCD 260 or EENG 260 with a grade ≥C+, CSCD 437 or CYBR 437 with a grade ≥C+.
This course 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.

CYBR 595. INTERNSHIP. 1-10 Credits.

Notes: graded Pass/Fail.
Pre-requisites: CSCD 303 or 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. 5 Credits.

Pre-requisites: MTHD 104 or equivalent.
Fundamentals of digital computer design including appropriate number systems, boolean algebra, and basic digital circuits. Methods introduced will include the use of Karnaugh Maps and the Quine-Mckluskey procedure. Computer laboratory work will involve the use of current software for the design, analysis, and simulation of digital circuits.

EENG 163. INTRODUCTION TO EMBEDDED SYSTEMS AND ELECTRICAL ENGINEERING. 5 Credits.

Pre-requisites: EENG 160.
This course 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 will include a diverse set of exercises, drawing from different areas in electrical engineering.

EENG 199. DIRECTED STUDY. 1-5 Credits.

Pre-requisites: permission of the instructor, department chair and college dean.

EENG 209. CIRCUIT THEORY I. 5 Credits.

Pre-requisites: PHYS 153 or permission of the instructor.
This course is intended to provide 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.

EENG 210. CIRCUIT THEORY II. 5 Credits.

Pre-requisites: EENG 209.
This course covers circuit analysis using Laplace transform, phasors and AC analysis, AC Power, three-phase circuits, magnetically coupled circuits and the ideal transformer.

EENG 255. INTRODUCTION TO C FOR EMBEDDED SYSTEMS. 5 Credits.

Pre-requisites: EENG 163 and MATH 161, or permission of the instructor.
This course is 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.

EENG 260. MICROCONTROLLER SYSTEMS. 4 Credits.

Pre-requisites: EENG 160 and EENG 255.
This is an introductory course on microprocessor and microcontroller systems organization. It provides low-level programming principles for microcomputer based systems. The course emphasizes assembly and C language programming techniques and laboratory experiments in input/output programming, memory organization, interrupts and interfacing methods.

EENG 299. DIRECTED STUDY. 1-5 Credits.

Directed Study.

EENG 320. SIGNALS AND SYSTEMS I. 5 Credits.

Pre-requisites: EENG 163, EENG 210 or concurrent enrollment, or permission of the instructor; MATH 163.
This course is 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.

EENG 321. SIGNALS AND SYSTEMS II. 5 Credits.

Pre-requisites: EENG 320 and MATH 163.
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.

EENG 330. MICROELECTRONICS I. 5 Credits.

Pre-requisites: CHEM 171, or HONS 171, and CHEM 171L; EENG 209, MATH 163, and concurrent enrollment in EENG 210.
This course 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 MOS transistors and applies the models to the analysis and design of linear amplifiers.

EENG 331. MICROELECTRONICS II. 5 Credits.

Pre-requisites: EENG 210, EENG 330, and MATH 163.
This course is the second in the characterization, modeling and application of semiconductor devices in the context of analog integrated circuits. The emphasis is on the metal-oxide-semiconductor (MOS) transistor. Topics include differential amplifiers, frequency response and feedback effects.

EENG 350. ENERGY SYSTEMS. 5 Credits.

Pre-requisites: EENG 210 and MATH 163.
This course provides an introduction to the different energy sources, methods of electric energy conversion, the electric power system, transformers and electrical machines.

EENG 360. HARDWARE DESCRIPTION LANGUAGES. 5 Credits.

Pre-requisites: CSCD 255 and EENG 160.
This course introduces methodologies and computer-aided design (CAD) tools for the design of complex electronic systems. The 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.

EENG 383. APPLIED STOCHASTIC PROCESSES. 4 Credits.

Pre-requisites: MATH 163, EENG 255 or CSCD 240, or permission of the instructor; and must be taken concurrently with EENG 388.
This course 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: MATH 163 and EENG 255, or permission of the instructor; and must be taken concurrently with EENG 383.
This laboratory course introduces basic concepts of stochastic processes and their application to engineering problems.

EENG 399. DIRECTED STUDY. 1-5 Credits.

Directed Studies.

EENG 401. ENGINEERING APPLIED ELECTROMAGNETICS. 5 Credits.

Pre-requisites: EENG 210, EENG 320, MATH 241, and MATH 347.
This course provides students with 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.

EENG 415. INTRODUCTION TO COMPUTER COMMUNICATION NETWORKS. 5 Credits.

Pre-requisites: junior standing.
Fundamentals of data communication, telephone/cellular/computer networks, layered network architecture, OSI model, data link layer functions and protocols including ARQ, network layer functions and protocols including IP, transport layer functions and protocols including TCP. Basic MATLAB programming experience is necessary for this course.

EENG 420. DIGITAL SIGNAL PROCESSING. 5 Credits.

Notes: this course meets 4 hours per week for lecture and 2 hours per week for lab.
Pre-requisites: EENG 321.
This course 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.

EENG 425. PRINCIPLES OF DIGITAL IMAGE PROCESSING. 5 Credits.

Pre-requisites: EENG 321.
Image representation, color spaces, image filtering and enhancement, image transforms and image/video coding.

EENG 427. INTRODUCTION TO DEEP NEURAL NETWORKS. 5 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.).
This course provides an introduction to deep neural networks (DNNs) such as CNNs, RNNs, ResNets, GANs, etc. Those DNNs will be built up from a basic multi-layer perceptron. The learning algorithm using backpropagation will be 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.

EENG 430. CMOS DIGITAL INTEGRATED CIRCUITS DESIGN. 5 Credits.

Pre-requisites: EENG 160; EENG 331.
This course provides students with the theoretical and practical knowledge required for analyzing and designing digital integrated circuits and systems in complementary metal-oxide-semiconductor (CMOS) technology. Lab includes hands-on use of a variety of state-of-the-art computer-aided design (CAD) tools and design techniques.

EENG 435. ANALOG INTEGRATED CIRCUITS DESIGN. 5 Credits.

Pre-requisites: EENG 331.
This course provides students with the theoretical and practical knowledge required for analyzing and designing analog integrated circuits and systems in CMOS and BJT technologies. Topics include operational amplifier design, biasing and reference circuits, stability, and selected applications of analog circuits (e.g. filters, comparators, data converters, transceiver blocks).

EENG 440. DIGITAL COMMUNICATION SYSTEMS. 5 Credits.

Pre-requisites: EENG 321, EENG 383.
This course provides students with 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.

EENG 442. MOBILE COMMUNICATIONS. 5 Credits.

Pre-requisites: EENG 321 and EENG 383.
This course covers antennas and propagation, signal encoding techniques; spread spectrum, coding and error control, cellular and wireless control.

EENG 450. POWER SYSTEMS ANALYSIS. 5 Credits.

Pre-requisites: EENG 350.
The course provides students with 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.

EENG 452. PROTECTIVE RELAYS. 5 Credits.

Pre-requisites: EENG 450.
This course provides students with 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.

EENG 460. COMPUTING SYSTEMS: ORGANIZATION AND DESIGN. 5 Credits.

Pre-requisites: EENG 255, EENG 360.
This course 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.

EENG 461. EMBEDDED SYSTEMS DESIGN. 5 Credits.

Pre-requisites: EENG 260 and EENG 360.
This course provides students with 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.

EENG 462. REAL TIME EMBEDDED SYSTEMS. 5 Credits.

Pre-requisites: EENG 461 or permission of the instructor.
This course 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, will be offered in weekly labs.

EENG 470. CONTROL SYSTEMS. 5 Credits.

Pre-requisites: EENG 321.
This course reviews basic topics such as transfer function, step response and stability conditions. Other topics include 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.

EENG 471. DIGITAL CONTROL SYSTEMS. 5 Credits.

Pre-requisites: EENG 470.
This course provides students with 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.

EENG 490A. SR CAPSTONE: DESIGN LAB I. 2 Credits.

Pre-requisites: EENG 210, EENG 260, EENG 320, EENG 330, and EENG 350.
Satisfies: a university graduation requirement–senior capstone.
This course will simulate the industrial environment, where students will have to work in a team to solve a real world problem, from design to implementation. Team dynamics will be strictly monitored and each student’s unique skills will be utilized in different stages of the design process. Dealing with problems typical of a team environment will result in an invaluable learning experience both in the professional and civic lives of the students.

EENG 490B. SR CAPSTONE: DESIGN LAB II. 3 Credits.

Pre-requisites: EENG 490A.
Satisfies: a university graduation requirement–senior capstone.
See course description for EENG 490A.

EENG 491. SENIOR PROJECT. 1-6 Credits.

Pre-requisites: permission of instructor.
Independent and/or group study and implementation of a design and development project. (variable time)

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.

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.