0% found this document useful (0 votes)
26 views2 pages

StudyGuide FE Comp417

The COMP-417 Final Exam will cover material from lectures, assessments, and quizzes, focusing on theoretical questions, program reasoning, and practical applications in parallel and concurrent programming. The exam is structured into four parts, including theoretical elaboration, program analysis, and implementation tasks. Students are expected to demonstrate their understanding and ability to apply concepts learned throughout the course.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views2 pages

StudyGuide FE Comp417

The COMP-417 Final Exam will cover material from lectures, assessments, and quizzes, focusing on theoretical questions, program reasoning, and practical applications in parallel and concurrent programming. The exam is structured into four parts, including theoretical elaboration, program analysis, and implementation tasks. Students are expected to demonstrate their understanding and ability to apply concepts learned throughout the course.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

COMP-417 - Final Exam Study Guide Prepared by Prof.

Gjermundrød

DEPARTMENT OF COMPUTER SCIENCE


COMP-417 Parallel and Distributed Computing
Final Exam Study Guide
Everything from the Midterm Study guide
- Lectures 1 – 9 (until Slide 31 on Lecture 9).
- The 5 in-class assessments
- The 4 quizzes: mainly the theoretical questions.
Similar questions may appear on the exam

Structure of the final exam


• Part 1: Theoretical questions (about 50 points)
a. Questions similar (but can cover ANY topics from the slides that may
not have been asked in the quizzes) to the quizzes, but you will be
asked to elaborate on the answer like:
i. compare and contrast various terms/concepts
ii. justify your answer (i.e. it is not enough to answer true/false,
but you have to justify why the answer is true/false)
iii. demonstrate some concept (you may need to draw a diagram or
show all the steps/traces of a specific situation which results in
the specific situation).
iv. Show the full calculation i.e. if you have to calculate
speedup/efficiency and/or using Amdahl’s law you will need to
show all the steps of your calculation.
b. Compared to the quizzes the answers will be longer, because you will
write the answers in a few short paragraphs instead of point-and-click
or drag-and-drop which you did in the quizzes.

• Part 2: Reasoning about programs (about 20 points)


a. You will be given a Java program, which you will need to analyze
and/or modify:
i. Is there a potential for Deadlock or Starvation? If so, show a
trace of the program resulting in deadlock.
ii. If there is a deadlock (or potential for starvation) in the
program, propose a solution which is deadlock/starvation free
and justify why deadlock/starvation cannot occur anymore.
iii. Is there a potential for
1. Data Races
2. Bad Interleavings
3. When using locks explicitly, forgetting to release the
lock due to an exception
4. Surrounding a wait() with an if statement instead of a
while statement

1
COMP-417 - Final Exam Study Guide Prepared by Prof. Gjermundrød

b. You will be given a concurrent program and asked to identify


optimizations to the program:
i. Change the code as to create a shorter critical section (i.e. the
thread holds the lock for a shorter period of time)
ii. Would it be safe to convert a notifyAll() to notify() or vice
versa.
c. You will be given a concurrent program which are using explicit
locking (i.e. using a mutex or semaphore) and asked to convert it to
one that are using the synchronized statement instead.

• Part 3: Practical questions related to Parallel Programming (about 15


points)
See the Midterm Exam Study Guide (Part 2). The difference may be
that on the final exam the programs may be larger, and I will provide
less code (i.e. maybe only a small skeleton). The questions may also be
more difficult than what was on the midterm.

• Part 4: Practical questions related to Concurrent Programming (about 15


points):
a. You will be given a description of concurrent application in English
and then you will do the following:
i. Implement the application using Java (note: if you want to use
C++, Python or any other appropriate language then that is
acceptable).
ii. Explain how your application satisfied the description of the.
You also need to explain any assumptions that you made.

The exam will test your knowledge in the above


material as well as your ability to apply the concepts to
solve new problems.

You might also like