Santa Clara University

Graduate School of Engineering

Department of Computer Engineering

Lee and Seymour Graff Professor: Ruth E. Davis
Sanfilippo Family Professor: Nam Ling (IEEE Fellow, Chair)
Associate Professors: Ahmed Amer, Darren Atkinson, Ronald L. Danielson, Silvia Figueira, JoAnne Holliday, Daniel W. Lewis, Weijia Shang
Assistant Professor: Yi Fang, Yuhong Liu, Ben Steichen
Research Assistant Professor: Minqiang Jiang
Lecturers: Moe Amouzgar, Hayang Kim, Rani Mikkilineni, Angela Musurlian, Maria Pantoja, Yuan Wang, Leyna Zimdars


“Computing sits at the crossroads among the central processes of applied mathematics, science, and engineering. The three processes have equal and fundamental importance in the discipline, which uniquely blends theory, abstraction, and design.”
–1989 Task Force Report on the Core of Computer Science prepared by the ACM and the IEEE Computer Society.

The most successful graduates in the field of computing are those who understand computers as systems—not just the design of hardware or software, but also the relationships and interdependencies between them and the underlying theory of computation.

The department offers a variety of degree and certificate programs, including courses that cover the breadth of the discipline, from the engineering aspects of hardware and software design to the underlying theory of computation.


Students are required to meet with their advisors to define and file a program of study during their first quarter. In general, no credit is allowed for courses that duplicate prior coursework, including courses listed as degree requirements. Students should arrange adjustment of these requirements with their academic advisor when they file their program of study.

With the prior written consent of the advisor, master’s students may take a maximum of 12 units of coursework for graduate credit from selected senior-level undergraduate courses.

Master of Science in Computer Science and Engineering (MSCSE)
All students admitted to the MSCSE program are expected to already have competence in the fundamental subjects listed below, as required within an accredited program for a B.S. in Computer Engineering or Computer Science. An applicant without such background may still be admitted, provided the deficiencies are corrected by coursework that is in addition to the normal degree requirements and that is completed within the first year of graduate study. Alternatively, a student may take a similar course at another approved accredited institution. The subjects and corresponding SCU courses that may be used to correct the deficiencies include:

  1. Logic design: COEN 21
  2. Data structures: COEN 12
  3. Computer organization and assembly language: COEN 20 or ELEN 33
  4. Discrete math: AMTH 240
  5. Probability: AMTH 210
  6. One of the following: Differential equations (AMTH 106), Numerical analysis (AMTH 220, 221), or Linear algebra (AMTH 245, 246)
  7. One additional advanced programming course or one year of programming experience in industry

The SCU courses listed above are considered undergraduate-level and may not be used to satisfy the requirements for the M.S. in Computer Engineering. However, students who have satisfied item 6 above, but who have never studied numerical analysis, may use AMTH 220/221 as electives; students who have satisfied item 6 above, but who have never studied linear algebra, may use AMTH 245/246 as electives. Laboratory components are not required for the above courses.

Degree Requirements

  1. 1. MSCSE Core
    • COEN 210, 279, and 283
    • • Students who have taken one or more of these core courses or their equivalent must, with their advisor’s approval, replace said course(s) with elective(s).
  2. 2. MSCSE Specialization Tracks
    A theory course approved by the advisor in the area of specialization is required. A student must take a minimum of 8 units of COEN 300 or above courses. The following are suggested courses for each area of specialization; suggested courses may be replaced by other graduate courses with advisor’s approval.
    • Data Science: COEN 280, 281, 272, and one of the following: COEN 241, 242, 266, 317, 380, AMTH 212, 247, and other classes as approved by advisor.
    • Software Engineering: COEN 260, 275, 285, 286, 385, and 386
    • Information Assurance: COEN 225, 250, 252, 351; AMTH387; and one of the following: COEN 226, 253, 254, or 350
    • Multimedia Processing: COEN 201, 202, 238, and 338; and 6 units from AMTH 211, COEN 290, 336, 339, 340, 343, 347, ELEN 241, 244, or 444
    • Computer Networks: COEN 233, 239, and at least 12 units from COEN 234, 235, 236, 315, 316 , 317, 329, 331, 332, 335, 337, 338, 339, 347, 350, 351 (at least 6 units of 300-level courses)
    • Computer Architecture and Systems: COEN 307, 313, 318, and 320; and 4 units from COEN 203, 204, 207, 208, 218, 301, 303, 319
    • Other possible specializations with advisor’s approval
  3. SCU Engineering Core Requirements (a minimum of 6 units): See Academic Information. Please Note: COEN 288 is required for the Software Engineering track.
  4. Electives: Sufficient units to bring the total to at least 45. (The maximum number of non-COEN graduate units allowed is 10 units, including those from the Engineering Core, and courses must be approved by the advisor.)

Please Note: Students wishing to do a thesis (COEN 497) should consult with their academic advisor regarding a modification of these requirements.

Master of Science in Software Engineering (MSSE)
The MSSE degree requires a minimum of 45 quarter units of work. All applicants for the Master of Science in Software Engineering program must have a bachelor’s degree from an accredited four-year program. The ideal candidate has completed a bachelor’s degree in computer science or computer engineering; however, exceptional candidates who hold a bachelor’s degree in another closely related field may apply for consideration if they can clearly demonstrate the ability to perform graduate-level work in software engineering

The program consists of the SCU Engineering core, a software engineering core, a set of software engineering electives, and a capstone project. Students are allowed to sample courses across diverse software disciplines, including databases, networks, parallel and distributed systems, graphical user interfaces, artificial intelligence, and computer languages. Students must work with their advisor to select 15 units of appropriate software engineering electives. The capstone project comprises three consecutive terms of effort and provides an opportunity for students to apply their technical breadth and the core engineering principles toward the development of a complex, team-oriented software project. Ideally, projects will involve collaboration with industry. The capstone project integrates the engineering knowledge acquired in the core courses with the technical breadth acquired in the diverse electives. Thus, students must complete all requirements of the core prior to registering for the first capstone project course. They must also complete six units of electives prior to registering for the second two units of the capstone course, COEN 485, to ensure the project teams have the appropriate blend of technical background and engineering knowledge.

Degree Requirements

  1. SCU Engineering Core Requirements: (a minimum of 6 units): See the Academic Information of the site.
    Please Note: COEN 288 is required for the M.S. in Software Engineering, and satisfies 2 units of the Engineering Core Requirements.
  2. MSSE Core
    • COEN 260, 275, 285, 286, 385, and 386
  3. Software engineering electives
    • 15 units selected with the approval of the academic advisor
  4. Software Engineering Capstone Project: COEN 485 (repeated in three consecutive terms for a total of 6 units)
    • Students must complete COEN 286 and 386 before enrolling in COEN 485
    • Students are expected to register for three consecutive quarters of COEN 485
    • Students may not register for more than 2 units of COEN 485 in any one term
  5. COEN 288 (also satisfies Engineering core requirement for Engineering and Society)
  6. Electives: Sufficient units to bring the total to at least 45.

Please Note: Students should meet with their advisors to define and file their program of study during their first quarter.

Doctor of Philosophy in Computer Science and Engineering
The doctor of philosophy (Ph.D.) degree is conferred by the School of Engineering primarily in recognition of competence in the subject field and the ability to investigate engineering problems independently, resulting in a new contribution to knowledge in the field. The work for the degree consists of engineering research, the preparation of a thesis based on that research, and a program of advanced study in engineering, mathematics, and related physical sciences. The student’s work is directed by the department, subject to the general supervision of the School of Engineering. See Chapters 2 and 3, Academic Programs and Requirements and Admissions, for details on admission and general degree requirements. The following departmental information augments the general requirements.

Preliminary Exam
A preliminary written exam is offered at least once per year by the School of Engineering as needed. The purpose is to ascertain the depth and breadth of the student’s preparation and suitability for Ph.D. work.

Faculty Advisor
The student and his or her advisor jointly develop a complete program of study for research in a particular area. The complete program of study (and any subsequent changes) must be filed with the Engineering Graduate Programs Office and approved by the student’s doctoral committee. Until this approval is obtained, there is no guarantee that courses taken will be acceptable toward the Ph.D. course requirements.

Doctoral Committee
After passing the Ph.D. preliminary exam, a student requests his or her thesis advisor to form a doctoral committee. The committee consists of at least five members, each of which must have earned a doctoral degree in a field of engineering or a related discipline. This includes the student’s thesis advisor, at least two other current faculty members of the student’s major department at Santa Clara University, and at least one current faculty member from another appropriate academic department at Santa Clara University. The committee reviews the student’s program of study, conducts an oral comprehensive exam, conducts the dissertation defense, and reviews the thesis. Successful completion of the doctoral program requires that the student’s program of study, performance on the oral comprehensive examination, dissertation defense, and thesis itself meet with the approval of all committee members.

Time Limit for Completing Degree
All requirements for the doctoral degree must be completed within eight years following initial enrollment in the Ph.D. program. Extensions will be allowed only in unusual circumstances and must be recommended in writing by the student’s doctoral committee, and approved by the dean of engineering in consultation with the Graduate Program Leadership Council.

Engineer’s Degree in Computer Science and Engineering
The program leading to the engineer’s degree is particularly designed for the education of the practicing engineer. The degree is granted on completion of an approved academic program and a record of acceptable technical achievement in the candidate’s field of engineering. The academic program consists of a minimum of 45 units beyond the master’s degree. Courses are selected to advance competence in specific areas relating to the engineering professional’s work. Evidence of technical achievement must include a paper principally written by the candidate and accepted for publication by a recognized engineering journal prior to the granting of the degree. A letter from the journal accepting the paper must be submitted to the Office of the Dean, School of Engineering. In certain cases, the department may accept publication in the proceedings of an appropriate conference.

Admission to the program will generally be granted to those students who demonstrate superior ability in meeting the requirements for their master’s degree. Normally, the master’s degree is earned in the same field as that in which the engineer’s degree is sought. Students who have earned a master’s degree from Santa Clara University must file a new application (by the deadline) to continue work toward the engineer’s degree. A program of study for the engineer’s degree should be developed with the assistance of an advisor and submitted during the first term of enrollment.


Certificate programs are designed to provide intensive background in a narrow area at the graduate level. At roughly one-third of the units of a master’s degree program, the certificate is designed to be completed in a much shorter period of time. These certificate programs are appropriate for students working in industry who wish to enhance their skills in an area in which they already have some background knowledge.

For more specific application and admissions information, please consult the website.

Students must receive a minimum grade of C in each course and an overall GPA of 3.0 or better to earn a certificate of completion.

Continuation for a Master’s Degree: All Santa Clara University courses applied to the completion of a certificate program earn graduate credit that may also be applied toward a graduate degree. Students who wish to continue for such a degree must submit a separate application and satisfy all normal admission requirements. The general GRE test requirement for graduate admission to the master’s degree will be waived for students who complete a certificate program with a GPA of 3.5 or better.

Certificate in Software Engineering
Advisor: Dr. Rani Mikkilineni

This certificate program places an emphasis on methodologies used in the development of large, complex software. The program is appropriate for anyone who is developing new software, maintaining existing software, or is the technical head of a software development project. In addition to the general requirements, students must have two years of industrial experience in software development and prior coursework in data structures and analysis of algorithms, software engineering, discrete mathematics, and predicate logic.

Required Courses (12 units)

  • COEN 260 Truth, Deduction, and Computation (4 units)
  • COEN 286 Software Quality Assurance and Testing (2 units)
  • COEN 287 Software Development Process Management (2 units)
  • COEN 385 Formal Methods in Software Engineering (2 units)
  • COEN 386 Software Architectures (2 units)

Elective Courses (Select any 4 units; other courses may be considered if approved in advance)

  • COEN 261 Structure and Interpretation of Computer Programs (2 units)
  • COEN 275 Object-Oriented Analysis and Design (4 units)
  • COEN 276 Software Tools Design (4 units)
  • COEN 277 Graphical User Interface Design and Programming (2 units)
  • COEN 388 Principles of Computer-Aided Engineering Design (2 units)
  • EMGT 332 Software Engineering Economics (2 units)
  • EMGT 339 Quality Issues in Managing Software (2 units)
  • EMGT 341 Software Project Metrics (2 units)

Certificate in Information Assurance
Advisor: Dr. JoAnne Holliday

The Advanced Studies in Information Assurance Certificate program provides education in information assurance to working professionals in engineering and engineering management. Applicants are expected to have previous coursework in Operating Systems and Networks. In addition, applicants must complete all courses in Group 1, and 8 units from Group 2 and additional courses should be chosen from Group 2 or Group 3 for a total of 16 units.

Group 1: Required Courses (4 units)

  • COEN 250 Information Security Management (2 units)
  • COEN 253 Secure Systems Development and Evaluation I (2 units)

Group 2: Select enough courses for 8 units

  • AMTH 387 Cryptology (4 units)
  • COEN 225 Secure Coding in C and C++ (2 units)
  • COEN 252 Computer Forensics (4 units)
  • COEN 350 Network Security (2 units)
  • COEN 351 Internet and E-Commerce Security (2 units)

Group 3: Elective Courses

  • COEN 226 Introduction to System Certification and Accreditation (2 units)
  • COEN 254 Secure Systems Development and Evaluation II (2 units)
  • COEN 286 Software Quality Assurance and Testing (2 units)
  • COEN 288 Software Ethics (2 units)
  • COEN 352 Advanced Topics in Information Assurance (2 units)
  • EMGT 288 Management of Quality Assurance (2 units)
  • EMGT 369 E-Commerce Technology Strategy (2 units)
  • ENGR 310 Engineering Ethics (2 units)
  • ENGR 330 Law, Technology, and Intellectual Property (2 units)

Certificate in Networking
Advisor: Dr. Ahmed Amer

This certificate program is appropriate for working professionals in computer engineering, network engineering, and engineering management, and places an emphasis on the fundamentals and recent developments in computer networking. Students who complete the program may pursue a professional career in computer networking, with the ability to understand, analyze, design, implement, validate, and maintain networked systems.

Applicants must have completed an accredited bachelor’s degree program in Computer Science, Computer Engineering, Electrical Engineering, Mathematics or an equivalent field with a strong academic record, and are expected to have prior coursework in data structures, analysis of algorithms, software engineering and operating systems.

Program Requirements: Students must complete a total of 16 units of prescribed coursework with a minimum GPA of 3.0 and a grade of C or better in each course. Certificate requirements substantially equivalent to other coursework completed within the last five years must be replaced by electives approved by the faculty in charge of networking.

Required Courses (8 units)

  • COEN 233 Computer Networks (4 units)
  • COEN 239 Network Design, Analysis (4 units)

Additional Courses (8 units) from:

  • COEN 234, 235, 236, 315, 316, 317, 329, 331, 332, 335, 337, 338, 339, 347, 350, or 351


The ASIC Testing Laboratory supports research conducted by graduate students from the departments of Electrical Engineering and Computer Engineering. Computer-aided testing packages from industry and the public domain are used in projects such as fault modeling and analysis. Projects include design for Test on RTL-level for digital and mixed signal circuits and design for reliability based on the defect-based testing.

The Digital Systems Laboratory (operated jointly with the Department of Electrical Engineering) provides complete facilities for experiments and projects ranging in complexity from a few digital integrated circuits to FPGA-based designs. The laboratory also includes a variety of development systems to support embedded systems and digital signal processing.

TheGreen Computing Laboratory is devoted to energy-efficient computing, i.e., the study and analysis of energy consumption in operating systems and networks and the development of energy-aware software.

The Multimedia Compression Laboratory supports research in video coding (compression and decompression).

The Wireless Networks Laboratory is shared by Computer Engineering and Electrical Engineering. The lab carries out research projects on the lower three layers of wireless networks. Current projects include: 1) Efficient scheduling of user traffic in cellular networks using smart antennas, 2) Algorithms for turn-key base stations in cellular networks, and 3) Changes to the MAC protocol in 802.11 based ad-hoc networks.

The Sustainable Computing Laboratory is dedicated to research in systems software and data storage technologies. The projects it supports focus on durable, scalable, and efficient solutions to computing problems, and the application of systems software technologies to broader sustainability problems.

The Software Engineering Research Laboratory is a dedicated facility not only for the support of various research activities aimed at developing engineering techniques and tools that help produce and validate high-quality software, but also for developing applications using leading-edge technologies.

The Parallel Processing Laboratory pursues research in fundamental problems in parallel processing, multi-core CPUs, and many-core GPUs programming and parallelizing compilers.

The Data Science Laboratory is devoted to the extraction of knowledge from data and to the theory, design and implementation of information systems to manage, retrieve, mine, and utilize data.

Printer-friendly format