Department of Computer and Electrical Engineering and Computer Science
Natural Sciences, Mathematics, and Engineering (nsme)
Department of Computer and Electrical Engineering and Computer Science
Department Chair: Saeed Jafarzadeh
Office: Science Building III, 317
Phone: (661) 654-3082
Email: ceecs@cs.csubak.edu
Program Maps for Natural Sciences, Mathematics, and Engineering
CMPS 1200 Basic Computer Skills (3)
This course covers computer skills essential to success at a university. Specific applications include the Microsoft Office suite of tools: Word, Excel, PowerPoint and Access. The course material is based on Windows and Microsoft Office. Each week lecture meets for 150 minutes.
Typically Offered: Fall, Spring
CMPS 2000 Introduction to Programming Concepts (4)
Basic introduction to principles of programming and computational thinking. Topics include an overview of programming languages, data representation, abstraction, algorithms, software development, and the social and ethical impacts of computing. Each week lecture meets for 150 minutes and lab meets for 150 minutes.
CMPS 2010 Programming I: Programming Fundamentals (4)
Introduces the fundamentals of procedural programming and object-oriented programming. Topics include: data types, control structures, functions, arrays, I/O, pointers and dynamic memory allocation, and features of object-oriented programming. The mechanics of compiling, linking, running, debugging and testing within a particular programming environment are covered. Ethical issues and a historical perspective of programming within the context of computer science as a discipline are given. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: C- or better in MATH 1010 or MATH 1055; or prerequisite or corequisite: MATH 1030 or MATH 1040 or MATH 1050 or MATH 1060 or MATH 2310 or MATH 2510.
Requisite(s): Prerequisite: C- or better in MATH 1010 or 1055; or Prerequisite or Corequisite: MATH 1030 or 1040 or 1050 or 1060 or 2310 or 2510.
Typically Offered: Fall, Spring
CMPS 2020 Programming II: Data Structures and Algorithms (4)
Builds on the foundation provided by CMPS 2010 to introduce the fundamental concepts of data structures and algorithms that proceed from within the framework of object-oriented programming technology. Topics include: recursion, fundamental data structures (including lists, stacks, queues, hash tables, trees and graphs) and basics of algorithmic analysis. Necessary components of object-oriented programming method will be introduced. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2010 with a grade of C- or better and MATH 1030 or MATH 1040 or MATH 1050 or MATH 1055 or MATH 1060 or MATH 2310 or MATH 2510 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2010 with a grade of C- or better and MATH 1030 or 1040 or 1050 or 1055 or 1060 or 2310 or 2510 with a grade of C- or better.
Typically Offered: Fall, Spring
CMPS 2120 Discrete Structures (4)
Discrete structures and applications in computer science. Provides an introduction to proof techniques, propositional and predicate logic, functions, relations, sets, big-oh notation, counting techniques, summations, recursive definitions, recurrence relations, discrete probability and simple circuit logic. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2010 with a grade of C- or better and MATH 1030 or MATH 1040 or MATH 1050 or MATH 1055 or MATH 1060 or MATH 2310 or MATH 2510 with a grade of C- or better.
CMPS 2240 Computer Architecture I: Assembly Language Programming (4)
Introduction to computer architecture and assembly language programming. Covers number systems and data representation, CISC and RISC instruction set architectures, internal organization of a computer, and basics of logic design. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2010 with a grade of C- or better and MATH 1030 or MATH 1040 or MATH 1050 or MATH 1055 or MATH 1060 or MATH 2310 or MATH 2510 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2010 with a grade of C- or better and MATH 1030 or 1040 or 1050 or 1055 or 1060 or 2310 or 2510 with a grade of C- or better.
Course Fee: Yes
CMPS 2650 Linux Environment and Administration (4)
This course covers common Linux commands, shell scripting, regular expressions, tools and the applications used in a Linux programming environment. The tools to be introduced include make utility, a debugger, advanced text editing and text processing (vi, sed, tr). These basic skills are extended to cover the knowledge and skills critical to administering a multi-user, networked Linux system. Administrative topics include kernel and network configuration, managing daemons, devices, and critical processes, controlling startup and shutdown events, account management, installing software, security issues, shell scripting. Many concepts will be demonstrated during hands-on labs. Each week lecture meets for 150 minutes and lab meets for 150 minutes.
CMPS 2680 Web Programming I: Client -side Web Programming (3)
An introduction to webpage layout and design with HTML and CSS and client-side web programming with Javascript. Students will design and create a webpage using technologies covered in the course. Each week lecture meets for 150 minutes.
Typically Offered: Fall, Spring, Summer
CMPS 2770 Special Topics (1-4)
A study of programming languages not offered otherwise. Prerequisite: CMPS 2010 with a grade of C- or better or permission of the instructor. May be repeated for credit with different topics up to a maximum of 4 units.
Requisite(s): Prerequisite: CMPS 2010 with a grade of C- or better.
Repeatable for Credit: Yes, up to 4 units
CMPS 2771 Special Topics Laboratory (1)
CMPS 3120 Algorithm Analysis (3)
Algorithm analysis, asymptotic notation, hashing, hash tables, scatter tables, and AVL and B-trees, brute-force and greedy algorithms, divide-and-conquer algorithms, dynamic programming, randomized algorithms, graphs and graph algorithms, and distributed algorithms. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better and CMPS 2120.
CMPS 3140 Theory of Computation (3)
An introduction to computability theory to include finite automata, push-down automata, formal grammars, Turing machines, decidability, intractability and NP-completeness. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3120.
Requisite(s): Prerequisite: CMPS 3120 or 312
Typically Offered: Spring
CMPS 3240 Computer Architecture II: Organization (4)
This course focuses on the design of the CPU and computer system at a functional level. Topics include CPU instruction sets and functional units, control unit design, interrupt handling and DMA, I/O support, memory hierarchy, virtual memory, buses and bus timing, and an introduction to instruction level parallelism, multithreading, and multiprocessing. Hardware security issues will also be discussed. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2240 or ECE 3200.
Course Fee: Yes
CMPS 3300 Numerical Analysis (4)
Topics include: computer representation of numbers and round-off errors, algorithms and stability, numerical solutions to nonlinear equations in one variable, direct and iterative methods for solving linear systems of equations, interpolation and polynomial approximation, numerical differentiation and integration, and initial value problems for ordinary differential equations. A computer algebra system (CAS) and/or numerical software may be used to program numerical algorithms and identify their limitations. Each week lecture meets for 200 minutes. Prerequisites: (1) C- or better in MATH 2020, MATH 2320, or MATH 2520, and (2) C- or better in MATH 2610 or CMPS 2010. MATH 3300 is cross-listed with CMPS 3300.
Requisite(s): Prerequisites: (1) C- or better in MATH 2020, MATH 2320, or MATH 2520, and (2) C- or better in MATH 2610 or CMPS 2010.
Typically Offered: Spring
Course Fee: Yes
CMPS 3350 Software Engineering (4)
This course is a general introduction to Software Engineering. The course will cover the specification, development, management, and evolution of complex software systems. Students will learn how to cost-effectively apply the methods and theory from Computer Science to solve difficult problems. The course presents a broad perspective on software and system engineering and surveys a wide spectrum of tools and techniques. Students are required to complete a project as part of a small software engineering team. Students will form groups and choose a software project early in the course, then apply methodologies learned in the course to complete their project. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3390 Application Development (4)
Planning and design of applications for desktop and mobile platforms. Concepts include frameworks, networks and client/server protocols, data management, and user interface and experience. Students will deploy and test projects to understand current methods for providing services to the client. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3420 Database Systems (4)
Basic issues in data modeling, database application software design and implementation. File organizations, relational model, relational database management systems, and query languages are addressed in detail. Two-tier architecture, three-tier architecture and development tools are covered. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: CMPS 2020 with a grade of C- or better and either CMPS 2120 or MATH 3000 .
CMPS 3480 Computer Graphics (4)
Introduction to computer graphics hardware, animation, two-dimensional transformations, basic concepts of computer graphics, theory and implementation. Use of graphics API's such as DirectX or OpenGL. Developing 2D graphics applications software. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3500 Programming Languages (3)
An examination of underlying concepts in high level programming languages and techniques for the implementation of a representative sample of such languages with regard to considerations such as typing, block structure, scope, recursion, procedures invocation, context, binding, and modularity. Features of OOP, thread, synchronization and concurrency, functional function will be discussed. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3560 Artificial Intelligence (3)
This course offers an introduction to design of intelligent agents. Emphasis is placed on algorithms for inference in formal logic systems, machine learning, and optimization with evolutionary computation. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better and either CMPS 2120 or MATH 3000.
CMPS 3600 Operating Systems (4)
A study of the introductory concepts in operating systems: historical development of batch, multi-programmed, and interactive systems; virtual memory, process, and thread management; interrupt and trap handlers, abstraction layer, message passing; kernel tasks and kernel design issues; signals and interprocess communication; synchronization, concurrency, and deadlock problems. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3620 Computer Networks (4)
A study of the theory of computer networking focusing on the TCP/IP Internet protocols and covering the five layers: physical, data link, network, transport, and application. Communication on wired, wireless, and cellular networks will be covered. The course will introduce secure communication and its incorporation into different layers of the model. As part of the laboratory component, students will learn systems programming as it relates to interprocess communication over sockets, I/O handling, process and thread control, and the development of client/server programs. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2020 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better.
CMPS 3640 Distributed and Parallel Computation (3)
Introduction to core topics in distributed and parallel computation. System models, parallel vs. distributed systems, communication, locality, concurrency, non-determinism, fault tolerance, distributed algorithms, and parallel programming. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisites: CMPS 3600 and CMPS 3620.
CMPS 3650 Digital Forensics (4)
Investigative techniques, evidence handling procedures, forensics tools, digital crime reconstruction, incident response, ethics, and legal guidelines within the context of digital information and computer compromises. Hands-on case studies cover a range of hardware and software platforms and teach students how to gather evidence, analyze evidence, and reconstruct incidents. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite or corequisite: CMPS 2010 with a grade of C- or better or CMPS 2650.
CMPS 3680 Web Programming II: Server-side Web Programming (3)
Current trends in server-side application development, configuration, and tools. Topics will include web servers, internet protocols, data interchange formats, information storage and retrieval, and security. Each week lecture meets for 100 minutes and lab meets for 150 minutes. Prerequisites: CMPS 2010 with a grade of C- or better and CMPS 2680 or instructor approval.
CMPS 3770 Special Topics (1-4)
This course will be used to supplement other courses with additional work at the intermediate level. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2020 with a grade of C- or better or permission of instructor. May be repeated for credit with different topics up to a maximum of 4 units.
Requisite(s): Prereqs: C- or higher in CMPS 2020 or 223
Repeatable for Credit: Yes, up to 4 units
CMPS 3771 Special Topics Laboratory (1)
Optional laboratory for the study of topics at the intermediate level. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2020 with a grade of C- or better or permission of the instructor. Corequisite: CMPS 3770.
CMPS 4210 Advanced Computer Architecture (4)
Foundations of parallelism in computer architecture. This course concentrates on the quantitative principles of computer architecture, instruction set and addressing design, instruction-level parallelism (ILP), compiler considerations for parallelism, cache and memory design, multiprocessor (including multi-core processors) and thread-level parallelism (TLP). A constant theme is how the hardware can achieve greater efficiency by exploiting various types of parallelism. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3240.
Requisite(s): Prerequisite: CMPS 3240.
CMPS 4300 Applied Cryptography (4)
An introduction to cryptography, history and its present-day use. Topics include: symmetric ciphers, hash functions, public-key encryption, data integrity, digital signatures, key establishment, key management, prime generation, integer factorization, discrete logarithms, pseudo-random number generation, and computational complexity. Each week lecture meets for 200 minutes. Prerequisites: (1) C- or better in MATH 2020, MATH 2320, or MATH 2520, and (2) C- or better in MATH 3000 or CMPS 2120. Cross-listed as CMPS 4300 or MATH 4300.
CMPS 4350 Advanced Software Engineering (4)
Continuation of the introductory software engineering course. Methods and tools for the implementation, integration, testing and maintenance of large, complex software systems. Program development and test environments. Group laboratory project. Technical presentation methods and practice. Ethical and societal issues in software engineering. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3350.
Requisite(s): Prerequisite: CMPS 3350.
CMPS 4420 Advanced Database Systems (4)
A wide range of topics such as query processing and optimization, object-oriented database systems, distributed database systems, database warehousing and data mining will be discussed. The course will also be used to introduce emerging issues related to database systems. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3420.
Requisite(s): Prerequisite: CMPS 3420.
CMPS 4430 Introduction to Data Science (4)
This course covers the fundamentals of data science. Topics include data collection, preprocessing and transformation, visualization and exploratory analysis and the mathematical and statistical foundations for data modeling, as well as introductions to data mining algorithms, anomaly detection and feature selection. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3120 with a grade of C- or better, or approval of the instructor.
Requisite(s): Prerequisite: CMPS 3120 with a grade of C- or better, or approval of the instructor.
CMPS 4450 Data Mining and Visualization (4)
Knowledge discovery in and visualization of large datasets, including data warehouses and text-based information systems. Topics covered include data mining concepts, information retrieval, analysis methods, storage systems, visualization, implementation and applications. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3560 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 3560 or 356 with a grade of C- or better.
CMPS 4470 Computer Vision (4)
This course covers the following: Image formation, early vision, image morphology, image segmentation, object/feature representation and an introduction to supervised and unsupervised learning with an emphasis on image understanding. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: MATH 2320 or MATH 2520 with a grade of C- or better; CMPS 3120 with a grade of C- or better or ECE 3040 with a grade of C- or better. There is a $10 course material fee. Cross-listed as CMPS 4470 or ECE 4470.
Requisite(s): Prerequisite: MATH 2320 or MATH 2520 or 203 or 233 with C- or better and CMPS 3120 or 312 with C- or better or ECE 3040 or 304 with C- or better.
Course Fee: Yes
CMPS 4480 Computer Animation (4)
A study of the basic and advanced algorithms and concepts used to create digital 3D animation software. After an introduction to computer graphics, the course topics include: principles of animation; procedural, physics-based, and keyframed animation; modeling, rigging, and skinning meshes; forward and inverse kinematics; lighting, cameras, and rendering; and particle systems. Students will apply topics from the course in a final animation project. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: C- or better in CMPS 3120 or CMPS 3350 or CMPS 3480, or approval of the instructor.
CMPS 4490 Game Development (4)
CMPS 4510 Vulnerability Analysis (4)
Identification and quantification of security weaknesses, primarily in source code and executables. Topics include professional ethics, source code auditing, common source code errors, the runtime stack and memory systems, common attacks against executables, risk assessment, vulnerability classification, static binary analysis, and mitigation techniques. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 2240 and either CMPS 3350 or CMPS 3500.
CMPS 4550 Applied Machine Learning (4)
Students will learn the basics of machine learning including: supervised vs. unsupervised learning, regression, dimensionality reduction and reinforcement learning. Focus will be given to experimental setup including normalization, evaluation criteria and outlier detection. Experiments will be carried out with contemporary and classical methods on real world data sets in a wide range of applications. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: MATH 3200. Cross-listed as CMPS 4550 or ECE 4550.
Requisite(s): Prerequisite: MATH 3200.
CMPS 4560 Advanced Artificial Intelligence (4)
This course covers advanced topics in AI as follows: heuristic search, local search, adversarial search and constraint satisfaction problems. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: CMPS 3560 with a grade of C- or better.
Requisite(s): Prerequisite: CMPS 3560 or 356 with a grade of C- or better.
CMPS 4620 Network and Computer Security (4)
Fundamentals of network and computer security and information assurance. Topics covered include basic cryptography, authentication, access control, formal security policies, assurance and verification, trusted OS design, and network attacks. Methods to provide better security at both the system and network level will be presented, particularly with respects to risk analysis, cost-benefit analysis, and psychological acceptability. Ethics and legal issues related to security research will also be discussed. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: CMPS 2020 with a grade of C- or better and either CMPS 3620 or CMPS 3650.
CMPS 4770 Special Topics (1-4)
This course will often be used to supplement other courses with additional work at a more advanced level. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2020 with a grade of C- or better or permission of instructor. May be repeated for credit with different topics up to a maximum of 4 units.
Requisite(s): Prereqs: C- or higher in CMPS 2020 or 223
Repeatable for Credit: Yes, up to 4 units
CMPS 4771 Special Topics Laboratory (1)
Optional laboratory for the study of topics at a more advanced level. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2020 with a grade of C- or better or permission of the instructor. Corequisite: CMPS 4770. May be repeated for credit up to a maximum of 2 units.
Requisite(s): Corequisite: CMPS 4770. Prerequisite: CMPS 2020 with a grade of C- or better or permission of the instructor.
Repeatable for Credit: Yes, up to 2 units
CMPS 4800 Undergraduate Research (1-4)
Independent study into a research topic under the supervision of a faculty member. Students will establish the research goals and objectives with their faculty supervisor. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated for credit up to a maximum of 9 units.
Repeatable for Credit: Yes, up to 9 units
CMPS 4860 Internship in Computer Science (1-4)
Internships may be arranged by the department with various agencies, businesses, or industries. The assignments and coordination of work projects with conferences and reading, as well as course credits, evaluation, and grading are the responsibility of the faculty liaison (or course instructor), working with the field supervisor. Offered on a credit, no-credit basis only. The department will determine the number of credit units offered. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated with different topics up to a maximum of 9 units.
Repeatable for Credit: Yes, up to 9 units
CMPS 4870 Cooperative Education (1-4)
The Cooperative Education program offers a sponsored learning experience in a work setting, integrated with a field analysis seminar. The field experience is contracted by the Cooperative Education office on an individual basis, subject to approval by the department. The field experience, including the seminar and reading assignments, is supervised by the cooperative education coordinator and the faculty liaison (or course instructor), working with the field supervisor. Students are expected to enroll in the course for at least two quarters. The determination of course credits, evaluation, and grading are the responsibility of the departmental faculty. Offered on a credit, no-credit basis only. The department will determine the number of credit units offered. Course is repeatable, but only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated with different topics up to a maximum of 4 units.
Repeatable for Credit: Yes, up to 4 units
CMPS 4890 Experiential Prior Learning (1-4)
Majors in Computer Science with significant prior experience in computers may have some of their experience count for academic credit toward their degree. In order to be considered for experiential learning credit the student must have completed CMPS 2020 and have the approval of the department. Only a combined total of 4 units of CMPS 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2020 with a grade of C- or better and permission of the instructor. May be repeated with different topics up to a maximum of 4 units.
Requisite(s): Prerequisite: CMPS 2020 with a grade of C- or better or permission of the instructor.
Repeatable for Credit: Yes, up to 4 units
CMPS 4910 Senior Project I (2)
After consultation with the faculty supervisor and investigation of relevant literature, the student(s) shall prepare a substantial project with significance in the designated area. The timeline, teamwork responsibilities, milestones, and presentation(s) will be scheduled. Prerequisites: At least 12 units of 3000- or 4000-level CMPS coursework.
Requisite(s): Prerequisites: At least 12 units of 3000- or 4000-level CMPS coursework.
CMPS 4928 Senior Project II (2)
This is the completion phase of the project. Students will present a project report to the entire class, explaining the nature of the work, the finished product, and its relationship to the field. Students will demonstrate proficiency in critical thinking, information literacy, written communication, and quantitative reasoning in their written project report. Additionally, students will demonstrate an understanding of their academic pursuits by reflecting on their studies of the arts, humanities, natural sciences, behavioral sciences, and social sciences. Prerequisite: At least 90 units and completion of JYDR; and CMPS 4910. Satisfies general education requirement Senior Capstone.
Requisite(s): Prerequisite: At least 90 units and completion of JYDR; and CMPS 4910.
General Education Attribute(s): Capstone
CMPS 4960 Leadership in Computer Science (1-2)
Leadership in computer science related activities that meet campus and/or community needs. Offered on a credit, no-credit basis only. Course is repeatable. Course credits cannot be used as elective credit towards the major requirements, but can be used as additional university units. Prerequisite: Permission of the instructor.
CMPS 4970 Service Learning in Computer Science (1-2)
Service learning in computer science related activities that meet campus and/or community needs. Students will design and/or implement a service learning project in consultation with their faculty supervisor and, if applicable, community partners. Offered on a credit, no-credit basis only. Course credits cannot be used as elective credit towards the major requirements but can be used as additional university units. Prerequisite: Permission of the instructor. May be repeated for credit up to a maximum of 2 units.
Repeatable for Credit: Yes, up to 2 units
CMPS 4980 Teaching in Computer Science (1-2)
Experience supporting teaching activities in department courses, providing tutoring in the department tutoring center, leading problem-solving sessions, and/or supporting other instructional activities in the department. Offered on a credit, no-credit basis only. Course credits cannot be used as elective credit towards the major requirements but can be used as additional university units. Prerequisite: Permission of the instructor. May be repeated with different topics up to a maximum of 2 units.
Repeatable for Credit: Yes, up to 2 units
CMPS 5000 Colloquium in Computer Science (1)
This colloquium is intended to be a speaker series on current research in computer science and related fields. The colloquium provides a forum to share research, practice methods, distribute tools/software, and discuss current topics. Speakers will include scholars from academia and practitioners from the public and private sectors. Early sessions allow incoming students to familiarize themselves with the program, to other students, staff, and faculty. Offered on a credit, no-credit basis only. Each week the colloquium will meet for 50 minutes. Prerequisite: Graduate standing. May be repeated; a combined total of 2 units can be used towards the Master's degree.
Requisite(s): Prerequisite: Graduate standing.
Repeatable for Credit: Yes, up to 2 units
CMPS 5010 Current Topics in Computer Science (2)
This course focuses on discussions of current peer-reviewed literature in computer science and related topics. The course is in the format of a journal club and emphasis will be on research articles published in the last two years. Each week students will present and lead a discussion of one or more approved peer-reviewed articles. Students will be encouraged to discuss, analyze, critique, and implement the topics in each article. Students must submit reports on their related articles. Each week lecture meets for 100 minutes. Prerequisite: Graduate standing.
Requisite(s): Prerequisite: Graduate standing.
CMPS 5100 Research Methodologies and Professional Ethics (2)
This course is designed to develop research and communication skills for graduate students. The topics covered in this course will include research processes, research methods, literature searches, literature analysis, scientific manuscripts and software licensing. The course will also focus on professional ethics related to computer science and various forms of data. There will be an emphasis on requirements and regulations for human/animal-subject testing, Institutional Review Board (IRB) approval, consent, conflicts of interest, misconduct, and authorship. Each week the course will meet for 100 minutes. Prerequisite: Graduate standing.
Requisite(s): Prerequisite: Graduate standing.
CMPS 5120 Graduate Algorithm Design and Analysis (3)
This is an advanced graduate course in the analysis of algorithms, in terms of time and space complexity for best/average/worst case execution using asymptotic notation; the application of standard algorithmic approaches, including divide-and-conquer, greedy algorithms, dynamic programming, and graph algorithms, to algorithm design. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5150 Parallel Algorithms (3)
This is an advanced graduate course in the design and analysis of algorithms for parallel systems. Theoretical topics include modeling the cost of parallel algorithms, and parallel algorithms for sorting, trees, graphs, and computational geometry. Practical topics will include data-parallelism, threads, futures, scheduling, synchronization, transactional memory and message passing. Students will design and present a project on parallel algorithms. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5160 Distributed Learning and Optimization (3)
Distributed computing architectures have led to adaptation of sequential algorithms to a distributed computation domain. Computer science subfields such as machine learning and optimization benefit greatly from these distributed architectures, thus have been adapted. Topics for this class include distributed learning and optimization, graph analysis, scaling, complexity analysis and evaluation of current platforms. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5240 Graduate Computer Architecture (3)
This is a graduate survey course in computer architecture for graduate students who have some experience in computer organization and design. It covers early systems, microprocessor design, instruction set architecture, control, buses, ALU, memory and multiprocessor systems. The class focuses on memory hierarchies, caching, virtual memory, ISA design considerations (RISC, CISC, VLSI RISCs), branch speculation, advanced datapaths, multithreading, coherence and consistency, and processor heterogeneity. Students will present current work in architecture. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5270 Hardware Security (3)
This course will study the principles of computer systems security from the hardware perspective, especially as it crosses layers of abstraction. Students will learn about the vulnerabilities in current digital system design flow and the challenges of building secure hardware for each layer of abstraction. Cutting edge research on these challenges will be discussed and hands-on experiences with performing attacks, developing countermeasures, and implementing secure hardware building blocks will be required. By the end of the course, students will be able to reason about security in terms of adversarial models, hardware vulnerabilities, and attacks. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5350 Graduate Software Engineering (3)
A study of concepts and research in the area of software engineering, with attention on modeling, design patterns, software architecture, deployment, quality assurance, and communication. Discussions will include presentations on historical and current research papers in the field with a special interest in ethical dilemmas in modern software development. A term project lets students apply and develop practical skills from the course material. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5420 Natural Language Processing (3)
This is a foundational course in natural language processing (NLP) for graduate students who have some experience in artificial intelligence or machine learning. The focus of the class is end-to-end systems for classification, understanding and organization of language, and generative models for communication. Topics include machine learning for text classification, bag-of-words representation, context-free parsing, semantics and machine translation. Students will present current work in NLP. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5450 Graduate Data Mining (3)
This course introduces concepts, principles, algorithms, techniques, performance, and applications of data mining and knowledge discovery. Topics may include data preprocessing, data visualization, data dissemination, the statistical foundations for data modeling, classification and prediction, clustering analysis, association and pattern analysis, and outlier detection. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5500 Graduate Programming Languages and Compilers (3)
This is an advanced graduate course where students will study programming languages with an emphasis on their implementation. Topics include lexical analysis, language syntax, control structures, the binding of names, procedures, and their implementation in compilers. Students will design and present a project on related topics. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5510 Reverse Engineering (3)
Investigation into reverse engineering techniques for both normal executables and malware. Topics include behavioral analysis of executables, static binary analysis, dynamic binary analysis, anti-analysis and evasion techniques, obfuscation, shellcode, and code injection. Hands-on activities will reinforce the theoretical concepts being discussed. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5560 Machine Learning (3)
This course introduces concepts of machine learning with a focus of supervised learning methods. Foundational modeling of classification and regression problems will be covered. Topics include linear discriminate analysis (LDA), logistic regression, support vector machines (SVM), maximum likelihood estimation (MLE), nearest neighbor, neural networks (NN), decision trees, decision forest, AdaBoost, convolutional NN, recurrent NN. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5600 Graduate Operating Systems (3)
This course exposes students to recent developments in operating systems research and design. Course lectures and reading assignments will be on classic and recent papers that shaped the field on a range of topics, including OS design, virtual memory management, file systems, virtualization, concurrency and synchronization, cloud systems, heterogeneity, and security. The course also exposes students to basic system-building and evaluation methodologies through programming assignments and a final project. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5640 Graduate Distributed Computation (3)
With the growth of large-scale systems, there is an increasing need for distributed systems that can cover the load. This class will cover MapReduce, cloud computing networks, timing, fault tolerance, consistency, transaction, dataflow and peer to peer systems. This course emphasizes the evaluation of real-world systems from multiple contexts. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5650 Operations Security (3)
This course covers the theoretical and applied aspects of operations security (OPSEC) in cyber systems to protect sensitive and/or confidential data. Topics include threat and adversarial modeling, vulnerability analysis, penetration testing, risk assessment, countermeasures, systems hardening, and other defensive operations. Each week lecture meets for 150 minutes. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
CMPS 5770 Special Topics in Computer Science (1-3)
Contemporary topics at a graduate level in computer science, as announced in Schedule of Classes. Prerequisite: Classified graduate student status or permission of the instructor. May be repeated for credit with different topics up to a maximum of 9 units.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
Repeatable for Credit: Yes, up to 9 units
CMPS 5800 Graduate Research (1-3)
Independent investigation and study of an advanced topic in computer science under direct supervision of an instructor. The graduate research course may involve either a laboratory or a theoretical problem. Prerequisite: Classified graduate student status or permission of the instructor. May be repeated for credit up to a maximum of 6 units.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
Repeatable for Credit: Yes, up to 6 units
CMPS 5860 Graduate Internship in Computing (1-3)
Internships in computing and computer science, at an appropriate level for graduate credit, may be arranged with various agencies, businesses, or industries. Students will work with a faculty liaison (the course instructor) to coordinate assignments, work projects, readings, and other associated internship work used for academic evaluation and grading. The department will determine the number of credit units offered based off the expected number of hours of internship work. Course is repeatable up to a maximum of 9 units. However, only 3 units may be used for elective credit in the MS CS program. Prerequisite: Classified graduate student status or permission of the instructor.
Requisite(s): Prerequisite: Classified graduate student status or permission of the instructor.
Repeatable for Credit: Yes, up to 9 units
CMPS 6910 Thesis Research (1-3)
The systematic study of a research problem of significant scope and novelty as determined by the Thesis Committee. Student will identify a problem, articulate the significance of the work, determine sources and methods for gathering data (laboratory, simulation and/or field work), experiment and analyze the data, and offer a conclusion or recommendation to the research question. Students receive training and preparation for the Thesis Defense. This is required for Master's students who select the Thesis option for their capstone. Prerequisite: CMPS 5100, Classified graduate student status, and approval of the instructor (Thesis Advisor). May be repeated for credit; a combined total of 5 units can be used towards the Master's degree.
Repeatable for Credit: Yes, up to 5 units
CMPS 6920 Thesis Defense (1)
Final preparation for the Thesis Defense. This should only be taken after the Thesis demonstrates originality, critical and independent thinking, appropriate organization and format, and thorough documentation, and readiness for oral defense. Activities vary depending on topic, though all Thesis Defense classes include review and revision of the presentation by the Thesis Advisor, an oral defense and an acceptance/pass or rejection/failure decision by the Thesis Committee. This is required for Master's students who select the Thesis option for their capstone. Offered on a credit, no-credit basis only. Students who receive the no-credit grade may repeat the course, although a subsequent rejection of Thesis Defense may result in dismissal from the program. Prerequisite: CMPS 6910, Advancement to candidacy, and approval of the instructor (Thesis Advisor).
Requisite(s): Prerequisite: CMPS 6910, Advancement to candidacy, and Approval of the instructor (Thesis Advisor).
CMPS 6950 Graduate Project I (2)
Students will undertake a significant project within the scope of Computer Science under the supervision of a faculty member serving as Project Advisor. The project must be original, demonstrate independent thought, possess appropriate form and organization, and include a market analysis. Students must demonstrate progress with written reports and oral presentations, to be reviewed by the Project Advisor. Prerequisite: Classified graduate student status and approval of the instructor (Project Advisor).
Requisite(s): Prerequisite: Classified graduate student status and approval of the instructor (Project Advisor).
CMPS 6960 Graduate Project II (1)
This is a culminating experience for the Project tract students. Students will complete their project and present it to the satisfaction of the Project Committee. A written technical document (Master Project Report) that describes the project's significance, objectives, methodology and conclusion in abstract, will be reviewed by the Project Advisor and approved by the Project Committee. At the end of the course the student may publicly present the results of their project. Offered on a credit, no-credit basis only. Prerequisite: CMPS 6950, Advancement to candidacy, and approval of the instructor (Project Advisor).
Requisite(s): Prerequisite: CMPS 6950, Advancement to candidacy, and approval of the instructor (Project Advisor).
CMPS 7000 Continuous Enrollment (0)
Graduate students who have completed all of the coursework for the program except their chosen capstone option (Thesis or Project) may enroll in this special course for the purpose of maintaining continuous enrollment at CSUB while completing their capstone experience. Course is repeatable. Prerequisite: Advancement to candidacy and approval of the Graduate Program Director.
Requisite(s): Prerequisite: Advancement to candidacy and approval of the Graduate Program Director.
Repeatable for Credit: Yes, up to 0 units
ECE 1618 Introduction to Engineering I (2)
This course will provide an introduction to the practice of engineering and the various areas within the engineering disciplines. Students will be informed of engineering curricula and career opportunities within the various engineering disciplines. This course will also introduce students to important topics for academic success, both at the major level and at the university level. Each week meets for 50 minutes of lecture and 100 minutes of activity. There is a $15 course material fee.
General Education Attribute(s): First Year Seminar
Course Fee: Yes
ECE 1628 Introduction to Engineering II (2)
This course builds on the foundational skills in engineering design and practices developed in ENGR/ECE 1618. Students will design, build, test, and present engineering projects designed to solve specified problems within given constraints. Additionally, the impact of engineering from a global, social, economic, and environmental perspective is presented through case studies. Each week meets for 50 minutes of lecture and 100 minutes of activity. There is a $15 course material fee. Prerequisite: ECE/ENGR 1618. Completion of ECE/ENGR 1618 and ECE/ENGR 1628 satisfies general education requirement First Year Seminar.
Requisite(s): Prereqs: ENGR/ECE 1618
General Education Attribute(s): First Year Seminar
Course Fee: Yes
ECE 2070 Electric Circuits (4)
An introduction to the analysis of electrical circuits. Use of analytical techniques based on the application of circuit laws and network theorems. Analysis of DC and AC circuits containing resistors, capacitors, inductors, dependent sources and/or switches. Natural and forced responses of first and second order RLC circuits; the use of phasors; AC power calculations; power transfer; and energy concepts. 150 minutes lecture and 150 minutes laboratory. Prerequisites: PHYS 2220 with a grade of C- or better, or the equivalent, or permission of the instructor. Cross-listed as ECE 2070 or ENGR 2070 or PHYS 2070.
Requisite(s): PHYS 2220 or 222 with a C- or better
Course Fee: Yes
ECE 2770 Special Topics in Engineering (1-4)
This course will be used to supplement regularly scheduled courses with additional material at the beginning level. May be repeated for credit with different topics up to a maximum of 4 units.
Repeatable for Credit: Yes, up to 4 units
ECE 2771 Special Topics Laboratory (1)
Optional laboratory for the study of topics at the beginning level. Co-requisite: ECE 2770
Requisite(s): Coreq: ECE 2770
ECE 3040 Signals and Systems (4)
Design, construction, and debugging of analog electronic circuits. Diodes, filters, oscillators, transistors, JFETs, op-amps, and basic analog circuit design. Broadband applications in networking and communications. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: MATH 2320 or MATH 2520 with a grade of C- or better, MATH 2610, and ENGR 2070 or ECE 2070 or PHYS 2070 with a grade of C- or better. There is a $10 course material fee.
ECE 3070 Analog Circuits (4)
Design, construction, and debugging of analog electronic circuits. Diodes, filters, oscillators, transistors, JFETs, op-amps, and basic analog circuit design. Broadband applications in networking and communications. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: MATH 2320 or MATH 2520 with a grade of C- or better, MATH 2610, and ENGR 2070 or ECE 2070 or PHYS 2070 with a grade of C- or better. There is a $10 course material fee.
Requisite(s): Prerequisites: C- or better in MATH 2320 or 2520 or 203 or 233 and MATH 2610 (D-) or 230 (D-) or 330 (D-) and C- or better in ENGR/ECE/PHYS 2070 or ENGR/ECE/PHYS 207.
Course Fee: Yes
ECE 3200 Digital Circuits (4)
Introduce combinational logic and sequential logic designs, and microprocessors. Cover digital concepts, number systems, operations, and codes, logic gates, Boolean algebra and logic simplification, combinational logic and its functions, flip-flops and related devices, counters, shift registers, memory and storage, concepts of microprocessors, assembly language, computers, and buses. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ENGR 2070 or ECE 2070 or PHYS 2070 with a grade of C- or better. There is a $10 course material fee.
Requisite(s): Prerequisites: ENGR/ECE/PHYS 2070 with a grade of C- or better.
Course Fee: Yes
ECE 3220 Digital Design with VHDL (4)
Introduces logic system design using a hardware description language (VHDL). Covers the VHDL language in depth and explains how to use it to describe complex combinational and sequential logic circuits. Include a weekly lab where students will get hands-on experience implementing digital systems on Field Programmable Gate Arrays. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: CMPS 2010 with a grade of C- or better and ECE 3200. There is a $10 course material fee.
Course Fee: Yes
ECE 3230 Digital Communications (4)
This course focuses on the representation of signals and noise, Gaussian processes, correlation functions and power spectra, linear systems and random processes, performance analysis and design of coherent and non-coherent communication systems, phase-shift-keying, frequency-shift-keying, and M-ary communication systems, optimum receivers and signal space concepts, information and its measure, source encoding, channel capacity, and error correcting coding. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 3040 with a grade of C- or better. There is a $10 course material fee.
Requisite(s): Prerequisites: ECE 3040 with a grade of C- or better.
Course Fee: Yes
ECE 3250 Embedded Systems (4)
Introduce embedded systems. Cover embedded concepts, FPGA modules, combinational and sequential logic circuits design, finite state machines, memory and storage, sensor and motor interface. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 3070 and ECE 3200. There is a $10 course material fee.
Course Fee: Yes
ECE 3280 Instrumentation, Control, and Data Acquisition (4)
Introduction to LabVIEW and NI Elvis board. Students learn how to use NI virtual instruments, such as function generators, oscilloscopes, etc., design a variety of projects on analog and digital inputs, outputs, and signal generations, and use both simulation and hardware test-beds to verify their projects and performance. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 3200. There is a $10 course material fee.
Requisite(s): Prereqs: ECE 3200.
Course Fee: Yes
ECE 3320 Fields and Waves (4)
This course focuses on the fundamentals of electromagnetics. Students are expected to acquire expertise in vector analysis, electrostatic and magnetic fields, Maxwell's equations, plane waves, reflection, attenuation, and impedance. Knowledge of circuit theory, Matlab, differential equations, and calculus are required to successfully complete the course. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: MATH 2320 or MATH 2520 with a C- or better; ENGR 2070 or ECE 2070 or PHYS 2070 with a C- or better.
ECE 3340 Control Systems (4)
Introduce control system analysis and design. Cover control system modeling, time response, reduction of multiple systems, stability analysis, steady-state errors, root locus technique, PID controller, and fuzzy controller. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: ECE 3040 with a grade of C- or better.
Requisite(s): Prereqs: C- or higher in ECE 3040.
ECE 3370 Power Systems Fundamentals (4)
This course is an introductory subject in the field of electric power systems. Electric power systems have become increasingly important as a way of transmitting and transforming energy in industrial, military and transportation uses. The course covers basic elements of power system, three-phase circuit analysis, transformers, transmission line configuration, the per unit system and power flow. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 2070 or ENGR 2070 or PHYS 2070 with a grade of C- or better.
Requisite(s): Prerequisites: C- or higher in ECE/ENGR/PHYS 2070 or ENGR/PHYS 207.
ECE 3770 Special Topics in Engineering (1-4)
This course will be used to supplement regularly scheduled courses with additional material at the intermediate level. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements.
Repeatable for Credit: Yes, up to 4 units
ECE 3771 Special Topics Laboratory (1)
Optional laboratory for the study of topics at the intermediate level. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Corequisite: ECE 3770.
Requisite(s): Coreq: ECE 3770
ECE 4220 Digital Signal Processing (4)
This course provides an introduction to principles of Digital Signal Processing (DSP) including sampling theory, aliasing effects, frequency response, Finite Impulse Response filters, Infinite Impulse Response filters, spectrum analysis, Z transforms, Discrete Fourier Transform and Fast Fourier Transform. Overviews of modern DSP applications such as modems, speech processing, audio and video compression and expansion, and cellular protocols. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 3040 with a C- or better. There is a $10 course material fee.
Requisite(s): Prerequisites: ECE 3040 with a grade of C- or better.
Course Fee: Yes
ECE 4240 Microprocessor System Design (4)
Introduce microprocessor architecture and organization. Cover bus architectures, types and buffering techniques, Memory and I/O subsystems, organization, timing and interfacing, Peripheral controllers and programming. Design a microprocessor system. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: ENGR 2070 or ECE 2070 or PHYS 2070 with a C- or better; ECE 3200.There is a $10 course material fee.
Course Fee: Yes
ECE 4250 Wireless Communications (4)
In this course analytical characterizations of mobile communications channels are developed. The main techniques for mitigating the mobile communication channel effects such as Equalization, Diversity, etc. are examined. Multiple access techniques used in wireless communications, such as FDMA as well as digital TDMA and CDMA techniques are presented. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: ECE 3040 with a grade of C- or better.
Requisite(s): Prerequisites: ECE 3040 with a grade of C- or better.
ECE 4260 Wireless Network (4)
This course focuses on wireless data communications including wireless internet. The students acquire knowledge into the current and future state-of-the-art of technology in the field of wireless communications. Another goal of the course is to ensure student(s) can explain the impact of commercial, political, and regulatory factors on the design of wireless systems. The course will treat current relevant technologies, and the exact content may change from year to year. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: MATH 2320 or MATH 2520 with a grade of C- or better.
ECE 4370 Power Systems Analysis (4)
This course follows the discussions from the first course in power systems. This course focuses on power flow, symmetrical components, faulted system analysis, and protection schemes. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: ECE 3370. There is a $10 course material fee.
Requisite(s): Prerequisite: ECE 3370 or 337.
Course Fee: Yes
ECE 4380 Power System Operation with Renewable Energy Resources (3)
Renewable energy, distributed generation, impacts of renewable energy based generation on power system operation, electrical energy markets, deregulated power system, hybrid power generation. Each week meets for 150 minutes of lecture. Prerequisite: ECE 3370
Requisite(s): Prerequisite: ECE 3370 or ECE 337.
ECE 4381 Power System Operation with Renewable Energy Resources Laboratory (1)
Laboratory in power system operations with renewable energy based generation. Completion of the laboratory component is required for Electrical Engineering majors to get elective credit for this course. Each week meets for 150 minutes of laboratory. Prerequisite or corequisite: ECE 4380.
Requisite(s): Prerequisite or corequisite: ECE 4380
ECE 4460 Image Processing (4)
This course covers the following: digital image acquisition, image enhancement and restoration, image compression, spatial and frequency-based image filtering, color processing, low level image segmentation and feature extraction. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: ECE 3040 with a grade of C- or better. There is a $10 course material fee.
Requisite(s): Prereqs: C- or higher in ECE 3040.
Course Fee: Yes
ECE 4470 Computer Vision (4)
This course covers the following: Image formation, early vision, image morphology, image segmentation, object/feature representation and an introduction to supervised and unsupervised learning with an emphasis on image understanding. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: MATH 2320 or MATH 2520 with a grade of C- or better; CMPS 3120 with a grade of C- or better or ECE 3040 with a grade of C- or better. There is a $10 course material fee. Cross-listed as CMPS 4470 or ECE 4470.
Requisite(s): Prerequisite: MATH 2320 or MATH 2520 or 203 or 233 with C- or better and CMPS 3120 or 312 with C- or better or ECE 3040 or 304 with C- or better.
Course Fee: Yes
ECE 4550 Applied Machine Learning (4)
Students will learn the basics of machine learning including: supervised vs. unsupervised learning, regression, dimensionality reduction and reinforcement learning. Focus will be given to experimental setup including normalization, evaluation criteria and outlier detection. Experiments will be carried out with contemporary and classical methods on real world data sets in a wide range of applications. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisite: MATH 3200. Cross-listed as CMPS 4550 or ECE 4550.
Requisite(s): Prerequisite: MATH 3200.
ECE 4570 Robotics (4)
Introduce robotic systems. Cover Mindstorms NXT, motion control, target steering and trajectory planning, obstacle avoidance, line tracking, and multiple sensor fusion. Each week lecture meets for 150 minutes and lab meets for 150 minutes. Prerequisites: CMPS 2010 and ECE 3040 with a grade of C- or better. There is a $10 course material fee.
Course Fee: Yes
ECE 4770 Special Topics in Engineering (1-4)
This course will often be used to supplement other courses with additional work at a more advanced level. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated for credit up to a maximum of 4 units.
Repeatable for Credit: Yes, up to 4 units
Course Fee: Yes
ECE 4771 Special Topics Laboratory (1)
Optional laboratory for the study of topics at a more advanced level. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. Corequisite: ECE 4770. May be repeated for credit with different topics up to a maximum of 2 units.
Requisite(s): Coreq: ECE 4770
Repeatable for Credit: Yes, up to 2 units
ECE 4800 Undergraduate Research (1-4)
Independent study into a research topic under the supervision of a faculty member. Students will establish the research goals and objectives with their faculty supervisor. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated for credit up to a maximum of 9 units.
Repeatable for Credit: Yes, up to 9 units
ECE 4860 Internship (1-4)
Internships may be arranged by the department with various agencies, businesses, or industries. The assignments and coordination of work projects with conferences and reading, as well as course credits, evaluation, and grading are the responsibility of the faculty liaison (or course instructor), working with the field supervisor. Offered on a credit, no-credit basis only. The department will determine the number of credit units offered. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated up to a maximum of 9 units.
Repeatable for Credit: Yes, up to 9 units
ECE 4870 Cooperative Education (1-4)
The Cooperative Education program offers a sponsored learning experience in a work setting, integrated with a field analysis seminar. The field experience is contracted by the Cooperative Education office on an individual basis, subject to approval by the department. The field experience, including the seminar and reading assignments, is supervised by the cooperative education coordinator and the faculty liaison (or course instructor), working with the field supervisor. Students are expected to enroll in the course for at least two semesters. Offered on a credit, no-credit basis only. The department will determine the number of credit units offered. Course is repeatable, but only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: Permission of the instructor. May be repeated up to a maximum of 4 units.
Repeatable for Credit: Yes, up to 4 units
ECE 4890 Experiential Prior Learning (1-4)
Majors in Computer and Electrical Engineering with significant prior experience in computers and/or electronics may have some of their experience count for academic credit toward their degree. In order to be considered for experiential learning credit the student must have completed CMPS 2010 and have the approval of the department. Only a combined total of 4 units of ECE 377x, 477x, and 48xx may be used for elective credit towards the major requirements. Prerequisite: CMPS 2010 with a grade of C- or better and permission of the instructor. May be repeated for credit up to a maximum of 4 units.
Requisite(s): ECE 4890 requisites
Repeatable for Credit: Yes, up to 4 units
ECE 4910 Senior Project I (2)
After consultation with the faculty supervisor and investigation of relevant literature, the student(s) shall prepare a substantial project with significance in the designated area. The timeline, teamwork responsibilities, milestones, and presentation(s) will be scheduled. Prerequisite: At least 12 units of 3000- or 4000- level ECE and CMPS courses.There is a $10 course material fee.
Requisite(s): Prereqs: at least 12 semester units of upper division ECE or CMPS courses
Course Fee: Yes
ECE 4928 Senior Project II (2)
This is the completion phase of the project. Students will present a project report to the entire class, explaining the nature of the work, the finished product, and its relationship to the field. Students will demonstrate proficiency in critical thinking, information literacy, written communication, and quantitative reasoning in their written project report. Additionally, students will demonstrate an understanding of their academic pursuits by reflecting on their studies of the arts, humanities, natural sciences, behavioral sciences, and social sciences. Prerequisite: at least 90 units, completion of JYDR; and ECE 4910. For engineering majors only. Satisfies general education requirement Senior Capstone. There is a $25 materials fee.
Requisite(s): Prerequisite: At least 90 units, completion of JYDR; and ECE 4910.
General Education Attribute(s): Capstone
Course Fee: Yes
ECE 4960 Leadership in Engineering (1-2)
Leadership in computer and electrical engineering related activities that meet campus and/or community needs. Offered on a credit, no-credit basis only. Course credits cannot be used as elective credit towards the major requirements but can be used as additional university units. Prerequisite: Permission of the instructor. May be repeated up to a maximum of 2 units.
Repeatable for Credit: Yes, up to 2 units
ECE 4970 Service Learning in Engineering (1-2)
Service learning in computer and electrical engineering related activities that meet campus and/or community needs. Students will design and/or implement a service learning project in consultation with their faculty supervisor and, if applicable, community partners. Offered on a credit, no-credit basis only. Course credits cannot be used as elective credit towards the major requirements but can be used as additional university units. Prerequisite: Permission of the instructor. May be repeated up to a maximum of 2 units.
Repeatable for Credit: Yes, up to 2 units
ECE 4980 Teaching in Engineering (1-2)
Experience supporting teaching activities in department courses, providing tutoring in the department tutoring center, leading problem-solving sessions, and/or supporting other instructional activities in the department. Offered on a credit, no-credit basis only. Course credits cannot be used as elective credit towards the major requirements but can be used as additional university units. Prerequisite: Permission of the instructor. May be repeated up to a maximum of 2 units.
Repeatable for Credit: Yes, up to 2 units
ENGR 1618 Introduction to Engineering I (2)
This course will provide an introduction to the practice of engineering and the various areas within the engineering disciplines. Students will be informed of engineering curricula and career opportunities within the various engineering disciplines. This course will also introduce students to important topics for academic success, both at the major level and at the university level. Each week meets for 50 minutes of lecture and 100 minutes of activity. There is a $15 course material fee.
General Education Attribute(s): First Year Seminar
Course Fee: Yes
ENGR 1628 Introduction to Engineering II (2)
This course builds on the foundational skills in engineering design and practices developed in ENGR/ECE 1618. Students will design, build, test, and present engineering projects designed to solve specified problems within given constraints. Additionally, the impact of engineering from a global, social, economic, and environmental perspective is presented through case studies. Each week meets for 50 minutes of lecture and 100 minutes of activity. There is a $15 course material fee. Prerequisite: ECE/ENGR 1618. Completion of ECE/ENGR 1618 and ECE/ENGR 1628 satisfies general education requirement First Year Seminar.
Requisite(s): Prereqs: ENGR/ECE 1618
General Education Attribute(s): First Year Seminar
Course Fee: Yes
ENGR 2070 Electric Circuits (4)
An introduction to the analysis of electrical circuits. Use of analytical techniques based on the application of circuit laws and network theorems. Analysis of DC and AC circuits containing resistors, capacitors, inductors, dependent sources and/or switches. Natural and forced responses of first and second order RLC circuits; the use of phasors; AC power calculations; power transfer; and energy concepts. 150 minutes lecture and 150 minutes laboratory. Prerequisites: PHYS 2220 with a grade of C- or better, or the equivalent, or permission of the instructor. Cross-listed as ECE 2070 or ENGR 2070 or PHYS 2070.
Requisite(s): PHYS 2220 or 222 with a C- or better
Course Fee: Yes
ENGR 2110 Analytic Mechanics, Statics (3)
Introduces students to fundamental principles of force systems acting on particles and rigid bodies in static equilibrium. Applications to structural and mechanical problems, both two-dimensional and three-dimensional. Prerequisite: PHYS 2210 and ENGR 2350 with a grade C- or better. Prerequisite or corequisite: MATH 2320 or MATH 2520.
ENGR 2120 Analytical Mechanics, Dynamics (3)
Topics include vector representation of kinematics of particles; Newton's laws of motion; force-mass-acceleration, work-energy, and impulse-momentum methods; kinematics of systems of particles and rigid bodies. Prerequisites: ENGR 2110 with a grade of C- or better.
Requisite(s): Prerequisites: ENGR 2110 with C- or better.
ENGR 2130 Mechanics of Materials (3)
This course covers stress and strain and mechanical properties of materials. The axial load, torsion, bending and transverse shear; combined loadings; stress transformation; pressure vessels, deflection of beams and shafts; and buckling of columns are reviewed as well. Prerequisites: ENGR 2110 with a C- or better.
Requisite(s): Prerequisites: ENGR 2110 with C- or better.
ENGR 2140 Materials Science and Engineering (4)
Introductory course to engineering materials. The student will develop an understanding of the atomic structure of the major classes of materials. The properties (mechanical, thermal, optical, and electrical) of metals, polymers, ceramics, and electronic materials will be reviewed. The student will understand the effect of processing in the internal structures of materials. It is expected that at the end of the course the student will understand material deterioration and failure processes. Prerequisites: PHYS 2210, CHEM 1000 and CHEM 1001, all with a grade C- or better.
Requisite(s): Prerequisite: PHYS 2210 or 221, CHEM 1000 or 211, 1001 or 211L, all with a C- or better.
Course Fee: Yes
ENGR 2350 Engineering Graphics (2)
This course covers the principles of engineering drawings in visually communicating engineering designs and an introduction to computer-aided design (CAD). Topics include the development of visualization skills; orthographic projections; mechanical dimensioning and tolerancing practices. Assignments develop sketching and 2-D CAD skills. The use of CAD software is an integral part of the course.
Course Fee: Yes
ENGR 2360 Intermediate CAD in Engineering (2)
Intermediate topics in computer-aided design using CAD software. Introduction to 3-dimensional drawing and modeling with engineering applications, adding text to drawings, creating dimensions, using blocks and external references, managing content, creating a layout to plot, and plotting your drawings. Prerequisite: ENGR 2350 with a C- or better.
Requisite(s): Prerequisite: ENGR 2350 with C- or better
Course Fee: Yes
ENGR 2700 Special Topics in Engineering (1-3)
Topics and prerequisites to be announced. May be repeated for credit with different topics up to a maximum of 3 units.
Repeatable for Credit: Yes, up to 3 units
ENGR 3070 Analog Electronics (3)
Course Fee: Yes
ENGR 3110 Thermodynamics (4)
Study of the first law of thermodynamics, properties of pure substances, entropy, the second law of thermodynamics, reversible and irreversible processes, availability (exergy), ideal vapor power cycles, ideal gas power cycles, and refrigeration and heat pump cycles. Prerequisites: PHYS 2220, and CHEM 1000 both with a C- or better.
Course Fee: Yes
ENGR 3120 Fluid Mechanics (4)
Hydrostatics and fluid dynamics. Viscous flow, boundary layer concepts, lift and drag, laminar and turbulent flow, compressible flow. Experiments involving flow measurement and control, conservation equations, pressure and velocity distributions, dimension analysis, lift and drag. Prerequisites: ENGR 2120 and ENGR 3300, both with a grade C- or better, and ENGR 3110.
Course Fee: Yes
ENGR 3300 Engineering Modeling and Analysis (3)
Formulation of mathematical models for engineering systems; applying mass, momentum, and energy balances to derive governing differential equations; solution of differential equations and eigenvalue problems typically encountered within an engineering context; fitting linear and nonlinear models to experimental data; concepts in probability and statistics. Prerequisite: PHYS 2220, MATH 2320 or MATH 2520, both with a grade of C- or better.
Course Fee: Yes
ENGR 3310 Numerical Methods and Applications in Engineering (3)
Formulation and solution of mathematical models for engineering systems, continuation from ENGR 3300. Numerical methods including: interpolation and polynomial approximation, numerical differentiation and integration, numerical solution of ordinary differential equations. Advanced methods in a numerical computing environment and computer-aided design. Prerequisite: ENGR 3300 with a C- or better.
Requisite(s): Prerequisite: ENGR 3300 with C- or better.
ENGR 3400 Soil and Water Resource Management (3)
ENGR 3410 Agricultural Machines and Instrumentation (3)
Introduces students to application of machine systems and instrumentation to agricultural production and biological processing. Functional design and analysis of equipment. This course is designed to provide a broad foundation for understanding machine systems and instrumentation. Machine systems are an integral part of many agricultural operations from field production to post-harvest processing, storage, transportation, and bio-based processing. Prerequisites: ENGR 2110 with a grade of C- or better.
Requisite(s): Prerequisites: ENGR 2110 with C- or better.
ENGR 4110 Heat Transfer (4)
Introduces the analysis of steady and transient heat conduction, forced and natural convection, radiation heat transfer, and design of heat exchangers. Analytical and numerical methods in heat transfer and fluid mechanics. Topics include heat conduction and convection, gaseous radiation, boiling and condensation, general aspects of phase change, mass transfer principles, multimode heat transfer and the simulation of thermal fields, and the heat transfer process. Prerequisites: ENGR 3110 and ENGR 3120.
Course Fee: Yes
ENGR 4120 Machine Design (4)
This course is an introduction to the principles of mechanical design. Methods for determining static, fatigue, and surface failure are presented. Analysis and selection of machine components such as shafts, keys, couplings, bearings, gears, springs, power screws, and fasteners is covered. Prerequisites: ENGR 2120 and ENGR 2130, both with a grade C- or better.
Course Fee: Yes
ENGR 4200 Operations Research (3)
Introduction to deterministic optimization modeling and algorithms in operations research. Emphasis on formulation and solution of linear programs, network flows, and integer programs. Introduction to probabilistic models in operations research. Emphasis on Markov chains, Poisson processes, and their application to queueing systems. Prerequisites: MATH 2310 or MATH 2510 with a grade of C- or better.
ENGR 4220 Project Management (3)
Projects are unique, strategically important, complex endeavors with definite beginning and ending dates. The course develops the skills required to manage the component processes of a project throughout its life cycle: scope, time and sequencing, cost, quality, human resources, communications, risk, procurement, and project integration management. The project life cycle encompasses development of the initiative out of strategic planning activities, articulation of project goals and objectives, planning project components and their integration, execution and control, project close out, and follow-up activities. Prerequisites: MATH 2310 or MATH 2510 with a C- or better.
ENGR 4240 Quality Management (3)
An overview of management literature relating to quality planning, quality control, quality assurance, and quality improvement. A consideration of the core principles and methods common to most quality improvement programs and their relationship to management principles. Comparison of prevalent quality improvement programs such as ISO9004: 2008, SixSigma, and TQM and the Malcolm Baldrige Standards. Case studies. Prerequisites: MATH 2310 or MATH 2510 with a grade of C- or better.
ENGR 4260 Economics of Engineer Design (3)
Cost measurement and control in engineering studies. Basic accounting concepts, income measurement, and valuation problems. Manufacturing cost control and standard cost systems. Capital investment, engineering alternatives, and equipment replacement studies. Prerequisites: MATH 2310 or MATH 2510 with a grade of C- or better.
ENGR 4410 Environmental Engineering (4)
An introduction to environmental engineering, including: water usage and conservation; water chemistry including pH and alkalinity relationships, solubility and phase equilibria; air quality; solid waste disposal; fate and transport of contaminants in lakes, streams and groundwater; design and analysis of mechanical, physiochemical and biochemical water and wastewater treatment processes. Prerequisite: CHEM 1000 and CHEM 1001 (C- or higher); prerequisite or corequisite: ENGR 3300.
ENGR 4420 Food and Bioprocess Engineering Unit Operations (3)
Principles of the engineering design, testing and analysis of unit processing operations employed in the food and bioprocess industries, such as sterilization, pasteurization, freezing/refrigeration, drying, evaporation, and fermentation, along with physical, chemical and phase separations. Design and analysis of thermal, freezing, evaporation, dehydration; and mechanical, chemical and phase separations processes as governed by reaction kinetics and rheology of food and biological materials. Prerequisites: CHEM 1000 and CHEM 1001, both with a grade C- or better. Prerequisite or corequisite: ENGR 3110 and ENGR 3300.
ENGR 4520 Petroleum Production Engineering (3)
Covers topics in modern petroleum production engineering, including production technologies, production equipment, equipment design and optimization, well completion, tubing design, well performance evaluation (productivity index), inflow performance relationships (IPR), artificial lift and surface facilities. Prerequisite or corequisite: ENGR 3110. Prerequisite: GEOL 4060 with a grade C- or better.
ENGR 4530 Reservoir Engineering (4)
Fundamental equations of fluid flow through porous media, reservoir material balances, aquifer influx, well testing, and decline curve analysis. Methods for forecasting reservoir performance are covered using analytical models, enhanced oil recovery methods, numerical simulation of improved recovery processes, and reservoir aspects of horizontal wells. Prerequisites: MATH 2320 or MATH 2520, and GEOL 4060, both with a grade C- or better.
ENGR 4540 Drilling Engineering and Completion Technology (4)
Fundamentals of drilling equipment, engineering design calculations, wellbore diagrams, drilling fluids, cement calculations, and casing design. Additional topics such as directional drilling as well as completion technologies are covered using practical examples and field applications as applied in the oil and natural gas well drilling operations. 150 minutes lecture/discussion and 150 minutes laboratory per week. Prerequisites: ENGR 2140, and GEOL 4060, both with a grade C- or better.
Course Fee: Yes
ENGR 4610 Conventional Energy Production (3)
Study of combustion of fossil fuels, thermal power plant and cogeneration, gas turbine power plant and cogeneration, combined gas turbine-thermal power plant, integrated gasification combined cycle (IGCC) power plants, nuclear power plants, and environmental impacts associated with conventional energy production methods. Prerequisite: ENGR 3110.
Requisite(s): Prerequisite: ENGR 3110.
ENGR 4620 Renewable Energy Production (3)
Study of hydro energy systems, geothermal energy systems, wind energy systems, solar energy systems, fuel cells, thermoelectric power generator, biomass, carbon capturing and sequestration, energy storage, economic analysis of energy generating systems, and environmental impacts associated with renewable energy production methods. Prerequisite: ENGR 3110.
Requisite(s): Prerequisite: ENGR 3110.
ENGR 4700 Special Topics in Engineering (1-4)
This course will often be used to supplement other courses with additional work at a more advanced level. May be repeated in different topics, but only a total of up to 4 units of ENGR 4700 can be used for upper division elective credit towards major requirements. Prerequisite: Permission of instructor.
Repeatable for Credit: Yes, up to 4 units
ENGR 4800 Research Participation (1-3)
Individual study, under supervision, on a current research problem. (Experience as a research assistant does not count for credit.) May include research in the areas of curriculum and materials development. May be repeated, but only a total of up to 3 units of ENGR 4800 can be used for upper division elective credit towards major requirements. Prerequisite: Permission of instructor.
Repeatable for Credit: Yes, up to 3 units
ENGR 4900 Senior Design Project A (2)
Selection and initiation of an engineering design project under faculty supervision. Collaborative projects with local industry partners are encouraged. Projects are presented in a formal report and in a formal presentation. Prerequisite: ENGR 2140 and ENGR 2070 with C- or better; prerequisite or corequisite ENGR 4110 and ENGR 4120 and open only to Engineering Sciences majors.
Requisite(s): Prerequisite: ENGR 2140 and ENGR 2070 with C- or better and prerequisite/corequisite ENGR 4110 and 4120 and open only to Engineering Sciences majors.
Course Fee: Yes
ENGR 4910 Senior Design Project B (2)
Requisite(s): Prerequisite: ENGR 4900 and Engineering major.
Typically Offered: Spring
Course Fee: Yes