Written Comprehensive Exam Instruction
(Revised February 2025)
ETAMU Rules and Procedures for Examinations for Graduate Degrees: Examinations for Graduate Degrees
Overview
The Comprehensive Exam is designed to measure skills and mastery of concepts learned throughout the MS-CSCI degree path. All students are required to take and pass the comprehensive exam before they graduate. The Comprehensive Exam is given during Fall and Spring semesters only. Exam dates and times are posted on the Computer Science Department Announcements. Students are required to register in advance, so that adequate space is reserved for the student.
Thesis-option students should coordinate their exam with their thesis advisor and the department head. The thesis advisor should plan and prepare for the exam with committee members and/or other faculty members in the department. The Comprehensive Exam can be administered on the thesis defense date or any time after successful defense of the thesis. The result of the exam should be submitted to the department in writing for final approval.
Eligibility
- In good academic standing (GPA >=3.0).
- Must be in the final semester.
Registration
- To be eligible for the exam, and to receive the registration link, declare your intent to graduate by contacting the Graduate School at the start of the semester.
- Registration link: You will receive an email with the registration link from the Computer Science Department in mid-February(Spring semester) and September (fall semester).
- Registration Deadline: First day of March (Spring semester) and October (Fall semester).
- Exam date: Fourth Thursday of March (Spring semester) and October (Fall semester).
Dropping from Comprehensive Exam
- A request for dropping from the Comprehensive Exam must be submitted to the Department and your Advisor at least 24 hours in advance of the exam date, otherwise, this registration will be counted as 1 attempt.
Exam Criteria
- Computer Science (joined the program before Fall 2022): must attempt 5 out of 10 questions, one from each core course: CSCI 520, 530, 532, 540, 549.
- Computer Science (joined the program in Fall 2022 or after): must attempt 4 out of 8 questions, one from each core course: CSCI 520, 530, 532, 549.
- If a student attempts both questions for a subject, the lowest score will be counted towards the final score for the subject.
Exam Format
- Computer Science department will announce whether the exam will be online or in-person during registration time.
Academic Dishonesty
Any form of academic dishonesty will result in a failing grade on the exam and may lead to further disciplinary action by the university. Academic dishonesty includes, but is not limited to, the following:
- Collaboration: Collaborating with other students or individuals during the exam is strictly prohibited. This includes discussing exam questions, sharing answers, or providing assistance in any form.
- Plagiarism: Submitting work that is not your own. This includes copying code, text, or ideas from other sources without proper attribution. All sources must be properly cited if permitted.
- Impersonation: Having someone else take the exam on your behalf or taking the exam for someone else.
- Sharing Exam Content: Sharing the exam questions, answers, or any other related information with other students before, during, or after the exam.
- Using AI Tools: Utilizing AI tools like ChatGPT, Copilot, or similar for generating code, answers, or any part of the exam submission unless explicitly permitted by the instructor for specific tasks and with specific guidelines. Even if permitted for a specific task, all sources must be properly cited.
- Distributing Exam Materials: Sharing or distributing exam materials to others through any means, including but not limited to posting them online, emailing them, or sharing them in person.
Exam Result
- The result will be announced via email two weeks after the exam.
For 2nd and 3rd attempt
2nd attempt: You will need to make appropriate arrangements if you want to make a second attempt in order to maintain your status and eligibility for the exam. Questions regarding foreign student status and requirements for remaining eligible for the program should be directed to the Foreign Students Services department and the Graduate School. You will need to make sure that you can be available in person in the semester you choose to retake the exam and make your second attempt at fulfilling this requirement. You will be responsible for following all announcements and registering for the second exam. As outlined in the university procedures, the second attempt at the comprehensive exam is not a right, but a privilege. Faculty can recommend or reject a second exam attempt, but in general, any student who follows procedures and correctly registers for a second exam attempt will be allowed to try to pass the requirement a second time. The registration page for the comprehensive exam is usually open in February for the spring semester and in September for fall. Please make sure that you pay attention to all department e-mail announcements and announcements on the department web page so that you register in a timely and correct manner.
3rd attempt: Petition for 3rd attempt
Comprehensive Exam Third Attempt
If the last exam was your second attempt, you can request that you be allowed to make yet another attempt at the exam. A third exam attempt is a privilege, not a right, you are by no means guaranteed to be allowed or granted the third attempt. In general, if you cannot pass the exam after the second attempt, you will have to demonstrate to the faculty and graduate school that you are worthy of being given extra consideration. You will need to complete detailed plans of study that will need to be approved by your graduate supervisor and the graduate faculty.
You are required to file this request for a third attempt, with a plan of study, no later than the end of the first week of the semester in which you are requesting a third attempt. No consideration will be given to requests made after this time. You are responsible for maintaining eligibility in the program and immigration status before this time.
The third attempt for COMP will be denied even after approval of your plan if you do not follow the approved weekly study plan and the COMP coordinator does not approve satisfactory implementation of the plan or fail to convince your advising faculty that you are truly ready for a final attempt by two weeks before the exam.
The third attempt is final. Failure to pass the comprehensive exam on the third attempt means that you will not be able to receive your Master of Science degree from our degree program.
The following form is required for the petition.
List of advisors
| Last digit of CWID | Advisor |
| 1,2 | Dr. Yuehua Wang |
| 3,4 | Dr. Jinoh Kim |
| 5,0 | Dr. Kaoning Hu |
| 6,7 | Dr. Derek Harter |
| 8,9 | Dr. Omar El Ariss |
Guidelines for the Comprehensive Exam
The following guidelines are designed to help students for the exam preparation.
Note: The topics are the minimal requirements to prepare for the exam.
Guidelines for 520
Questions in the CS MS Comprehensive Exam
Use C++ wherever applicable in the answers of the following:
Create a linear linked list from a given collection of data (e.g. from an array).
- Create a linear linked list from a given collection of data (e.g. from an array).
- Given a linear linked list, traverse the linked list and delete nodes with a specified condition.
- Given the specifications for an application (e.g. frequent search), identify which data structure would be the best fit (e.g. stack, queue, tree); and explain time and memory space usage based on the choice of structure.
- Write code that identifies and uses the most appropriate data structure (stack, queue, tree) in solving a given problem.
- Write code that performs specified tasks on given stacks using methods defined on stacks.
- Write code that performs specified tasks on queues using methods defined on queues.
- Write code that performs specified tasks on a tree based on the given node structure of the tree.
- Trace mergesort on a given array. Show partial results after merge steps and number of
comparisons performed in each merge.
Guidelines for 530
Questions in the CS MS Comprehensive Exam
- Explain the basic elements and functions of computer systems, including interrupt handling, memory hierarchy, multiprocessor/multicore organizations
- Describe key functions of an operating system and OS architecture comparison (e.g., UNIX, Windows)
- Explain the process/thread states and solve the problem of state transitions
- Explain and write pseudocode for mutual exclusion, semaphores, monitors, and message passing
- Solve the problem of deadlock prevention, deadlock avoidance, and deadlock detection, with the concepts of resource allocation graph and banker's algorithm
- Solve the problem of partitioning-based memory assignment and the placement algorithms (e.g., best-fit, first-fit, next-fit)
- Solve the problem of virtual memory-to-physical memory address translation and virtual memory page replacement (e.g., optimal, LRU, FIFO, Clock)
- Solve the problem of process scheduling (e.g., FCFS, RR, SPN, SRT) and performance analysis (e.g., TAT)
Guidelines for 532
Questions in the Algorithm Design CSCI for the Comprehensive Exam
- An overview of algorithms and their place in modern computing systems.
- Sorting algorithms – quick sort, insertion sort (uses an incremental approach), and merge sort (uses a recursive technique known as “divide-and-conquer). Recursion tree
- Running times of these algorithms – time and space complexity
- Growth of Functions – asymptotic notation which we use for bounding algorithm running times from above and/or below.
- Divide-and-conquer algorithms. Method for multiplying two square matrices. Methods for solving recurrences, which are useful for describing the running times of recursive algorithms. Master method (Master's Theorem) – which we often use to solve recurrences that arise from divide-and-conquer algorithms.
- Mathematical induction.
- Single-Source Shortest Paths – Dijkstra's algorithm, All-Pairs Shortest Paths.
- Dynamic Programming, Greedy Algorithms
Guidelines for 549
Preparation guidelines for CSCI 549 Automata Theory for the Comprehensive Exam
- Student should be able to build recursive definitions for any class of languages.
- Student should be able to build regular expressions, transition graphs, and finite automata and interpret them to identify languages defined by them.
- Student should be able to convert Mealy Machine to Moore Machine or vice versa.
- Student should be able to prove or disprove non-regular languages using Pumping Lemma.
- Student should be able to understand and build regular grammar, context free grammar, and Chomsky Normal Form grammar to define a language. They should also be able to understand what language each grammar can define, given a grammar.
- Student should be able to convert any context free grammar into Chomsky Normal Form grammar. Student should be able to prove a context free grammar is ambiguous or not.
- Student should be able to interpret push down automata and Turing Machines, and build them to define a language.
Guidelines for 540
540 Exam Topics
- Properties and differences of RISC and CISC architectures.
- 4-,3-,2-,1-, and 0-Address Machines
For a given instruction/statement write its implementation in 0-address, 1-address, 2-adddress, 3-address - Given an instruction, calculate the memory required to fetch and execute the instruction. Compute the total memory traffic.
- Performance changes when using different architectures. As an example, calculate speedup when number of busses changes.
- Definition of the following terms/concepts in the general purpose machines
a. Views of the computer
b. ISA(Instruction Set Architecture)
c. Fetch-Execute Cycle including interrupts
d. Instructions for subroutine call
e. Addressing modes: direct, indirect, immediate, register, register indirect, etc. addressing mode
f. Machine instructions
g. Machine exceptions - Pipelining
a. Given a set of instructions, find if any stalls are needed
b. Calculate speedup when moving to a pipelined architecture - Cache mapping scheme
a. If one of the cache mapping schemes among direct, fully associative, set associate mapping is given, identify either cache hit or miss based on the given address - Some Common Computational Type Questions
a. Given the number of innm
g. Calculate memory storage size for a given specific processor.
h. Calculate cache hit ratio, miss ratio, and average memory access time
Guidelines for 509
Questions Introduction to Computational Science for the CPSI MS Comprehensive Exam
- Be able to answer questions about the limits of floating point representations in computers. Calculate rounding and
representation errors given basic formulas for resulting sigma errors for addition and multiplication. - Create difference equation or recurrence relation representation of a described sequence. Be able to create pseudo code to generate the Nth value of a provided recurrence relationship. Answer questions to transform or calculate values of a recurrence relationship by hand.
- Be able to answer questions about root finding methods and algorithms. For example, given recurrence relationship for the secant method, calculate next 3 terms for a given function, and calculate the percentage errors of these terms.
- Use the Taylor Series to expand a function. Be able to compute an approximation of an expanded function to second, third, fourth order term. Be able to estimate approximation error given the function approximation expansion.
- Explain and understand the basic methods for numerical integration, including Trapezoidal rule and Simpson’s Rule methods. Demonstrate use of estimation of errors on integrals (based on Taylor expansions), and be able to apply this to implement adaptive integration versions of Trapezoid and Simpson’s methods.
- Be able to understand and apply the basic concept of finite differences to compute numerical derivatives, using backward and forward difference methods. Also be able to explain and demonstrate the central difference method and show and understand how this second order approximation gives better estimates than a first order forward or backward approximation.
- Be able to apply Euler’s method to solve ODE. Understand the relationship between Euler’s method and Runge – Kutta solvers, and the increase in precision from using a second, third, fourth order Runge – Kutta approximation in the solution of an ODE.
- Be able to answer questions about solutions of simultaneous linear equations using Gaussian elimination and back-substitution.
- Demonstrate the basic creation of pseudo-random sequences using a Mersenne twister. Be able to create pseudo code implementations of simple Monte Carlo simulations to solve probability problems, like expected number of balls drawn from a bag of balls with or without replacement, throwing dice, card games or other event.
Note: Contact your course instructor (or the current-term instructors) if you have any question on the subjects and guidelines.