Whether you're applying for an REU/internship, a grad program, or something else the best recommendations will come from people that know you the best. If you're worried that I might not know who you are, you probably want a different recommender.
When choosing a recommender, your goal should be to add extra information that isn't already in your application (or to emphasize the most important information). The people reading your application will already know the grade you got in 311 (you are submitting your transcripts).
FERPA (U.S. student privacy law) generally gives you the right to view documents I make about your education. That could theoretically include a recommendation letter. It's important that you waive this right, for a few reasons:
If you're applying to CSE's BS/MS program, send me an email asking for a recommendation at least 2 weeks before the submission date of the recommendation (usually that's before the last day of classes of the quarter). I'll check-in with you to make sure I'm the right person to write a recommendation; if so, I'll ask for a copy of your materials (a draft of your personal statement, your CV, and unofficial transcripts).
In some cases, I might ask for a quick meeting to talk through your application (to make sure I'm emphasizing the most important points) but usually I can see pretty quickly what I want to write.
I don't need any other logistical information -- CSE makes submitting these recommendations really easy.
Along with the materials, I'll ask you to include a list of where you're applying, the deadline for each program, and a link to each program's submission directions. You should also call out any "different" programs in this list (e.g. are some of these REUs programming-oriented and others theoretical? are you applying to both data science and traditional CS programs?) If possible, please keep the list to 8 program or less. More applications than that will cost you money (in application fees) and take me a surprising amount of extra time (schools often include extra multiple-choice questions with their applications that I have to fill out separately each time in addition to the letter), and probably won't substantially improve your chances of admission. If you want help strategizing where to apply, please ask!
For graduate programs (other than UW's BS/MS program), recommendations are a big endeavor. If we've worked together I'll be thrilled to write one for you, but it's important to think strategically about your whole set of recommendations. You want every letter to contribute something new. Send me an email as early as you can. Ideally 3-4 weeks before your first deadline. I'll check-in with you to make sure I'm the right person to write a recommendation; if so, I'll ask for a copy of your materials (a draft of any statements, your CV, and unofficial transcripts) along with bullet points for anything you want me to remember and emphasize (Did you lead a project as a TA? Do an independent project in a course? Figure out a key lemma in a research project?).
Along with the materials, I'll ask you to include a list of where you're applying, the deadline for each program, and a link to each program's submission directions. You should also call out any "different" programs in this list (e.g. are some programs in math departments instead of CS? Are some research-focused and others classwork focused?) If possible, please keep the list to 10 programs or less. More applications than that will cost you money (in application fees) and take me a surprising amount of extra time (schools often include extra multiple-choice questions with their applications that I have to fill out separately each time in addition to the letter), and probably won't substantially improve your chances of admission. If you want help strategizing where to apply, please ask!