Department of Engineering and Computer Science

The Department of Engineering and Computer Science offers majors in engineering, computer science, and computer information systems, and minors in computer science and computer information systems.

Mission

The primary missions of the Department of Engineering and Computer Science at Azusa Pacific University are:

  1. To offer exemplary undergraduate degree programs in engineering, computer science, and computer information systems; 
  2. To provide computer programming and technology courses for nonmajors; 
  3. To prepare students for graduate study and success in their chosen careers; and 
  4. To assist students in applying their knowledge and skills in service to society based on an understanding of Christian truth and values.

Department Resources

The department operates two computer science laboratories on the Azusa campus: the advanced technologies/multimedia laboratory and the computer science main laboratory. Lab technicians are available during lab hours for tutoring, free of charge to all students enrolled in computer science courses. A new engineering lab has been added.

Although the university provides extensive computer lab facilities for student use, each student is required to purchase a personal computer, as students with their own computers have a definite advantage in using and applying engineering and computer science instruction.

CS 100, Introduction to Programming, 3 Units

Students in this course are introduced to basic programming concepts using a suitable and modern programming language, with a strong emphasis on problem solving through programming fundamentals such as variables, expressions, data types, branching, loops, functions, lists, dictionaries, and file input/output. Although the course may use an object-oriented language, object-oriented principles are not covered, as the course is intended to provide non-computer-science majors the tools needed to be successful in carrying out common programming tasks in their fields, such as basic scripting, data analysis, and automation. In-class exercises and several programming projects are included.

Corequisite: MATH 110

CS 110, STEM as Vocation, 3 Units

This course explores two topics. The first topic is methods to apply STEM skills to solve real world challenges that have positive social impact. During your college education you will learn technical skills that can be applied for positive impact on the lives of those around you (near and globally) and to further God's Kingdom here on Earth. The second topic in this course is the exploration of intercultural skills. This is important since you will be required to work with individuals of diverse ethnic backgrounds and you may have to work across cultures. In addition, we live in a multi-ethic society so developing these types of capabilities is a valuable life skill. Meets the General Education Requirement: Intercultural Competence. 

CS 115, Impact of Social Media, 3 Units

Social Media has dramatically transformed human interaction in recent decades. The development of platforms such as TikTok, Instagram, Twitter, Facebook, LinkedIn, etc. has impacted humanity on a deeply personal level, facilitated social movement, and even fueled revolutions. Misinformation and counterintelligence have mushroomed. Mental health and self-esteem have degraded. Monitoring, control, and censorship of Social Media have become methods in which various entities have sought to gain information and influence. The platforms have continuously developed services designed to enlarge their user base, enhance engagement, and ultimately monetize information. This course provides a deep investigation of the impacts of Social Media on society. Meets the General Education Requirement: Social Science. 

CS 120, Introduction to Computer Science I, 4 Units

This course introduces students to object-oriented programming, with an emphasis on problem solving, design and analysis of algorithms, and programming principles. Course material also covers principles of object-oriented and structured programming, problem analysis, and documentation. Attendance at a weekly computer lab is required. Students complete a number of programming projects, and learn how to effectively communicate technical matters orally. Meets the General Education Requirement: GE:Oral Communication (ENGR 120+ENGR 240+ENGR 480), Oral Communication (CS 120+CS 290+CS 480). 

Prerequisite: MATH 110 (may be taken concurrently) or proven competence in college algebra.

CS 125, Introduction to Computer Science II, 4 Units

This course is a continuation of object-oriented programming and other topics from ENGR 120/CS 120, and provides an introduction to arrays, inheritance, file I/O, and GUIs. Problem analysis, program design, development and implementation, and related topics are covered. Lab is required. Students complete a number of programming projects. Lecture, 3 hours; lab, 3 hours.

Prerequisite: CS 120/ENGR 120

CS 150, Operating Systems, 3 Units

This course provides an introduction to the basic functions of modern operating systems, including multitasking, process synchronization, deadlocks, memory management, virtual memory, file systems, protection, and security. The course also includes a comparative analysis of several popular operating systems.

Prerequisite: CS 120/ENGR 120

CS 160, Discrete Structures, 3 Units

Students in this course explore the mathematical elements of computer science, including propositional logic, predicate logic, sets, functions and relations, combinatorics, mathematical induction, recursion, algorithms, matrices, graphs, trees, and Boolean logic. Attention is given to the direct applications to computer science.

Prerequisite: MATH 150

CS 205, Microcomputer Software Tools, 3 Units

This PC-based course covers the basics of MS Windows and the use of applications software as problem-solving tools. In-depth coverage of popular word processing, database, and spreadsheet packages is included.

CS 230, Systems Programming and Operating Systems, 3 Units

This course provides an in-depth study of systems programming using the C language and Linux operating system. Applications include programming projects in threads, signals, memory, and critical sections. It also provides an introduction to the basic functions of modern operating systems. These include multitasking, process synchronization, deadlocks, memory management, virtual memory, file systems, protection, and security.

Prerequisite: CS 125/ENGR 125

CS 240, Assembly Language Programming, 3 Units

This programming class includes the architecture and organization of microcomputer systems, fundamentals of assemblers, assembly language programming, and advanced topics on the Intel 80X86 family of microprocessors. Students write several programs which are assembled and run on Intel 80X86-based microcomputers. Students become proficient at keyboard, screen, and disk I/O as well as character manipulation and screen graphics.

Prerequisite: CS 125/ENGR 125

CS 242, Digital Logic Systems, 4 Units

This course covers Boolean algebra, Karnaugh maps, logic gates, combinational circuit design, sequential circuits analysis and design, Register, and counter and memory system analysis and design, as well as laboratory experiments with TTL logic gates, flip-flops, and counters. Students also learn how to effectively communicate technical matters orally. Meets the General Education Requirement: GE:Oral Communication (ENGR 120+ENGR 240+ENGR 480). 

Prerequisite: CS 125/ENGR 125

CS 260, Algorithms and Data Structures, 3 Units

This course provides a study of algorithms and their related data structures, including linear lists, linked lists, trees, graphs, sorting techniques, and dynamic storage allocation. Applications are implemented using an appropriate computer language.

Prerequisite: CS 125/ENGR 125

CS 290, Database Management Systems, 3 Units

This course covers database concepts; relational and nonrelational database systems; database environment, theory, and applications; and design, development, and implementation of database systems. Students develop a practical database project utilizing a popular database development system, and generate user interfaces and reports. Students also learn how to make persuasive technical arguments concerning common database tradeoffs that must be considered when choosing a database in a real-world project, and are instructed on how to effectively communicate technical matters orally. Meets the General Education Requirement: Oral Communication (CS 120+CS 290+CS 480). 

Prerequisite: CS 125/ENGR 125

CS 315, Fundamentals of Network Administration, 3 Units

This course provides an introduction to the three key network management issues: cost analysis, security, and administration. Case studies and laboratory exercises supplement the lecture material.

Prerequisite: CS 125/ENGR 125

CS 325, Telecommunications and Interfacing, 3 Units

The principles, protocols, methods, and standards of telecommunications, voice and data communication concepts, networking fundamentals, system configuration, and state-of-the-art practical technology are covered in this course, which includes some hands-on training.

Prerequisite: CS 125/ENGR 125

CS 360, Computer Architecture and Organization, 3 Units

This course covers the architecture and organization of computer systems, including hardware/software design considerations, implementation, interrelationships, and performance. Fundamentals of assemblers and assembly language programming using the MIPS instruction set are included, as is the use of combinational and sequential logic in the components of CPUs, buses, and interfaces. Details include input/output, memory hierarchies, pipelining, ALU operations, and CPU control. Processors include CISC and RISC, as well as multiprocessor systems. Students also take part in several programming and modeling projects that model key computer architecture components.

Prerequisite: CS 260/ENGR 260 or ENGR 240

CS 363, Web Programming, 3 Units

This course is a study of website development, emphasizing web-based programming using open-source software including Apache Server, PHP, Linux, XHTML, CSS, JavaScript and DHTML, MySQL, and others. The concepts, principles, procedures, methods, tools, and techniques used in the development and management of internet websites are covered, including the design, construction, implementation, testing, and maintenance of complex websites using cutting-edge tools. Sites are developed on the Linux platform. Each student makes assigned presentations, develops small internet projects, serves on a development team, and implements part of one major term project.

Prerequisite: CS 125/ENGR 125

CS 370, Compiler Construction, 3 Units

This course covers some fundamental knowledge of languages and automata as well as algorithms and implementation of compiler construction. Regular languages, context-free languages, and context-sensitive languages are covered. Finite-state automata, push-down automata, and multistack push-down automata are covered. Lexical analyzer and parser techniques are covered in depth, as well as symbol table generation and optimization.

Prerequisite: CS 260/ENGR 260

CS 430, Artificial Intelligence, 3 Units

Principles of artificial intelligence, study, design, and application of computer systems that model human intelligence are the focus of this course. Some of the specific topics included in this course are search (informed, uninformed, adversarial, etc.), constraint satisfaction problems (CSPs), knowledge representation, probabilistic modeling, and machine learning. Significant programming projects are assigned to enhance student's abilities to apply course algorithms and knowledge.

Prerequisite: CS 260/ENGR 260

CS 432, Machine Learning, 3 Units

This course covers introductory machine learning topics, including supervised and unsupervised learning, linear and logistic regression, neural networks, support vector machines, recommender systems, and more. Coursework includes instruction and programming assignments in algorithmic implementations and high-level library usage. Students also apply machine learning techniques to a unique research project.

Prerequisite: CS 260/ENGR 260

CS 435, Advanced Database Application Programming, 3 Units

PL/SQL, Oracle's programming language for stored procedures, delivers a world of possibilities for your database programs. PL/SQL supplements the standard relational database language, SQL, with a wide range of procedural features, including loops, IF-THEN statements, procedures, functions, packages, and database triggers-all closely integrated with the Oracle database server. The Oracle PL/SQL language is a flexible procedural extension to SQL and increases productivity, performance, scalability, portability, and security. In this course, students gain the practical knowledge to write PL/SQL programs, and learn to build stored procedures, design and execute modular applications, and increase the efficiency of data movement.

Prerequisite: CS 290

CS 440, Mobile App Development, 3 Units

This course serves as an introduction to mobile app development, with students building several cross-platform apps using cutting-edge technologies that target the Android and iOS operating systems. Topics include authentication, component creation and layout, state management, HTTP/API requests, push notifications, navigation, datastore (or database) connection, and server-side programming using cloud-based server/serverless infrastructure.

Prerequisite: CS 125

CS 452, Internet of Things, 3 Units

This course covers the fundamental aspects of the Internet of Things (IoT), including devices, protocols, security, and product development. Through hands-on labs and projects, students develop the ability to build IoT devices and systems, and a final project showcases their ability to plan, design, and execute their own IoT devices and systems. Students become proficient in embedded programming, cross-compilation, web servers and clients, basic digital electronics, communications protocols, and special programming techniques.

Prerequisite: ENGR 125/CS 125, and CS 230 or ENGR 240.

CS 455, Numerical Analysis, 3 Units

Numerical and approximation methods are covered, including solutions of functions in single and multi-variables, interpolation, numerical differentiation and integration, and numerical methods for differential equations. Applications are programmed using an appropriate language.

Prerequisite: MATH 167, MATH 295, and CS 120/ENGR 120

CS 460, Software Project, 3 Units

Each student in this course completes an independent project in the development of a nontrivial software system for an application of the student's choice.

Prerequisite: CS 260/ENGR 260 and CS 290; or instructor permission

CS 465, Team Software Project, 1-3 Units

The team of students in this course completes the development of a nontrivial software system for an application of their choosing.

Prerequisite: CS 125/ENGR 125 or instructor consent.

CS 470, Software Engineering, 3 Units

This course includes a study of the concepts, principles, techniques, methods, procedures, and documents of software engineering. Emphasis is on systematic approaches to software engineering and the software life cycle. Each student participates in a major team project. Meets the General Education Requirement: Integrative and Applied Learning. 

Prerequisite: CS 260/ENGR 260, CS 290, and at least 32 computer science units.

CS 480, Senior Capstone Project, 3 Units

The primary goal for students in this course is to implement a major team-based software product based on their own software documentation and planning from the previous semester. As a secondary goal, students study and practice software engineering concepts, principles, and methodologies relevant to the implementation phase of software engineering. Students also learn how to prepare and present a technical demo aimed at "selling" their product. Meets the General Education Requirement: Oral Communication (CS 120+CS 290+CS 480). 

Prerequisite: CS 470

CS 484, Cyber Security, 3 Units

In this course, students systematically study the fundamental principles of computer system security, including authentication, access control, capability, security policies, sandbox, software vulnerabilities, and web security, with most of these principles studied within the scope of concrete systems such as Linux and Windows. The course emphasizes "learning by doing," requiring students to conduct a series of lab exercises through which students enhance their understanding of the principles and learn to apply them to solve real-world problems.

Prerequisite: CS 230, CS 260/ENGR 260

CS 491, Computer Science Internship, 1-3 Units

This course gives students practical experience in computer science and computer information systems as they complete a computer science internship in a nonacademic facility, preferably off campus but under the joint supervision of a computer science faculty member and an outside mentor. A total of 3 units is required to satisfy the General Education Integrative and Applied Learning requirement. Meets the General Education Requirement: Integrative and Applied Learning. 

Prerequisite: Sophomore standing in computer science major and department approval.

CS 495, Topics in Computer Science, 3 Units

This course presents timely and new topics in computer science, with different material covered each time the course is offered. Most topics require prerequisites, which vary according to the topic. The course may be repeated for credit.

Prerequisite: Department consent (note course description).

CS 496, Writing 3: Ethics in Computing and Engineering, 3 Units

This course equips students with the skills to write in several genres that are relevant to Computing and Engineering, such as resumes, cover letters, professional memos, and research proposals. Students complete reading assignments on the topics of writing and ethics as applied to Computing and Engineering, then weekly writing assignments based upon the reading. The course culminates in a portfolio of the writing completed throughout the semester. Meets the General Education Requirement: Writing 3: Writing in the Disciplines. 

Prerequisite: Writing 2 (or equivalent)

CS 497, Readings, 1-4 Units

This course consists of assigned readings, discussions, and writing arranged between and designed by student and professor. An independent study fee is assessed for each enrollment in this course.

Prerequisite: Junior or senior standing and department permission.

CS 498, Directed Research, 1-4 Units

Students in this course learn about research design and technique and gain experience in the research process. The 1-unit expectation encompasses no fewer than 30 hours of work with accompanying reading, log, writing, and seminar presentation within the department or in a university research symposium. No more than 1 unit may be used to fulfill preparatory readings requirement. An independent study fee is assessed for each enrollment in this course.

Prerequisite: Junior or senior standing and department permission.

CS 499, Thesis/Project, 1-4 Units

In this senior-level "capstone" type of independent study/research experience, students participate in a unique project with a sophisticated level of research, synthesis, analysis, and communication. The 1-unit expectation encompasses no fewer than 30 hours of work with accompanying readings, log, instructor discussions, and writing of summary analysis and conclusions. The project may result in a formal thesis, published article, electronic media, annotated recital, or artistic creation of a material form. No more than 1 unit may be used to fulfill preparatory readings requirement. An independent study fee is assessed for each enrollment in this course.

Prerequisite: Junior or senior standing and department permission.

ENGR 101, Introduction to Engineering and Computing, 3 Units

Students in this course get an overview of engineering and computing as creative and responsive professions, and learn about the qualifications of engineers and computer scientists and the ways in which they study, think, work, create, design, and communicate. Course material also covers the impact of engineering and computing solutions in global, economic, and societal contexts; case studies of effective civic, governmental, and social engagement; and engineering and computing ethics. Meets the General Education Requirement: Civic Knowledge and Engagement. 

ENGR 110, STEM as Vocation, 3 Units

This course explores two topics. The first topic is methods to apply STEM skills to solve real world challenges that have positive social impact. During your college education you will learn technical skills that can be applied for positive impact on the lives of those around you (near and globally) and to further God's Kingdom here on Earth. The second topic in this course is the exploration of intercultural skills. This is important since you will be required to work with individuals of diverse ethnic backgrounds and you may have to work across cultures. In addition, we live in a multi-ethic society so developing these types of capabilities is a valuable life skill. Meets the General Education Requirement: Intercultural Competence. 

ENGR 120, Introduction to Computer Science I, 4 Units

This course introduces students to object-oriented programming, with an emphasis on problem solving, design and analysis of algorithms, and programming principles. Course material also covers principles of object-oriented and structured programming, problem analysis, and documentation. Attendance at a weekly computer lab is required. Students complete a number of programming projects, and learn how to effectively communicate technical matters orally. Meets the General Education Requirement: GE:Oral Communication (ENGR 120+ENGR 240+ENGR 480), Oral Communication (CS 120+CS 290+CS 480). 

Prerequisite: MATH 110 (may be taken concurrently) or proven competence in college algebra.

ENGR 125, Introduction to Computer Science II, 4 Units

This course is a continuation of object-oriented programming and other topics from ENGR 120/CS 120, and provides an introduction to arrays, inheritance, file I/O, and GUIs. Problem analysis, program design, development and implementation, and related topics are covered. Lab is required. Students complete a number of programming projects. Lecture, 3 hours; lab, 3 hours.

Prerequisite: ENGR 120/CS 120

ENGR 150, Introduction to Mechanics, 3 Units

This course gives students an understanding of forces, moments, and the states and conditions of equilibrium of rigid bodies. It also provides useful and practical insights into internal forces and friction. Further, this course deals with the motion of bodies under the action of forces with two parts: 1) kinematics, the study of motion without reference to the forces that cause motion; and 2) kinetics, which relates the action of forces on bodies to their resulting motions.

Prerequisite: MATH 165, PHYC 161

ENGR 160, Discrete Structures, 3 Units

Students in this course explore the mathematical elements of computer science, including propositional logic, predicate logic, sets, functions and relations, combinatorics, mathematical induction, recursion, algorithms, matrices, graphs, trees, and Boolean logic. Attention is given to the direct applications to computer science.

Prerequisite: MATH 150

ENGR 210, Engineering Thermodynamics, 3 Units

Students in this course learn classical thermodynamics and its engineering applications. Topics include energy and its transfer, properties of pure substances, the first and second laws of thermodynamics, control volume, irreversibility and availability, gas power cycles, vapor and combined power cycles, and refrigeration.

Prerequisite: PHYC 161, MATH 165

ENGR 215, Electrical Circuits and Systems, 4 Units

This course covers resistive circuits with dependent and independent sources, node and loop analyses, reactive elements and circuits, steady state solution for RLC circuits with sinusoidal inputs, resistive and reactive power, three-phase systems, motors and generators, time domain analysis of circuits, transient responses, Laplace transforms, and Fourier series. Laboratory exercises include steady state and transient circuits design and measurements.

Prerequisite: MATH 166

ENGR 240, Digital Logic Systems, 4 Units

This course covers Boolean algebra, Karnaugh maps, logic gates, combinational circuit design, sequential circuits analysis and design, Register, and counter and memory system analysis and design, as well as laboratory experiments with TTL logic gates, flip-flops, and counters. Students also learn how to effectively communicate technical matters orally. Meets the General Education Requirement: GE:Oral Communication (ENGR 120+ENGR 240+ENGR 480). 

Prerequisite: CS 125/ENGR 125

ENGR 245, Electronics, 4 Units

This course covers amplifier basics; multistage, feedback, and operational amplifiers; wave-shaping and waveform generation; digital electronics; bipolar and CMOS logic; and switching circuits. Laboratory exercises include significant design experience.

Prerequisite: ENGR 215

ENGR 260, Algorithms and Data Structures, 3 Units

This course provides a study of algorithms and their related data structures, including linear lists, linked lists, trees, graphs, sorting techniques, and dynamic storage allocation. Applications are implemented using an appropriate computer language.

Prerequisite: ENGR 125/CS 125

ENGR 271, Advanced Math for Engineers, 4 Units

This course is an introduction to topics in advanced mathematics necessary in most engineering fields. Beginning with key concepts in vector calculus and matrix algebra, the course also covers orthogonal functions, Fourier series, boundary-value problems in several coordinate systems, and the integral transform method. Additional topics may include partial differential equations and complex analysis.

Prerequisite: MATH 270

ENGR 281, Statics, 3 Units

Statics is the branch of physical science that deals with the rest state of bodies under the action of forces. It also includes resultants of force systems and equilibrium on rigid bodies using vector algebra, friction, centroids and centers of gravity, and moments of inertia of areas and masses.

Prerequisite: PHYC 161

ENGR 282, Dynamics, 3 Units

Dynamics is the branch of mechanics that deals with the motion of bodies under the action of forces. Dynamics has two distinct parts: kinematics, the study of motion without reference to the forces that cause motion; and kinetics, which relates the action of forces on bodies to the resulting motions of bodies.

Prerequisite: PHYC 161; ENGR 281 or ENGR 150; or instructor consent

ENGR 310, Discrete Systems Modeling and Simulation, 3 Units

Discrete systems consist of processes in which discrete events occur at asynchronous times. In discrete systems, events in any component of the system may affect future events in other system components. Models of discrete systems account for the occurrences of events and the conditions necessary for events to occur. This course deals with construction of models for discrete systems, theory for the behavior of the discrete system and its components, and use of simulation software to examine the behavior of discrete systems. Topics include modeling techniques, introduction to queueing theory, random number generation, discrete event simulation, Monte Carlo simulation, simulated data analysis, and simulation variance reduction techniques.

Prerequisite: MATH 361 and CS 120/ENGR 120

ENGR 325, Control Systems, 3 Units

This course introduces systems and their modeling and control, exploring open- and closed-loop control, feedback, transfer functions, signal flow graphs, stability, and root locus methods. Frequency response methods and Nyquist and Bode diagrams are used for system representation. PID compensators, state-space representation, and digital implementation of control systems are also studied.

Prerequisite: ENGR 215 and MATH 270.

ENGR 335, Embedded Systems, 4 Units

Embedded systems are found in most computing systems outside of traditional desktop/laptop/server computers, such as in cars, household appliances, handheld electronics, video game consoles, and wearable technologies. This course provides an introduction to programming embedded systems, covering fundamental topics such as timing diagrams, basic coding operations and datatypes (e.g., binary, hexadecimal, bitwise/shift operators, etc.), state machines (synchronous and concurrent), I/O, and peripheral connections. Laboratory experience includes microprocessor-based design projects with real hardware and electronic components.

Prerequisite: ENGR 240 and CS 125/ENGR 125

ENGR 340, Digital Signal Processing, 3 Units

Students in this course learn about discrete-time and sampled-data signals and systems, and their representations using z-transforms, as well as digital filters, FIR and IIR filters, stability, and round-off errors. They design different types of digital filters such as Butterworth, Chebychev, and others. The basics of discrete Fourier transforms and the fast Fourier transform (FFT) algorithm are introduced.

Prerequisite: CS 120 and MATH 165

ENGR 345, Systems Engineering Principles, 3 Units

This course explores the foundations of systems engineering processes and practices, including basic systems engineering processes and the roles of systems engineering professionals in a global business environment, as well as a discussion of current systems issues. It also covers the principles of mechanical drawing and computer-aided design (CAD) for systems engineering applications.

Prerequisite: ENGR 215 or ENGR 240

ENGR 350, Computer Networks, 3 Units

This course introduces the basics of computer networks, including the seven-layer ISO model for networks, with layers 2, 3, and 4 studied in detail. Medium access control protocols and TCP/IP are presented, as well as wireless LAN standards. An introduction to emerging wireless networks is also included.

Prerequisite: ENGR 215, MATH 361

ENGR 355, Communications Systems, 3 Units

This course provides an introduction to the principles of communication systems, including signal representation in time and frequency domains, Fourier series and transforms, analog amplitude, frequency and phase modulation systems, noise effects, applications to radio transmission, digital modulation (ASK, FSK, and PSK [binary and M-ary variants]), noise effects and error probabilities, error detection and correction, block and convolutional codes, and elements of information theory, modulation, and coding applications in wireless, satellite, and optical transmission systems.

Prerequisite: CS 120 and MATH 165

ENGR 360, Computer Architecture and Organization, 3 Units

This course covers the architecture and organization of computer systems, including hardware/software design considerations, implementation, interrelationships, and performance. Fundamentals of assemblers and assembly language programming using the MIPS instruction set are included, as is the use of combinational and sequential logic in the components of CPUs, buses, and interfaces. Details include input/output, memory hierarchies, pipelining, ALU operations, and CPU control. Processors include CISC and RISC, as well as multiprocessor systems. Students also take part in several programming and modeling projects that model key computer architecture components.

Prerequisite: CS 260/ENGR 260 or ENGR 240

ENGR 370, Cyber Physical Systems Security [Proposed], 3 Units

In this course, students systematically study the fundamental principles of computer system security, including authentication, access control, capability, security policies, sandbox, software vulnerabilities, and web security, with most of these principles studied within the scope of concrete systems such as Linux and Windows. The course emphasizes "learning by doing," requiring students to conduct a series of lab exercises through which students enhance their understanding of the principles and learn to apply them to solve real-world problems.

Prerequisite: CS 260/ENGR 260

ENGR 380, Systems Design, 3 Units

Students in this course examine the techniques for developing, analyzing, and portraying design and life cycle systems requirements. They also apply the principles of system design to real-world systems, and learn the use of tools and techniques including quality function deployment and enhanced block flow diagrams.

Prerequisite: ENGR 345

ENGR 384, Mechanics of Materials, 3 Units

This course covers plane stress and strain, principal stresses and strains, Mohr's Circle, properties of materials, stress-strain diagrams, generalized Hooke's Law for isotopic materials, design loads, working stresses, factors of safety, statically indeterminate axially loaded members, torsional shearing stresses and displacements, combined axial and torsional loads, flexural and transverse shear stresses, shear and moment diagrams, and beams of two materials.

Prerequisite: PHYC 161; ENGR 281 or ENGR 150

ENGR 390, Green Power Systems, 3 Units

It is being widely widely recognized that the generation of electric power must be performed in a way that is ecologically responsible. This course provides students with the knowledge to design electric power systems that use energy from natural sources such as sunlight, wind, rain, tides, plants, algae, and geothermal heat. The design approach is from the system level down to the components.

Prerequisite: ENGR 345

ENGR 410, Engineering Management and Economics, 3 Units

Students in this course examine strategies for management during all phases of the lifecycle of an engineering project, including initial planning, implementation, assessment, and termination. Management strategies include resource allocation, budgeting, performance monitoring, and optimizing cost and time. Economic principles including time value of money and cash flows are applied to management topics. Meets the General Education Requirement: Writing 3: Writing in the Disciplines. 

Prerequisite: ENGR 380

ENGR 420, Decision and Risk Analysis, 3 Units

This course addresses the various types of real-life assessment that must be conducted in order for a large-scale engineering project to be successful, including reliability, probability of risk, decision analysis, and cost-benefit analysis. The decision-making process that accompanies these assessments must be conducted in the presence of significant uncertainty, so course material reviews basic principles of probability theory and statistics. Finally, because large-scale engineering projects involve significant budgets, engineers must be conversant in the language of money, public policy, and economics, so the course concludes with a vital section on cost-benefit analysis.

Prerequisite: ENGR 345

ENGR 452, Internet of Things, 3 Units

This course covers the fundamental aspects of the Internet of Things (IoT), including devices, protocols, security, and product development. Through hands-on labs and projects, students develop the ability to build IoT devices and systems, and a final project showcases their ability to plan, design, and execute their own IoT devices and systems. Students become proficient in embedded programming, cross-compilation, web servers and clients, basic digital electronics, communications protocols, and special programming techniques.

Prerequisite: ENGR 125/CS 125, and CS 230 or ENGR 240.

ENGR 470, Senior Design Project I, 2 Units

In this first part of a two-semester engineering design project experience, students are encouraged to engage in group-based projects and industrial sponsorship, and must complete a fully documented design solution by the end of the course. Use of oral and written professional communication skills is emphasized.

Prerequisite: CS 125/ENGR 125, ENGR 150, ENGR 240, ENGR 245, and PHYC 162.

ENGR 480, Senior Design Project II, 2 Units

This course involves the implementation of the design developed in ENGR 470, including prototyping and testing. Students are also instructed on how to prepare and present a technical demo aimed at "selling" their product. Meets the General Education Requirement: GE:Oral Communication (ENGR 120+ENGR 240+ENGR 480). 

Prerequisite: ENGR 470

ENGR 491, Engineering Internship, 1-3 Units

Students in this course gain practical experience in engineering as they complete a semester-long engineering project under the joint supervision of an engineering faculty member and an outside mentor. Through actual and practical working experience in an internship, students synthesize the statement of the problem and the solutions they face in the working environment, based on the application of learning from multiple courses from various fields. These include, but are not limited to, courses in engineering (mechanics, electronics, digital logic), computing (programming, database), writing (writing 1 and 2), oral communications, ethics, etc. A total of 3 units is required to satisfy the General Education: Integrative and Applied Learning requirement. Meets the General Education Requirement: Integrative and Applied Learning. 

Prerequisite: Sophomore standing in the engineering major, and department consent.

ENGR 495, Topics in Engineering, 1-3 Units

This course presents timely and new topics in engineering. Different material is covered each time the course is offered. The course may be repeated for credit. Most topics require prerequisites, which vary according to the topic.

Prerequisite: Department consent

ENGR 496, Writing 3: Engineering Management, Economics, and Ethics, 3 Units

This course covers engineering program management, economics, and ethics fundamentals; topics include program planning, control strategies, risk assessment, work breakdown structures, and costing options, including their economic and ethical implications. Assignments include instruction in professional writing for the field of engineering as students read about technical writing and complete multiple writing exercises on the topics of engineering management, economics, and ethics. Interaction with other students in the process of writing, revising, editing, and proofreading is an integral part of the course. Over the course of the semester, each student builds a portfolio through the various writing assignments. Meets the General Education Requirement: Writing 3: Writing in the Disciplines. 

Prerequisite: Senior standing in the engineering major and a C- or better in Writing 2.

Faculty

Chair

James H-J Yeh, PhD, Computer Science

Professor

George Thomas, PhD, Engineering

Associate Professors

Lu Ruan, PhD, Computer Science

James H-J Yeh, PhD, Computer Science

Assistant Professors

Aisha Chen, PhD, Engineering

James Johansen, PhD, Computer Science

Instructor

Rod Ulrich, MS, Lab Manager

Affiliated Faculty

Enson Chang, PhD, Physics

Edwin Ding, PhD, Mathematics

Adjunct Faculty

James R. Marshall, MS, Engineering

Heather Wong, Engineering

Annie Wong, MA, Engineering

Faculty Emeriti

Samuel Sambasivam, PhD, Computer Science

Richard Eckhart, PhD, Computer Science