Getting a PhD in HCI at UMD
What is the UMD HCIM (HCI Masters) program?
Should I get a MS degree before applying for a PhD?
What are the CS grad course requirements?
For a PhD degree, you must take seven 600-800 level courses spread over at least five breadth areas, with no more than three in any one area. You must obtain at least five A's and two B's. Why? Because rather than have a one-day or two-day long qualifying exam at the end of the coursework requirement (like some other universities), we give "qualifying exams" at the end of each semester for the content you learned in that course. The University of Washington had a similar approach when I was there as a graduate student. The goal is to provide all of our graduate students with a strong understanding of many of the core disciplines in CS. This can be truly beneficial, see below. In addition, to the seven 600-800 courses, you must take two additional 3-credit 600-800 level courses, which can be in CS or in some other discipline (e.g., psychology, sociology, environmental science). This simply requires advisor approval. For more info, see the official PhD Degree Requirements page.
I looked through the CS grad course catalog, and I didn't see a lot of HCI courses...
The list of courses states that "you must take 7 600-800 level courses spread over at least 5 areas, with no more than 3 in any one area". So, considering this rule, there is just one course available in the group "Software Engineering/Programming Languages/HCI" that is from the HCI area, which is CMSC734 - Information Visualization.Yes, this is currently true. Is it a bug or is it a feature? Let's discuss. :) First, a bit of context: I arrived in January 2012 so my new grad course, CMSC838f 'Tangible Interactive Computing' (e.g., Fall 2012 offering), is not yet a qualifying course. I plan to make it one in the future. You can also take CMSC434 'Intro to HCI' and use this towards your MS coursework requirement (though not your PhD, see above).
Second, I realize that some HCI graduate students may worry about taking so many core CS classes but if you are a "technical" HCI researcher (that is, you build systems), then I think that computer vision, machine learning, computer graphics, and other sub-disciplines of CS are extremely important to your education. Even if you are not a "technical" HCI researcher, you could still benefit from taking machine learning and statistics classes as these are integral to analysis (and we do a lot of data analysis in HCI).
When I asked some HCIL graduate students about their thoughts on this issue, I received a range of responses (though most were positive). I lightly edited the quotes below for anonymity and clarity. Let's go through some of them one-by-one. The first student emphasized the importance of a strong CS foundation to many HCI problems:
I don't see it as much of a problem. You just have to plan ahead and be a little careful unless you want to take extra classes. It would be nice if HCI wasn't lumped with SE & PL, but having that breadth helps ensure that you're doing relevant HCI work that solves real problems using core CS principles.
For example, another HCI student and I did a streaming database clustering and visualization tool for medical records as part of the 724 database course, which leveraged state-of-the-art DB work and novel visualizations to solve a real problem. Taking 711 on computer networks also helped prepare me for the first publication I got as part of Ben's 734 InfoVis course, which was on visualizing computer network traffic.
Another relevant HCI course is 634 on empirical research methods. Depending on who's teaching it it can have different flavors, but still quite relevant.
Despite this, you can take or audit any classes in other areas to supplement the CS courses. I audited one in sociology and part of one in art & design. You just can't count them for the core PhD requirements, only as electives. I did my required courses in four semesters, so there was plenty of time to take others if I wanted to.
Similarly, another CS graduate student in the HCIL said:
First of all, I had exactly the same concern during my first year of PhD. I finished my undergrad and master program in industrial design, so the CS requirements were intimidating and seemed irrelevant to me. I had seriously considered other programs having more HCI-focused courses. But now, I am confident that I made the right decision.So, to summarize the sentiments above, our CS courses can complement and augment your HCI PhD--this is the ideal, really. And, I think, for many of you, it's the right approach especially if you are interested in more technically-oriented HCI problems that require design, engineering, and programming (which is how, for the most part, I've built my career).
Introductory CS grad courses seem to be beneficial to HCI researchers. Ironically, to me the most inspiring courses were 'Computational Geometry', 'Socio-Technical Graph Theory' and 'Machine Learning', which are 7-800 level theory courses taught only in CS programs. Although I might not create a novel convex hull algorithm in future, understanding the Duality concept taught in computational geometry changed the way I approached problems and thought about underlying interaction models. In the socio-technical graph theory course as well, we spent months attempting to understand why various graph random walk techniques (such as Google's PageRank) could solve many network problems, and it changed my understanding of the Internet. In my opinion, one can acquire inspirational power only when it reaches a certain theoretical depth.
With that said, I certainly am interested in problems that don't require building new HCI systems/artifacts, for example, my CHI2010 paper The Design of Eco-Feedback Technology or my more recent CHI2013 paper Mind the Theoretical Gap: Interpreting, Using, and Developing Behavioral Theory in HCI Research. These papers do not offer new, novel HCI artifacts or interactions and are, instead, more reflective essays on the HCI design and evaluation process, especially for behavior-change technology (another topic I'm interested in). So, if you are less interested in building systems and more interested in design, the design process, or in studying existing systems (e.g., Twitter, Facebook), the iSchool path may be more appropriate (and I carry an affiliate appointment in the iSchool so I can still advise you). I think if you considering one path or another, you should email and talk to various HCI faculty in CS and the iSchool so we can discuss the various tradeoffs of each path and personalize our advice to your particular situation. Indeed, one student emphasizes that he found the iSchool HCI path more appropriate for him:
I started at UMD as CS Ph.D. student but switched to the HCIM program because I couldn't participate in HCI to the extent that I wanted, in the way that I wanted while in the CS program. The program was very rigid and didn't provide much freedom to take the classes about HCI that I was hoping to find. It didn't cover much of the breadth that I feel are an important part of HCI. It's very CS, which makes perfect sense, since it's an advanced program for CS. That's great, but I was looking for HCI, not CS. It was hard for me to find that in the CS department. I felt it was hard to do much beyond the particular flavor of CS HCI that's achievable while satisfying the Ph.D. requirements (without taking additional courses).I think this quote reflects a totally legitimate experience of an HCI grad student not finding the right fit in CS. This, of course, could happen anywhere but the nice thing is, the student was able to switch over to the iSchool's HCIM program and stay at UMD where, I think, the student is more satisfied (I doubly hope so because I'm working with him!).
The core classes in CS I took were computational linguistics (CL) and computational geometry (CG) classes (pretty standard fare for CS HCI folks, it seems). These were good classes, but mostly I feel that I didn't gain as much from them as I could have elsewhere. I had taken a handful of machine learning and artificial intelligence courses as an undergrad, so I found limited value in the CL course. I liked CG mostly for the ways of thinking it required (e.g., duality), but didn't take much beyond that. I also feel that an important point of consideration is not just if HCI classes are available, but which HCI classes are available. I feel it's important to consider how one conceptualizes "HCI class". For example, I don't have a very strong interest to take Information Visualization, even though it falls within the UMD rubric of HCI classes, and I'm sure it's a great class. But it's not quite what I'm looking for in an HCI class, myself. When I was a CS student, I assumed I should take it because it's one of the few HCI class available, and I want to be an HCI researcher.
I must say that despite my strong, particular feelings that the CS Ph.D. program was too rigid, I feel that the HCI folks I have and continue to communicate with that are affiliated with CS are utterly wonderful.
Other students emphasize that it's not just what you learn in the classroom that affects your HCI educational experience:
In my case, I appreciated the fact that I had to take courses that are not related to HCI. It helped me to figure out what part of CS I like and what I don't like. For example, this system helped me to figure out I am totally not an algorithms guy (I don't really care about running time of the code.) And like others said, you learn things you can apply to HCI research.And:
In terms of learning how to conduct HCI research, it is not the types of courses offered that matters, but the number of courses you have to take... You learn what you need for HCI research through doing research (reading papers, reading books, coding and writing papers.) Even InfoVis, one of the few HCI courses, that I took wasn't that helpful for conducting HCI research since it's so unrelated to what I currently do. However, I believe number of courses you have to take matters and 9 + 1 courses are a little bit too much for doing research.
I wish I could have taken more seminars (usually 800 level) like Future of HCI, I think I learned more about how to be a PhD from those, than from the 600 levels I took. Finally on the electives, I tried taking courses from other departments, but after talking about it with my advisor, he recommended that I not do it. In conclusion, I think that the current coursework requirements are too restrictive and that the offering in CS for an HCI student is not that broad.I hope this helps you think through your own grad school experience for an HCI PhD. If you want to chat with me about this (whether you are a prospective student or already a UMD grad), please email me.
On the flip side, the good thing about our coursework requirements is that we don't have to do quals. I'm immensely grateful for that, because I think it makes way more sense to take exams at the end of each course (the Maryland way), than having to study for several months for an exam that I would have probably failed.
Despite these inconveniences, the best things I learned in my PhD weren't taught in a classroom, I learned them working with the great people at the HCIL, and being able to join this multidisciplinary team of awesome people is a more than good enough reason to join UMD. ;)
I just received an email that said you are my "temporary" advisor, what does this mean?
I'm a first year PhD, what should I be doing?
Therefore, your goal should be to start doing research (even if it's not what's going to end up being your thesis) as soon as possible. You should aim to submit a conference paper some time during your first year. However, that doesn't give much time: conference deadlines are right around the corner, so you need to be very self-motivated and work quickly! By your third year, you should be set to publish two-to-three good papers a year (not all first-authored), which should continue until graduation. Obviously, these are just general heuristics and not steadfast rules; I appreciate quality over quantity but, at the same time, this general guideline should give you a sense of what it takes to be a successful graduate student.
Do you have any other tips for first years?
Go to as many seminars as possible, even if you don't understand everything. In fact, not understanding everything is going to be the name of the game from here on out, so get used to it :). Meet with visitors in your area. I mentioned networking before: don't underestimate its importance.
To help with the previous points, you should get on relevant mailing lists. Talk to individual faculty about what might be relevant. If you're interested in HCI, I suggest signing up for the hcil mailing list (hcil@cs.umd.edu). See also: http://hcil.cs.umd.edu
Similarly, do not go overboard trying to get all your required courses out of the way as quickly as possible. Two courses per semester, plus a TA (if you have a TA-ship) is enough to take a huge amount of time. Two courses + a seminar is also reasonable. Three courses will leave you little to no time to get any real work done.
I would suggest spending your first year of courses taking things that will help you in and around your research area, and getting breadth in your second year (i.e., taking all those "other" courses that you really don't want to take).
I'm mentioning courses so much because that's what I always get asked about, not because it's important. You should do well in things that matter and learn to not waste time on things that don't. (Here, "matter" means either "is relevant" or "is just plain interesting to you." Eg., if you want to do computer architecture, then surely a computer architecture course matters... but an AI course might also matter if you just plain find it interesting.)
The best two ways I know to get involved in research are to take classes with course projects and to just talk to faculty members. (Often it works well to do these two simultaneously, with some faculty member who is teaching a project-based course that you're taking.) Also, don't forget that faculty members TALK to each other. So if you want to work with faculty member X and there's a reasonable chance that X is friends with Y, then don't completely blow off Y's class. If I get an email from a student asking about research opportunities, I almost always talk to faculty who have interacted with them. But of course everything in moderation.
Get to be friends with current students. They know a lot more about many things than faculty members. In particular, if you want to know if X is a good teacher, I probably either don't know or don't want to say... but your fellow students will be happy to tell you :).
General Grad Student Advice
Online Advice Pages for Getting a PhD in CS
Undergraduate Research
If you're interested in working with me in particular, the first thing you need to do is email me with a personal statement of interest (e.g.,What are you passionate about? Why do you want to do research? Why are you emailing me in particular?) along with a resume and an unofficial transcript. If you have a personal website or a portfolio of materials online, please point me to those as well. I will look everything over and get back to you (likely within one-to-three days--if you haven't heard from me after three days, email me again!). After I review your materials, I may ask for one or two professional references that I can contact as well (these could be a professor, a lecturer, or even a former high school teacher--the latter only seems to make sense if you're a freshman/sophomore).
Generally, my group is most interested in students that can work with us over multiple semesters (to amortize startup/ramp-up costs). However, we certainly have had success working with some students for only one semester or one summer (if your time is limited, summers are preferable because of fewer distractions on your time). Moreover, I generally do not offer paid undergrad RAships until the student has demonstrated their potential by either completing a CMSC499 (or equivalant) with me or volunteering in my lab for ~one semester.
What do undergrad researchers do in your lab?
In any case, I truly believe--and have observed firsthand--that undergraduate students can significantly and positively impact a research project. In my academic career, I have worked with approximately 20 undergraduate students and published with 14 of them.
What are some of the characteristics of a successful undergrad researcher?
I have seen many undergraduate students fail at research simply because they vastly underestimated the amount of time and effort required to be successful. Research is hard. You will not succeed without a few long nights in the lab hacking on your software/hardware project trying to make a deadline. If this intrigues you. If you want to be part of something bigger than yourself. If you want to be involved in solving high-impact research problems using HCI and computer science, then please contact me! (And by the way, these are many of the same characteristics of a successful graduate student). :)
Oh, and if you're not in computer science. That's totally fine! I have successfully worked with undergraduate students in mechanical engineering, psychology, chemical engineering, design, math, physics, and others.
I would like to do an independent research project (CMSC499) with you, what do I need to do?
To learn more about CMSC499 and CMSC498A, see http://undergrad.cs.umd.edu/research-professorial-faculty-cmsc499a.
Misc
If you'd like to become more involved, consider joining our HCIL mailing list, attending our Thursday "Brown Bag Lunches" from 12:30-1:30 in the lab, or even joining our "HCIL Play" mailing list for fun activities that HCIL members participate in (e.g., going to movies, concerts, or trips downtown to DC). For example, students recently organized a DC cherry blossom cruise.
I sent you an email and you did not respond, what's the deal?!
If you don't hear from me within two days, please don't hesitate to send me a follow-up email (or even two) that contains your original email plus a "ping" note or something similar (so that I realize this is an additional attempt to contact me). I know this is less than ideal (and, perhaps, even sounds a bit pretentious) but I have recently crossed the email inbox threshold where I am literally drowning in email. According to my March 2013 GMail Meter statistics, I receive between 140-280 emails a day (avg=~160). I've found that it's not possible for me to process all of these emails and get my other work done each day. Hence, I suggest simply pinging me again with a friendly follow-up if I don't respond to your original message. :)
Would you write me a letter of recommendation?
I'm a UMD student & I would like to work with you as a funded research assistant, what should I do?
To become funded, you must demonstrate a serious commitment and passion for research, critical thinking and brainstorming skills, and a high degree of independence and responsibility. I am also attracted to students who have unique skills, who have taken different paths in life, and who could generally enrich my group with new perspectives/experiences. My group is extremeley design-oriented--we invent, explore, iterate, and evaluate--so design/implementation skills are appreciated.
I'm an undergraduate student at a university outside the US, can I intern at your lab this summer?
Dear Professor Froehlich, I am writing to you after having read through your research. I am particularly fascinated by <some project> and <some project> and share your interest in developing interactive technology that is valuable to society on the whole. I am an undergraduate student pursuing a degree in <some tech field> at <some university>, the top <department/university/institution> in my country. I would like to apply to work as a summer intern at your lab for the summer of 2015 (June and July), if possible. <more paragraphs about candidate's background and an attached resume>While I am grateful to be in a position to receive such interest, it is simply not tenable to thoroughly vet each of these applications. Moreover, many of these students want to come to the US for only a short period (2 - 3 months). It would be incredibly challenging for even a 2nd or 3rd year graduate student with research experience to accomplish publishable research in that time (especially starting from zero) much less an undergraduate student with little research experience (not to mention the transactional costs of acclimating to a new lab, working with new people, adapting to a new culture). So, in short, I either do not respond to these requests directly (my apologies, I simply receive too many emails) or respond with a polite "No." I realize this means that I am likely missing out on working with and learning from some truly talented and exceptional students but the time and effort required to take such a risk outweighs the benefits for me (at least at this stage in my career). There has been only one exception to the above and that was for an extraordinary student whom I had previously met at a conference, had already first-authored a research paper published at a top venue, had incredible letters of recommendation, and was attending and excelling at one of his country's top universities. He is now a grad student at MIT.
As an HCI PhD student, what areas should I focus on?
If you are a CS graduate student, I would try to take as many machine learning, statistics, and computer vision courses as possible. Whether iSchool or CS, I would try to take at least an "Intro to HCI" course (if you have not as an undergrad), a graphic design or interaction design (IxD) course, and a research methods course (the more, the better). I'll close my answer by emphasizing that I truly believe that the best way to learn is by doing. So, get out there and try!
Acknowledgments