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 Engineering Graduate Bulletin Chapter 2, Academic Programs and Requirements, and Chapter 3, Admissions, for details on admission and general degree requirements. The following departmental information augments the general requirements.
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.
Department Policy on PhD Prelim Exam
The computer science and engineering PhD prelim exam is a written exam and students will be tested on the three core subjects, computer architecture, algorithms, and operating systems. In order to pass the prelim exam, students should pass all three subjects.
If the student fails a subject, he/she is allowed one additional attempt of the failed exams within one year. The student should consult with his/her advisor regarding the future course of action that is most appropriate for his/her particular situation. Note:
- The examination will not be shown to the students.
- The student may confer with an advisor, who may indicate areas of weakness to the student. (These do not necessarily have to correspond to areas in which the tests were failed, as a student may have shown weak preparation while passing a test.) If the student is convinced there must have been an error in the grading of a test in which his or her performance was reportedly weak, he or she may ask the advisor to request that the test be re-examined.
- If a re-examination of a test results in a change substantial enough, in the opinion of the advisor, to merit reconsideration of the student’s overall performance relative to passing the preliminary exam, the advisor may request that the faculty meet again to reconsider the affected student.
The PhD prelim exam may be repeated only once.
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.
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. In addition, acceptance of publications with the student as the primary (first) author is required. More details are described in Engineering Graduate Bulletin Chapter 2, Academic Programs and Requirements.
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 Research Program Leadership Council (RPLC).
Preliminary Exam Preparation
Introduction to algorithms 3rd edition, 2009 by Cormen et al, ISBN: 978-0-262-53305-8, MIT Press
- Express relationships between functions using asymptotic notation.
- Formulate and compare running time functions.
- Design efficient algorithms using techniques such as recursion, divide and conquer greedy method, linear programming or dynamic programming.
- Model computational intractability using NP-completeness
- Understand how classes P, NP and NP-complete might be related and how to show a problem is in NP-complete.
Week 1: Introduction, analysis of algorithm, asymptotic nations, chapters 2, 3.
Week 2: Recursive algorithm, solving recurrences, divide and conquer, chapter 4.
Week 3: Lower bound of comparison based sorting, chapter 8. quiz (Th)
Week 4: Wed. Dynamic technique, rod cutting, chapter 15.
Week 5: Dynamic technique, binary search tree, chapter 15
Week 6: Greedy method, activity selection, ch. 16. Test (Th)
Week 7: Linear programming, chapter 29.
Week 8: Wed. NP-completeness, chapter 34.
Week 9: NP-completeness, chapter 34.
Week 10: NP-completeness, chapter 34, presentation (Th)
Week 11: Final exam
Chapters covered partially: 2-4, 8, 15-16, 29, 34
Computer Organization and Design: The Hardware Software Interface: ARM Edition (The Morgan Kaufmann Series in Computer Architecture and Design), by Patterson and Hennessy.
Instructor assigned readings.
- Use mathematical skills to analyze the performance of computer systems/subsystems and to guide the design of a subsystem of a computer.
- For a given instruction set, design the data path and control unit using single cycle and simple pipeline implementations.
- Understand the data and control dependencies and how to handle them in a pipelined design.
- Understand how a memory hierarchy works and tradeoffs that affect performance, especially how a cache works, the principle of locality, what affects the performance, and how to design a cache system.
Week 1: Introduction, computer performance, representing numbers and instructions (chapters 1 & 2).
Week 2: ARM (LEGv8) addressing modes, translating and starting a program, (chapter 2)
Week 3: Pipelining data path & control (chapter 4)
Week 4: Data and control hazards (chapter 4)
Week 5: Data and control hazards (chapter 4)
Week 6: Memory hierarchy, caches (chapter 5)- Midterm Exam
Week 7: Memory hierarchy, caches (chapter 5)
Week 8: Memory hierarchy (chapter 5), Arithmetic for computers (chapter3)
Week 9: Arithmetic for computers (chapter 3)
Week 10: Final preparation- Project presentations.
- Tanenbaum, Modern Operating Systems, Pearson, 4th Edition, 2015
- Anderson, M. Dahlin, Operating Systems – Principles and Practice, Recursive Books, 2nd Edition, 2014
- Silberschatz, P.Galvin, G. Gagne, Operating System Concepts, John Wiley and Sons, Inc. 10th Edition, 2018
Note: Any of the above textbooks and any edition will be sufficient to prepare for the preliminary exam.
The purpose is to understand and use the basic concepts of operating systems, common to most computer systems, which interface the machine with the programmer. In particular, this introduces concepts such as process management, synchronization, memory management, and I/O management. The successful student will be able to understand the basic components of a computer operating system and the interactions among the various components. It covers an introduction to the policies for scheduling, deadlocks, memory management, synchronization, and file systems.
- Demonstrate an understanding of basic OS functionality: CPU scheduling, process management, main memory management, secondary storage management, I/O devices, file management, and security.
- Apply concepts in process management, such as allocating resources to processes, handling inter-process communication, multi-threading, deadlock detection, and avoidance.
- Describe memory management mechanisms, such as paging, segmentation, and virtual memory, including page replacement algorithms.
- Describe basic file management schemes and concepts, including directory structures, layout management, buffering, and data space management.
- Apply performance metrics, and demonstrate a grasp of the importance of performance evaluation in operating system design.