Computer Engineering & Computer Science (CECS)

CECS 130. Introduction to Programming Languages3 Units

Term Typically Offered: Fall, Spring, Summer

Description: Introduction to programming languages with emphasis on C and C++, and a brief introduction to Java. It includes laboratory exercises on the writing and compiling computer programs in C, C++, and Java.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 220. Object Oriented Program Design with Java3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 130.

Description: Introduction to Object Oriented Program design principal concepts and program development using Java programming language. It includes laboratory exercises on the design and implementation of computer applications in Java.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 288. Computer Engineering and Computer Science Cooperative Education Seminar0 Units

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Description: Discussion of the policies and procedures for cooperative education and instruction in self- directed job search techniques, including interviewing skills, resume preparation, and guidelines for the co-op report. This is a prerequisite for each cooperative education term.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 289. Computer Engineering and Computer Science Cooperative Education I1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 288 and CECS 302.

Description: Full-time technical work experience related to the student's academic program.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 302. Data Structures3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 130.

Description: Study of information representations and relationship between the form of representation and processing techniques. Transformations between storage media. Referencing of information as related to the structure of its representation and implications for the design of the referencing language. Engineering applications and associated designs are used to illustrate different structures.

Note: Enrollment restricted to CECS students only.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 310. Discrete Structures3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): Third-year standing.

Description: Engineering applications using computer structures including algebraic computational structures, finite state machines, relational structures, propositional logic, trees, graphs, groups, machine equivalence, introduction to formal grammar. Applications of these structures to engineering problems including fluid flow, communication systems, artificial intelligence, digital logic, and algorithm evaluation. A written report is required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 311. Ethics, Social, and Legal Aspects on the Electronic Frontier3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): Third-year standing.

Description: Examination of the legal, social and ethical issues associated with electronic information dissemination and manipulation with a focus on computer systems and networks. Topics include current issues and controversies that put the needs and desires of one group against those of other groups, including business, governmental and social interests. Students will be required to complete papers on the topics discussed and participate in class discussions. Technical writing and oral presentations are required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 389. Computer Engineering and Computer Science Cooperative Education II1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 289.

Description: Full-time technical work experience related to the student's academic program.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 393. Independent Study in Computer Engineering and Computer Science1-6 Units

Term Typically Offered: Fall, Spring, Summer

For class offerings for a specific term, refer to the Schedule of Classes

CECS 412. Introduction to Embedded Systems3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ECE 210 and Junior standing, or faculty consent.

Description: Introduction to embedded systems; assembly language programming, parallel and serial data transfer; polling, interrupts, and servicing of interrupts; software and hardware timing; analog-to-digital and digital-to- analog conversion. Laboratory projects on interfacing, system design, and implementation.

Note: Cross-listed with ECE 412.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 419. Introduction to Algorithms3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 302 and CECS 310.

Description: This course covers an introduction to algorithms, spanning topics ranging from computational complexity to advanced tree and graph algorithms.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 420. Design of Operating Systems3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 302 or equivalent.

Description: The course is designed to cover basic concepts of operating systems design and implementation including processes management, memory management, input/output and file management, storage management, distributed systems, and security.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 489. Computer Engineering and Computer Science Cooperative Education III1 Unit

Grading Basis: Pass/Fail

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 389.

Description: Full-time technical work experience related to the student's academic program.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 503. Survey of Computer Engineering and Computer Science3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 130.

Description: Introduction to foundations of computer engineering and computer science for non-majors. Emphasis on C++ programming language, data structures and algorithms, and operating systems fundamentals. This course cannot be used to meet degree requirements for any CECS/CS/CSE degree.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 504. Automata Theory3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 310.

Description: Finite state machines and their application to engineering problems including modeling the behavior of discrete systems. Topics include theory of computing, formal language theory, and applications of cellular automata. Engineering models of digital computer hardware are covered and related to software design.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 506. Modeling and Analysis of Engineering Systems3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ENGR 330.

Description: Representation of engineering systems, Fourier analysis, z-transforms, frequency response, state-space analysis, stability, an introduction to the basic theory of filter design; and demonstrated concepts to CAS.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 510. Computer Design3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ECE 210.

Corequisite(s): ECE 511.

Description: Review of logic design and elementary computer organization. Design of the central processing unit, memory, control, and input-output portions of a computer. The VHDL hardware design language will be used.

Note: Cross-listed with ECE 510.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 516. Fundamentals of Computer Communications and Networks3 Units

Term Typically Offered: Spring Only

Prerequisite(s): ECE 360 or IE 360, and CECS 412.

Description: Data communications: The exchange of data between devices is covered. The key aspects of transmission interfacing, link control, and multiplexing are examined. Data communication networking: Examines the internal mechanisms by which communication networks provide a data transfer service for attached devices.

Note: Cross-listed with ECE 518.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 522. Performance Evaluation of Computer Systems3 Units

Term Typically Offered: Fall Only

Prerequisite(s): IE 360 and CECS 420.

Description: A study of approaches to the evaluation of computer systems. Measurement techniques and evaluation techniques are treated in detail with attention to existing commercial hardware and software monitors and simulators.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 525. Microcomputer Design4 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): ECE 412 or CECS 412 or consent of instructor.

Description: Design and construction of microcomputers with microprocessors and digital integrated circuits. Breadboarding, hardware design, and software design are emphasized. The class is separated into groups, and each group designs, breadboards, and tests a complete microcomputer system, including interfaces to peripheral devices.

Note: Cross-listed with ECE 516.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 528. Game Design and Programming3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): CECS 302.

Description: This course will provide an overview of Multimedia and Game programming, and teach basic computer game design techniques using state-of-art game engines.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 530. Design of Compilers3 Units

Term Typically Offered: Spring, Summer

Prerequisite(s): CECS 420.

Description: Engineering descriptions of algorithmic language. Study of syntax, semantics, ambiguities, procedures, replication, iterations, and recursion in the language. Engineering design of a compiler.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 535. Introduction to Databases3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 302 or equivalent.

Description: Course covers basics of database design, SQL, query processing, and optimazation, transactions.The emphasis will be placed on Engineering design and implementation of relational systems. A written project is required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 536. Data Management and Analysis3 Units

Term Typically Offered: Fall, Spring, Summer

Description: The goal of the course is to teach, to the students who are not Computer Science majors, the basic skills needed to organize, assess and analyze data sets. The course discusses a variety of tools (file systems, database systems, and the R environment) as well as a series of basic tasks, from generating metadata to basic filtering, organizing and enrichment of data sets. This course contributes to develop analysis, modeling and problem-solving skills.

Note: This course is intended for non-CECS majors.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 540. Object Oriented Information Technology3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): Graduate standing.

Description: Survey of design and development of object oriented software. Software architectures, development environments, graphical user interfaces, and networks of distributed objects. Software design project required.

Note: CECS students cannot receive credit for CECS 440 and 540.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 542. Computer Control and Real Time Programming3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): ECE 412 or CECS 412.

Description: Programmable Logic Controllers, Human Machine interfaces, SCADA, state machines,sensors,and actuators. Study of industrial algorithms,open/closed loop real-time control and schematics.

Note: Cross-listed with ECE 517.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 545. Artificial Intelligence3 Units

Term Typically Offered: Fall Only

Prerequisite(s): CECS 302 and CECS 310.

Description: This course introduces the use of predicate calculus logic, heuristic search, and knowledge representations for solving engineering and computer science problems. The course includes coverage of rule-based expert systems, intelligent agents,and machine learning.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 550. Software Engineering3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 420.

Description: Engineering methods applied to the life-cycle issues in the team-oriented development of large software systems including issues of software processes, metrics, testing and quality. Documentation of the project and an oral presentation are required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 563. Experimental Design in Engineering3 Units

Term Typically Offered: Fall, Spring, Summer

Prerequisite(s): IE 360.

Description: Design of engineering experiments and projects using theory of least squares, analysis of variance and co-variance, randomized blocks, Latin squares, factorial experiments and associated topics. Engineering design problems using SAS or equivalent software packages.

Note: Cross-listed with IE 563.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 564. Introduction to Cryptography3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CECS 310 and IE 360.

Description: This course gives a historical introduction to cryptology and the science of secret codes. The first part covers substitution ciphers, transposition codes, Vigenere cipher and more complex polyalphabetic substitutions including those created by rotor machines. The second part describes bit block cipher schemes such as Data Encryption Standard (DES). Public key encryption is the subject of the final part including RSA, Knapsack codes, and Diffie-Hellman key exchange.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 566. Information Security3 Units

Term Typically Offered: Summer Only

Prerequisite(s): CECS 311 and CECS 420.

Description: Technical, legal and policy issues associated with information security. Authentication, trusted computer systems, information encryption, biometrics, computer forensics, and privacy issues. Written and verbal reports are required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 568. Computer Forensics3 Units

Term Typically Offered: Fall Only

Prerequisite(s): CECS 311, CECS 420, and CECS 566, or consent of instructor.

Description: Course examines legal, legal, administrative, technical and scientific issues in computer forensics, network forensics, information security and trusted systems. Course requires class participation, lab work, team projects, writing and oral presentations.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 570. Mobile Device Program3 Units

Term Typically Offered: Fall, Summer

Prerequisite(s): CECS 220 or equivalent.

Description: This course covers the basic concepts in designing and implementing applications running on Apple's iOS and Google's Android operating systems.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 590. Special Topics in Computer Engineering and Computer Science1-6 Units

Term Typically Offered: Spring Only

Description: Devoted to topics which usually are not treated in detail in the general courses.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 593. Independent Study in Computer Engineering and Computer Science1-6 Units

Term Typically Offered: Fall, Spring, Summer

Description: Opportunity for the student, under the supervision of a sponsoring faculty member, to pursue individualized study related to research or practice that is not included in regular courses in the curriculum.

Note: Chair Approval is required.

For class offerings for a specific term, refer to the Schedule of Classes

CECS 596. CECS Capstone Design 3 Units

Term Typically Offered: Fall, Spring

Prerequisite(s): CECS 525 (or concurrently) and CECS 550 (or concurrently); Senior standing.

Description: This course requires solving a real-world design problem in computer engineering. It used hardware and software design methods and tools learned in previous coursework emphasizing teamwork, written and oral communication.

Course Attribute(s): CUE - This course fulfills the Culminating Undergraduate Experience (CUE) requirement for certain degree programs. CUE courses are advanced-level courses intended for majors with at least 90 earned credits/senior-level status.

For class offerings for a specific term, refer to the Schedule of Classes