Santa Clara University

Graduate School of Engineering - Computer Engineering

Graduate School of Engineering

Department of Computer Engineering

Robert W. Peters Professor: Ruth E. Davis
Professor: Nam Ling
Associate Professors: ‑Darren Atkinson, Ronald L. Danielson, Silvia Figueira, JoAnne Holliday, Daniel W. Lewis, Qiang Li, Thomas Schwarz, Weijia Shang (Chair)
Lecturer: Rani Mikkilineni

OVERVIEW

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

DEGREE PROGRAMS

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

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.

Performance in SCU graduate coursework taken as a nondegree student is not considered when evaluating an application for admission into any graduate degree program offered by the department.

Master of Science in Computer Engineering

All students admitted to the MSCE 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 SCU coursework that is in addition to the normal degree requirements and that is completed within the first year of graduate studies. Alternatively, a student may take a similar course at another institution, and then take a challenge exam at SCU. The subjects and corresponding SCU courses that may be used to correct the deficiencies include:

  • Logic design: COEN 21
  • Data structures, including ADTs: COEN 70
  • Computer organization and assembly language: COEN 20
  • Discrete math: AMTH 240
  • Probability: AMTH 210
  • One of the following: Differential equations (AMTH 106), Numerical analysis (AMTH 220, 221), Linear algebra (AMTH 245, 246)  
  • 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.

Degree Requirements:

1. MSCE Core:

  • AMTH 377
  • COEN 210, 233, 256, 283
  • Students who have taken one or more of these courses or their equivalent may, with their advisor’s approval, replace said course(s) with elective(s).

2. MSCE Specialization Tracks (students choose one of the following)

 (The following are suggested courses for each area of specialization; suggested courses may be replaced by other graduate courses with advisor’s approval.  A theory course approved by the advisor in the area of specialization is required):

  • Software Engineering: COEN 260, 275, 285, 286, 385, and 386
  • Information Assurance: COEN 250, 252, 253, 260, 351; AMTH 387; and one of the following:   COEN 254, 350, or 352
  • 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 236, 237, 239,  and 8 units from COEN 315, 317,  329, 331, 333,  335, 336, 338, 350, or (with advisor approval) 396
  • Computer Architecture and Systems: COEN 207, 208, 307, 318, and 320; and 4 units from COEN 203, 204, 218, 259, 301, 303, 304, 311, 313, 317, or 319
  • Bioinformatics: AMTH 222 (or 217 and 219), ENGR 250, 251, and COEN 280; and 6 units from ENGR 252, 253, 350, 351, COEN 277, or (with advisor approval) COEN 396.

Other possible specializations with advisor’s approval.

3. ‑Issues in Professional Practice: See list of courses in Section 3, Admissions and Academic Regulations. Note: COEN 288 is required for the Software Engineering track. 

4. ‑Electives: Sufficient units to bring the total to at least 45.

 Note: Students wishing to do a thesis (COEN 497) should consult with their academic advisor regarding a modification of these requirements.  Students should meet with their advisors for their program of study during their first quarter.

Master of Science in Software Engineering

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 field may apply for consideration if they can clearly demonstrate the ability to perform graduate-level work in software engineering. Individuals who possess a B.S. in Computer Science or Computer Engineering are not required to take the computer science subject test of the GRE.

Individuals with a bachelor’s degree in another field must submit their score on the computer science subject test of the GRE, which will be used to assess whether the candidate has the necessary technical knowledge to begin graduate work in software engineering.

The program consists of a software engineering core, a set of software engineering electives, and a capstone project. The electives expose each student to multiple areas of study within technology, thus providing breadth to their technical proficiency. Students are required 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 6 units of electives prior to registering for the second 2 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. MSSE core:

  • AMTH 377, COEN 260, 275, 285, 286, 385, and 386

2. Software engineering electives:

  • Restricted electives: 4 or more units selected from COEN 200-399.
  • Free electives:  11 or more units selected from any graduate course offering.

3.  Software Engineering Capstone Project:  COEN 485  (repeated 3 times 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.

4. Issues in Professional Practice: COEN 288 only

5. Electives: Sufficient units to bring the total to at least 45

Note: Students should meet with their advisors for their program of study during their first quarter.

Doctor of Philosophy in Computer 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 studies 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 Section 3, Admissions and Academic Regulations, 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 studies for research in a particular area. The complete program of studies (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

Upon the student’s request, the advisor will form a Doctoral Committee. The committee will consist of at least five members, including the thesis advisor and at least two members from the Department of Computer Engineering. The committee must also include at least one member from outside the department, preferably from outside the School of Engineering. The Doctoral Committee will review the proposed program of studies and determine any further changes that may be required prior to approving the program.

Engineer’s Degree in Computer 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 studies for the engineer’s degree should be developed with the assistance of an advisor and submitted during the first term of enrollment.

CERTIFICATE PROGRAMS

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 update their skills or for those interested in changing their career path.

For more specific application and admissions information, please consult the Web site at http://www.scu.edu/engineering/graduate.

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.

Advanced Studies in Software Engineering

This certificate program places an emphasis on methodologies used during 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 (10 units)

  1. COEN 286 Software Quality Assurance and Testing (2 units)
  2. COEN 287 Software Development Process Management (2 units)
  3. COEN 385 Formal Methods in Software Engineering (2 units)
  4. COEN 386 Software Architectures (2 units)
  5. COEN 485 Software Engineering Project (2 units)

Elective Courses (Select any 6 units)

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

Certificate in Information Assurance

The Advanced Studies in Information Assurance Certificate program provides education in information assurance to working professionals in engineering and engineering management.  The program is organized in two tracks, specializing either in Network Security (preventing, detecting, and dealing with security breaches) or Secure Systems Development (building secure systems such as e-commerce sites).  To become a professional, students will need on-the-job training or gain practical experience from training organizations such as HTCIA, SANS, etc. Applicants are expected to have previous coursework in Operating Systems and Networks.  In addition, applicants must complete all courses in Group 1, and in addition, either all courses in Group 2 for the Network Security Track or all courses in Group 3 for the Secure Systems Development Track. Additional courses should be chosen from the other track or from the electives (Group 4) for a total of 16 units.

Group 1: Required Courses: (6 units)

  1. COEN 250 Information Security Management (2 units)
  2. COEN 253 Secure Systems Development and Evaluation I (2 units)
  3. COEN 350 Network Security (2 units)

Group 2: Required Courses for the Network Security Track: (8 units)

  1. COEN 237 Internet Architecture and Protocols (4 units)
  2. COEN 252 Computer Forensics (4 units)

Group 3: Required Courses for the Secure Systems Development Track: (8 units)

  1. AMTH 387 Cryptology (4 units)
  2. COEN 254 Secure Systems Development and Evaluation II (2 units)
  3. COEN 351 Internet and E-Commerce Security (2 units)

Group 4: Elective Courses (select one course)

  1. COEN 286 Software Quality Assurance and Testing (2 units)
  2. COEN 288 Software Ethics (2 units)
  3. COEN 352 Advanced Topics in Information Assurance (2 units)
  4. EMGT 288 Management of Quality Assurance (2 units)
  5. EMGT 369 E-Commerce Technology Strategy (2 units) 
  6. ENGR 310 Engineering Ethics (2 units)
  7. ENGR 330 Law, Technology, and Intellectual Property (2 units)

Certificate in Grid Computing

This certificate program provides working professionals in computer engineering, computer science, and engineering management with proficiency in the fundamentals and recent developments in grid computing. The program is appropriate for people who are either already working in grid computing or who are planning to do so. It covers several aspects of grid computing from both an industrial and a scientific perspective.

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 operating systems and computer networks.

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

Required Courses (8 units):

  1. COEN 275 - Object-Oriented Analysis, Design, and Programming (4 units)
  2. COEN 321 - Grid Computing (4 units)

Elective Courses (8 units):

  1. COEN 250 - Information Security Management (2 units)
  2. COEN 276 - Software Tools Design (4 units)
  3. COEN 316 - Web Services (2 units)
  4. COEN 317 - Distributed Computing (4 units)
  5. COEN 318 - Parallel Computation Systems (4 units)
  6. COEN 320 - Computer Performance Evaluation (4 units)

Certificate in Networking

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  (12 units)

  1. COEN 233  Computer Networks (4 units)
  2. COEN 239 Network Design, Analysis, and Management  (4 units) and one of COEN 236, COEN 237, COEN 329 (4 units)

Elective Courses (select 4 additional units)

  1. COEN 235  Client Server Programming (4 units)
  2. COEN 236 Unix Network Programming (4 units)
  3. COEN 237  Internet Architecture and Protocols (4 units)
  4. COEN 315  Web Architecture and Protocols (4 units)
  5. COEN 317  Distributed Computing (4 units)
  6. COEN 329 Advanced Computer Networks  (4 units)
  7. COEN 333 Group Communications (2 units)
  8. COEN 331 Mobile and Ad-Hoc Networking (4 units)
  9. COEN 335  High Performance Networks (4 units)
  10. COEN 336  Multimedia Networking (4 units)
  11. COEN 350  Network Security (2 units)
  12. COEN 396 Advanced Topics in Networking (2 units)

LABORATORIES

The ASIC Testing Laboratory (ATL),  operated jointly with the Department of Electrical Engineering, supports research conducted by graduate students from the Electrical Engineering and Computer Engineering departments. Computer-aided testing packages from industry and the public domain are used in such projects as fault analysis on the device level, functional testability measures, partitioning HDL models for testability, and rapid prototyping using field programmable gate arrays (FPGAs).

The Computer Systems and Parallel Processing Research Laboratory supports research in systolic array design, interconnection networks, parallel operating systems, formal design verification, expert system development for architectural design, parallel software development methodology, application-oriented parallel algorithms, and VLSI design.

The School of Engineering Design Center has a network of 50 Hewlett-Packard and Sun high-end workstations grouped in two large labs. These workstations run either the HP UNIX or Sun Solaris operating system. In addition, the Design Center houses three 24-seat PC workstation labs, for a total of 72 Windows-based computers. Many of the PC workstations are configured to dual-boot with a choice of Windows 2000/XP or Linux. Terminal emulation software allows all PCs to perform as X-terminals to access the HP and Sun workstations. All systems have large, high-resolution color monitors or LCD displays, and are connected by a 100-Mbps switched Ethernet network. The Design Center offers more than 25 major commercial software packages, including computer-aided design (CAD) and analysis applications for civil, computer, electrical, and mechanical engineering, as well as a variety of programming languages. Advanced color printing, scanning, and plotting capability are available throughout the Design Center. The Design Center also offers a unique multimedia classroom/lab with projection screen capability for UNIX, Linux, and Windows applications.

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 and other electronic components to complete computer systems. This lab includes a variety of development systems to support microprocessor-based design, VLSI design, and other computer design projects. It also has facilities to support digital signal processing projects.

The Distributed Computing Research Laboratory is designed to support a variety of research activities in distributed computing, including parallel architectures; parallel applications; high-performance, high-speed, local area networks; lightweight protocols; and distributed operating systems.

The Multimedia Compression Laboratory supports research in video/audio compression, decompression,  and streaming.

The Multimedia Education Laboratory,  operated jointly with the Department of Electrical Engineering, is dedicated to the development and delivery of multimedia educational resources and to the development of tools to create and present these resources. This lab is equipped with eight UNIX workstations with high-speed ATM networking.

The Networking and Parallel Computing Laboratory supports research in algorithms, protocols, and architectures for parallel and cluster computing, packet switching, internetworking, multipoint communication, and multimedia networking. The lab is equipped with four Linux and two Windows PCs, a Sun Ultra10 workstation, a programmable router, and an HP laser printer.

The Software Engineering Research Laboratory is a dedicated facility for the support of various research activities aimed at developing techniques and tools that help produce and validate high-quality software. Specific research activities include formal specification and verification methods/tools, design framework for concurrent systems, and case architect.  This lab also supports the SCU Virtual Development Center, a collaborative effort with the Institute for Women and Technology, in which people from the local community brainstorm with students on ways in which technology can improve our lives, and the students interact with the community in the implementation of some of the resulting ideas.

The Storage Technology Laboratory is used primarily for graduate research, although senior projects are encouraged and supported. The activities in this lab are oriented toward storage interfaces and networked storage systems. The lab tracks and analyzes technical advances in disk drive technology in terms of emerging applications opportunities; sponsors symposia and workshops on data storage technology; and produces documents of historical interest for general use by the storage industry. The lab’s head/media disk drive spin stand experimental facility is located nearby off-campus and is available for hardware studies.