COMP 430 Presentation Guidelines
The purpose of this assignment is to investigate a particular component
of the Linux kernel, and present your findings to your classmates.
Presentation requirements:
- Prepare readings. You should prepare a set of readings so that we
will be able to come to your talk with intelligent questions.
Readings can be from Linux Kernel Development, from our textbook, or
from the web. You need to have readings prepared by the Wednesday
before you give your presentation. If you need photocopies made, you
can give me a copy of your readings no later than noon on the Tuesday
before your presentation. The amount of reading you assign should be on the
order of other reading assignments for this course.
- Make an alteration to your component the Linux kernel.
Probably the best thing to do is to find a place in the code where
something interesting is happening and insert a
printk
that provides some information about what the kernel is up to. For
example, if you are working with the scheduler, you might add a
printk that prints out the id of the next task that is
scheduled. You are welcome to do something more ambitious, but I
suggest that you start small. Be prepared to describe the change you
made, show the code, and demonstrate the result.
- Prepare a presentation. You should have some sort of visual
aids prepared for your presentation. This could take the form of a
power point presentation, a series of web pages, or whatever else
works best for you. Your presentation should include diagrams, code
segments, and other visual aids where appropriate. After you've given
your presentation you'll submit your supporting material to me, and
I'll post it to the course web page. By the end of the class we'll
have collaboratively prepared a nice primer on the Linux kernel.
If you are planning on using power point, or something similar, a
rough rule of thumb for how much to prepare is that every slide takes
about two minutes. So for a 45 minute presentation should have about
20-25 substantive slides. I suggest that you practice your
presentation at least once to get an idea of timing. I won't reduce
your grade if you go over the time limit (as long as you stay
within the class period), but you should have enough information to
fill the full 45 minutes.
Topics that you should address in your presentation:
- What are the main issues/challenges in implementing your kernel
component? What are the big picture issues that we should be keeping
in mind as we look at the details of the implementation?
- What are the main data structures that your kernel component
makes use of, and how are they organized?
- What are the important algorithms and why were they chosen?
- (Note that the previous two bullet points should include code
walk-throughs where appropriate)
- What change did you make to the kernel?
- What questions do you have left about your kernel component?
As with any research project, your presentation should include
citations where appropriate.
- Prepare at least three exam questions based on the material
that you present. These should be short answer questions. They
should test for understanding of some of the important concepts in
your talk. They should not be incredibly difficult or obscure.
Presentation Topics
The following is a list of possible topics along with the time when
these topics would fit best. Feel
free to talk to me in person if you have questions about what sort of
information should be included in any of these presentations.
- Process Management (week 4) (Sarah Jerrod)
- Scheduler (week 5)
- Memory Management (week 6) Aidan
- Modules (any time)
- File Systems(week 8) Evan
- Networking (week 9)
- Security Enhanced Linux (week 10)(Mat Trevor)
- Detailed Look at a Device Driver (any time)
Grading
The grade will be broken down as follows:
| Appropriate readings | 5 |
| Kernel modification | 10 |
| Presentation content | 30 |
| Presentation organization/clarity/style | 15 |
| Exam questions | 5 |
| Total | 65 |
The following list is intended to give an indication of what my
grading criteria will be for evaluating the presentations:
- A: The presentation is well organized. Time is used
efficiently. Complicated concepts are explained using appropriate
figures and diagrams. Presentation content is clearly based on a
close reading of the relevant kernel code, and not just on
material from secondary sources. The presentation gives a sense of
the forest as well as the trees: it goes into detail where appropriate
but also gives a sense of the big picture concepts behind particular
implementation decisions. The presenter doesn't know everything about
his or her kernel component but, to paraphrase Donald Rumsfeld, the
unknowns are known unknowns.
- B: The presentation is well organized. Time is used
efficiently. Complicated concepts are explained using appropriate
figures and diagrams. The presentation may make substantial use of
material from secondary sources, but it is clear that a real effort
has been made to understand the relevant source code. Code
walk-throughs hit on all of the most important code segments.
Although the presenter may not understand all of the implementation
details, he or she has a good general sense for how the various pieces
work together.
- C: Presentation meets the time limit, but does not use
time efficiently. Most of the main points are hit, but the
organization leaves something to be desired. Presentation material is
based mostly on secondary sources. Presentation does include some
relevant code examples, but the presenter doesn't display a good
understanding of how the code works, or how it fits in with the rest
of the kernel.
- D-F: Presentation is a hastily repackaged version of
information taken from 1-2 secondary sources. Presentation does not
contribute much beyond what the audience could have learned from
reading those sources directly.