Faber FAQs
General Questions
- Will you tell me how to run Nachos on windows?
-
No, I won't.
I seem to get this question a couple times a year because I mentioned the possibility when I taught undergraduate operating systems a couple years ago. While I understand the issues involved in doing this, I don't program in Windows and I've never worked out the details. Beyond the difficulties of porting a UNIX application to Windows (for which I'd use UWIN), Nachos has its own threading package written in assembler. This may port trivially or be a nightmare, I just don't know, and won't spend the time to find out.
Unless that paragraph has made the difficulties clear to you, and you are also willing and able to read the threading code in Nachos, I just wouldn't try to port it. Especially if you're my student, the Nachos assignments are enough work.
Now, if you're a Windows hacker who has some time on their hands and this sounds like fun, please – go to it. Let me know how it comes out. If you're a Windows hacker who's taking operating systems from me and who's excited about doing this after you've passed the class, come to office hours, and we'll talk in detail. But I don't have time to help in any case, sorry.
- Where is ISI?
-
It's here:
4676 Admiralty Way
Suite 1001
Marina del Rey, CA 90292The link (above) goes to Google Local, from which you should be able to get directions.
E-mail Facts
- I got e-mail from you with a strange attachment, what is it?
-
It's a PGP digital signature. Programs that understand the PGP standards can use that information and some publicly available information to show that the mail you received was from me and was not altered between me and you. The publicly available information is called my PGP public key. I keep copies of mine on key servers and locally.
You can find out more about PGP from the comp.security.pgp FAQ. I actually use the GNU privacy guard, an Open Source implementation of the PGP standards.
I sign more than 95% of my mail, and unless I know that the attachment will get my mail blocked or cause you problems, you can expect to see a signature on all mail from me. Of course I encourage you to get a mailer that will allow you to verify the signatures and therefore know that the mail is from me and not forged.
If your mailer told you that this is an unknown attachment, you can't use this attachment in any reasonable way. (If you find an unreasonable way to use it let me know.)
If you got an attachment from me that doesn't make sense after reading this, feel free to ask about it. As with any attachment, do not execute it or otherwise open it unless you know what it is.
E-mail Opinions
- What's wrong with Microsoft format attachments?
-
Philosophically, that's a question everyone must answer for themselves. However, all the machines I use to read mail run only FreeBSD, which has very limited support for Microsoft formats. I can use OpenOffice to read Powerpoint and simple Word documents. In general, if you want me to read it, send it in plain text (ASCII or UTF-8), postscript, or PDF. I'll try to read Word only if I believe that the document is urgent and conversion difficult.
- What's wrong with my plain text formatting?
-
Greg Lehey does an excellent job describing the various ways mailers can badly format plain text as well as why and how you should avoid them.
- What's wrong with starting a new thread on a mailing list using the "reply" feature?
-
When you do this, your mailer usually generates an In-reply-to: header that mailers and mail archive web sites use to divide the mail into threads on a common topic. By starting a new topic that has this header in it, you've created a tangle for any system that implements this useful feature. Because you sent the message, it seems you consider the new topic important; why not make it easy to find and follow the conversation?
- What's wrong with my quoting style?
-
Well, it probably deviates from the one I like, which is well summed up in the news.newusers FAQ. The style advocated there evolved over considerable time and is particularly clear, especially in a medium where considerable time can pass between messages, even in one-to-one communications.
- Why should I make sure my vacation/autoreply program does not reply to mailing list posts?
-
Well, not to sugarcoat it too much, becaues it makes you look like a bozo. I understand that you're probably not a bozo, but when I post to a technical Internet mailing list and receive many replies describing the travel and vacation plans of a bunch of strangers – yours included – well, it's easy to jump to that conclusion. I don't think I'm unusual in this regard.
I was especially surprised to see a recent autoreply that sent the person's cell phone to the entire IETF general mailing list, where it will be archived until the end of time. Not a great idea from a privacy persective.
More seriously, it's generally rude to autoreply to mail that isn't addressed to you. Autoreply systems that do this are broken or misconfigured. I understand that you may not have either picked or misconfigured the system that sent the mail, but it's your name on the e-mail, so recipients assume you blew it.
I could make some high-falootin' argument about how this sort of bad autoreply is ruining e-mail for everyone, but that's neither true nor really the point. (Though you should be aware that if your misconfigured autoreply system winds up talking to another misconfigured autoreply system, you and the other person with the misconfigured system may exchange a lot of e-mail.)
The point is that a misconfigured autoreply system makes a first impression on someone for you. There's no sense making that first impression be a bad one if you can help it. (For what it's worth, it is just a first impression. Everyone who's used a computer for any length of time has misconfigured something and embarrassed themselves.)
Fix it or have the folks who installed or configured it fix it.
Students
- I'm a student who just got into USC and I want to work for you, can I?
- I'm a student and I would like to do a directed research project with you, can I?
-
If that question and a resume is the entire contents of your question, the answer is “no.” If you were directed to this link by a reply to an e-mail you sent me, the answer is “no.” Read on for the details.
I do enjoy working with motivated, bright students both on projects I'm working on for ISI and other interesting system projects. I only have finite time to devote to this kind of work, so I generally like to know something about the student and the work before getting into it. There are several ways you can bring yourself to my attention, and positive and negative ways to do so. Let me make some suggestions:
What can you do to bring yourself to my attention in a good way?
- Take CS 555 with me and do well.
- Be recommended to me by another USC faculty. A good way to do this is to take their class and do well in it.
- Do something interesting with USCLUG. Don't join USCLUG for the sole purpose of getting my attention.
- Produce an excellent proposal for a directed research project.
What can you do to bring yourself to my attention in a bad way?
- Badger me after receiving a negative answer. Sending one well thought-out proposal is not badgering.
- Send me lots of MS-Word attachments.
- Arrive for a “meeting” with me that's been unilaterally scheduled.
Please don't do any of them.
CS 555
- What can I do to get a good grade in 555?
-
CS555 is very demanding in time and, I hope, intellectually. To the extent possible, the course is structured to allow you to plan ahead, but evaluating your progress requires diligence. All of the course deadlines except homework assignments are given on the syllabus and do not change throughout the semester. While I understand that unexpected events can occur at any time, I've done my best to allow you to pad your own schedule to avoid those conflicts. Take advantage of that and plan your time accordingly.
Take advantage of your peers and the instructor. There is generally a class mailing list set up to exchange ideas. You are also encouraged to talk about the class with your peers informally. One of the best ways to understand technical material is to explain it to others or to have it explained to you by a peer. Take those opportunities.
Furthermore, I've set aside an hour after class to talk with students. I'm there expressly to answer questions, so don't be hesitant to come and ask questions. This helps me understand what was clear in my lecture and what wasn't. Don't hesitate to ask questions in e-mail, either.
Assess your progress throughout the semester. Although there are only a few graded assignments before the final and paper, there are many lectures. If you are consistently unprepared for class, this is a danger sign. If when you are prepared for lecture, you are consistently unable to follow the discussion of a paper this is a danger sign. If you do not feel you could formulate a question on a paper or that you could not explain it to an interested computer scientist, that's a cause for concern. If you feel you gave the midterm your best effort and felt that you hadn't been able to understand and attempt as much as you expected, this is a warning sign.
Of course your assessment should consider your goals. If you want an A, you want to be able to master the material and feel competent on most of the items suggested above. If this class is outside your focus area and the grade is incidental to you, adjust your expectations as well.
However, if you make a considered assessment of your performance and it's not up to your expectations, take some action. If you don't change what you're doing, you are unlikely to improve. Some things to try:
- Spend more time reading the papers and discussing them with fellow students before class.
- Come to office hours with questions
- If you're uncomfortable asking questions face-to-face or in class, ask some in e-mail.
- If you believe that you would do better with another instructor, or that your background in operating systems needs improvement, or that you don't have sufficient time to devote to CS555 this semester, consider taking the class another time.
- I'm a DEN or off-campus student and I can't access the ACM library. How can I get the papers?
-
USC has a site subscription to the ACM digital library, meaning any IP address allocated to USC is allowed to retrieve items – like papers – from the library. The way to get yourself access to the library is to get yourself a USC IP address. USC's ISD has a web page that tells you how to do this. Follow those instructions, get a USC address and you should be able to get to the papers.
If the VPN software is not an option, because of some sort of firewall or your use of a free operating system, consider looking up the papers from the USC libraries.
-
Why are the exams closed-book?
-
I have actually considered this question fairly deeply. Exams are closed book to test students' grasp of the material without reference and under time pressure. That's pretty obvious. What's less obvious is why I believe this is a useful skill to acquire and test.
In research and in design, people are often called on to evaluate work and ideas on the fly. Participating in design meetings, conference talks, funding reviews, and water cooler bull sessions all require one to have ready mental access to the relevant technical work in computer science and the ability to evaluate new ideas with respect to them quickly. It is this ability that the closed-book exams test.
The class also has a significant component that tests students' ability to investigate and discuss the material in depth – the term paper. One's ability to collect and organize information from many sources is tested there and in the homework. There is a 5% bias toward exams, which may reflect my preference for real-time evaluation, but hardly seems excessive.
-
Is the CS555 Final Exam comprehensive?
-
The 555 final is a comprehensive exam. Anything in the papers or discussed in lecture from the first day of class until the last may appear on the exam.
That said, more questions on the final address material covered after the midterm for the simple, pragmatic reason that students have not been tested on it before. As an instructor and an evaluator, I'd like to know what students have retained about material throughout the entire class.
The other element that the final exam is intended to test is students' ability to synthesize knowledge from throughout the entire semester – that is their ability to relate ideas from the whole class to each other. It's difficult to evaluate that without asking some questions that touch on earlier material.
Finally, in my windmill-tilting way, I hope that the systems and ideas students are introduced to in CS555 will remain with them throughout their technical careers. As part of that, I intend that studying for the final will provide an opportunity for students to look over the entire landsacpe of concepts that have been presented, let people organize them in their own mind, and reinforce the idea. Cue up your own version of Impossible Dream as I couldn't find one.
Whether or not students approach the final in that way, it is a comprehensive exam.
- What are some common paper problems and how can I avoid them?
-
The most common problem that students exhibit in their 555 writing is that they do not write a paper about their ideas. I get a significant number of papers every year that simply summarize some set of papers, make some comparisons and end. To write a good paper you need to have something to say. To have something to say, you need to look at an area and think about it. This means reading broadly in the area you're interested in and thinking about it. The thinking part is not optional, and very hard to do a few hours before the final copy is due.
You're likely to need to set aside some time to do this thinking. Ideas are tough to track down with your proposal deadline very close. Do come talk to me about your ideas or proposal when you get stuck.
When you come see me, expect me to ask these kinds of questions:
- What interests you in this area?
- What ideas are being tried here (broadly)?
- Is there a related interesting area that you could compare?
- Is there a technology change coming that might change how people look at this field?
I understand you're thinking, so I don't expect you to have an essay addressing each ready (if so you probably don't need me), but you should think about them.
Once you propose an interesting thing to look at, test out your assumptions, try to prove yourself (or the authors in the field) wrong and reach your conclusions. This is where you actually decide what you want to say. Try to get to the point where you can describe your conclusions in a few paragraphs.
Now, armed with what you want to say, draw up an outline or plan out your extended argument. Only include the information you've studied that addresses your point - though you should include information that runs counter to your ideas as well if there is some. Addressing objections to your conclusions makes a paper stronger. Putting this argument together can be difficult. Again, it often helps to discuss the ideas with your peers or me.
Once you've gotten to where you have an idea and the outline for how to present your case for it, writing the text is straightforward. Understand that this is equivalent to saying that once you understand a technical problem and have worked out the algorithm to solve it, writing the code is straightforward. This is true, but may define the difference between straightforward and trivial. You will need to spend time writing and rewriting sentences or paragraphs as well as wrestling with length and formatting constraints. Just as with writing and debugging a program, this presents challenges. Set aside time to do it. Rushed papers are another common problem.
There are often problems with citation style and with bibliography formatting as well. (By this I mean students who do it clumsily, not plagiarists.) One of the best ways to see how to cite properly is look at one of the papers in class in detail. Pick a short one and look carefully at the references used and how they're cited. The digital library access at USC makes this an afternoon's worth of work at most. Of course the SJACS publications are also helpful. Test your understanding by bringing me an excerpt from your paper and the cited material.
For formatting, again, the papers we discuss in class show pretty clearly how to format a reasonable bibliography. BibTeX and refer can format these automatically, and it's worth at least looking at their outputs. The ACM digital library produces citations in these formats.
Though I hope this discussion has been helpful, there isn't an algorithm for writing a good paper. You need to have an idea that's based in an understanding of the area you're interested in and discuss it clearly.
Turn in a paper where your ideas are center stage and you've also shown where they fit with others' work.
- I'm unhappy about my grade. Can I do some extra credit work to raise it?
-
No.
IMHO it's unfair to offer extra credit options to some students and not to others. I also don't have time to grade optional course work for everyone, so I never offer extra credit.
-
I'm unhappy about my grade and would like a higher one. I claim
one or more of:
- I worked very hard and this grade does not reflect that
- This grade will ruin my GPA
- This grade will prevent me from graduating
- This grade is lower than I would like
-
I do sympathize. It's very disappointing to feel that the grade on your transcript does not reflect the effort you've put forth in a class. It can be even more stressful to find that your plans have been derailed by a low or failing grade. It doesn't help that in classes like 555 more than half the inputs to your final grade are unknown until the last week of class, well after any kind of drop date.
However, as much as I sympathize with your feelings, I have an obligation to be as fair as possible to all students in the class. This means that I assign grades as objectively as I can and cannot take these outside factors into account. I have to grade what I've been given.
In the absence of a grading error, I will not change a grade.