Students frequently ask me for letters of recommendation. These letters are requested most often to support an application for graduate study in computer science. Regardless of the circumstances, the following must be true for me to write you a letter of recommendation:
First, I must know you well enough to write an intelligent letter. If my only interaction with you was that you took a course with me and we hardly ever spoke, then I don't know you well enough to write a letter, sorry. Therefore, I am only willing to write letters of recommendation for students who have interacted with me in meaningful ways. Some examples:
You took more than one course with me and you were visible and active in those courses. Perhaps you regularly participated in lecture by asking and/or answering questions or you came to office hours regularly to chat about the course.
You served as my teaching assistant and were a major asset to the team. You stepped up and helped me out when I asked for volunteers. You didn't disappear into the background or do the absolute minimum amount of work to satisfy your TA responsibilities.
You worked on a research/development project or VIP project under my supervision.
Second, if I know you well enough to write a letter, then your academic record had better be strong. "Strong" doesn't mean perfect, but there had better be no CSE/ISE grades of less than B- on your record. For graduate school you really should shoot for a GPA of 3.5 or higher (both CS and overall).
Third, you will need to give me a copy of your up-to-date résumé. Hopefully there will be an internship or research experience on it, along with a lengthy list of projects you have worked on.
Fourth, you must actually ask me if I will provide a reference. Otherwise, I will simply ignore requests for letters from graduate programs that I receive.
Finally, you must waive your right to review my recommendation. Otherwise, I will not provide a letter of recommendation for you.
Often, students will come out of the woodwork years after taking a course with me to ask for letters of recommendation. I typically will have no memory of these students, sadly. Others are students who haven taken only one or two courses in computer science and now want a letter from me recommending them for admission to a graduate program in CS. Or, worse still, I might get a request from a non-CS major who is applying to a graduate program outside of computing. In all these cases I simply cannot write the applicant a strong letter; it would wind up sounding like this:
Dear Graduate Admissions Committee:
My former student, Mr. Bilbo Baggins, asked me to write a letter of reference to accompany his application to pursue graduate study in computer science at your institution. Bilbo took Foundations of Computer Science (CSE 215) with me in the Fall 2019 semester, for which he earned a grade of A-. This grade placed him in the top 20% of the course. Bilbo has spent three full years studying at Stony Brook, and is doing quite well in his coursework. His 3.82 GPA reflects a dedication to his studies and a strong work ethic. Insert here other generic-sounding platitudes and useless regurgitation of content from your academic record and résumé.
Sincerely, etc.
Do you really want such a lame letter from me? It will probably kill your application to graduate school.
In contrast, when I write a letter of recommendation for a student I know well and who has a record of accomplishment, I can end my long, detailed and supportive letter with words like these:
In sum, I strongly recommend Bilbo for admission to your master's program and do so without any reservation whatsoever. I am confident that he will complete the program with distinction and will be proudly counted among Orthanc University's computer science alumni.