June 20, 2017
Dear Master's student,
This is a dump of my thoughts on setting up good expectations for your Master's degree in computer science.
Why am I writing this post?
Many international students appear to be under high levels of undue pressure. In the two years, that I have been teaching in the Computer Science Department at Stony Brook University, I have seen many international students optimize their MS program too much for short term goals (e.g., landing an internship, graduating within three semesters etc). Having been through this process myself I know firsthand some of the financial and time pressures behind these choices. However, I also see the bad effects of these choices.
- Pressure – Under pressure students seem to cut corners, in some cases even going as far as academic dishonesty. In many cases this happens even though the students seem well motivated, technically strong, and appear genuinely interested in learning and developing themselves.
- Long term goals – Many are not setting themselves up for longer term success. Despite working hard and obtaining technical skills, some don't seem to believe that they are going to be strong, impactful contributors wherever they go. Somehow they seem to limit their ambitions based on their current levels of knowledge and skill sets.
I have been through a not so great Master's experience myself because of similar bad choices. In retrospect, I wished I had paid attention to my long term goals more. Some caveats later.
Setting up expectations for your Master's degree
A Master's program in a top department with many wonderful computer scientists and teachers is an incredible opportunity. Aim big. Set yourselves a high standard for learning excellence. This is not the same as setting a goal of 4.0 GPA.
1. Forget grades (but not entirely).
Grades exist. They exist for many reasons, the most ideal of which is to provide an assessment of how well you have learnt the subject material in the courses. Targeting a high GPA at the cost of everything else isn’t good. If your semester GPA is 3.0 then you are doing something bad. If you are at 4.0 then you must be learning something. If you are in between there can be a cause for concern only if you aren’t learning or making progress in any of the areas that you care about. You should be doing well in some courses but not necessarily in all. Don’t beat yourself up for low grades in a course or two.
2. Take a broader view of the classes.
Use your courses to learn new material beyond what was taught in class. Seek out the opinions of the instructors. These are leading researchers who have worked on important problems in the field for a long time. The specific technical content in the course material is absolutely important. But go beyond. Learn what makes for a good technique, algorithm, system, design, user interface etc. Learn algorithmic rigor, system’s performance focus, AI/ML’s problem modeling/formulations, HCI’s user focus etc. Learn what to worry about as a practitioner in the field. Learn the ideas and where they come from. Learn the history of the field, its language, and its abstractions. Learn to view concrete problems with different lenses.
Train yourself to use ideas learnt from related fields. For instance if you learnt a formalism in AI, ask if that can be used for an NLP problem. Use what opportunities you have within the course structure to communicate your ideas in the language of the field. These skills can help distinguish yourself and help you make impactful contributions.
3. It is not only what you learn now that matters. Learning how to learn matters much more.
What you learn now will most likely become outdated in a few years. Most sub-fields within CS change constantly. Some sub-fields (e.g., Machine learning) reinvent themselves every few years. To succeed you will need the basic foundations but more importantly, you will need to develop skills, and confidence to learn new material on your own. You should train yourself on how to learn. I am not recommending any specific learning strategy or theory here — I know nothing about this area. What I am recommending is setting some learning goals and using them as training for independent learning. Here is one suggestion: Set small technical learning goals within the scope of your courses. For example, pick a topic and write a summary of the topic based on what you have learnt. You may have seen many instances of these already. See here for an example from Chetan Naik, a recent MS graduate from our department. If going public is an overkill, maintain private notes. I am old fashioned. I do handwritten notes. The main point is to become confident in your own abilities to master a new topic in a relatively short amount of time. This will give the confidence to take on new challenges and not feel limited by your current knowledge or expertise.
4. Go slow.
Spend four semesters here rather than three. You may not be able afford the extra semester. Your current financial circumstances and short term outlook may make it painful to take an additional semester. If you took a long term view, an extra semester you invest in now can get you a better start for your career and costs do amortize over time.
With three semesters you don’t get the flexibility to choose courses you like and end up having to take too many courses. Even if you are interested in all four courses you take in a semester, it is difficult to spend time on all four. Not saying this is impossible, just hard. One question I often hear is "What is the course structure?" which is polite-speak for "How much work is this course?". This is an important question to ask but this comes about mostly because students want to be out in three semesters. The registration requirements for international students (12 credits per semester for the first year) also adds to this problem.
Some students are interested in a PhD but are unsure if they can succeed. If you are one of these students, definitely consider staying longer. Ask around for research opportunities. Work out a plan for research (could be a Thesis option, or an independent study) and pick topics that you can hedge. That is if you decide later that PhD is not for you, your thesis topic should be such that industries interviewing you should view your work favorably and see value in it.
4. Make a plan.
Make a plan for what it is that you want to accomplish. I have come to believe that for almost anything of importance having a plan helps, at least in the placebo sense. Take some time to reflect on why you want a Master’s degree. Identify specific goals: You may want to deepen your foundations, broaden your skills, build expertise in a specific area, or prepare for a future PhD. Incorporate what you have learnt since arriving here to adjust your goals. Pick courses that will help you accomplish your goals.
6. Talk to faculty, and senior MS/PhD students about your plan.
Once you have a plan run it by some faculty member whose area fits with your interests. Talk to any faculty member who is willing to talk to you. Find senior Master’s students, PhD students and ask them for inputs. Most people like to give advice and will be happy to share lessons from their experiences. Some even document their experiences with specific tips. For example see MS in Stony Brook a collection of useful tiples, from one of our outstanding alums Vivek Kulkarni.
7. Cheating is unethical. It is also not a good choice.
Whatever the reasons or circumstances, don’t cut corners. Academic dishonesty is unethical and is not a good bargain in any sense. If you see yourself getting into a difficult situation, talk to the instructor, in person, if possible. Instructors are often willing to accept late submissions with some penalties. A few points in one homework, or a drop of one point in a grade means very little in the long run.
Sometimes it may not be clear if a certain type of collaboration is allowed for a particular assignment. Please check with the faculty when in doubt. Some preaching now: Look back at your plan. Check in with your big goals. Cheating won’t help you get there.
8. Enjoy your time here and be an active member in your department.
A Master’s degree, especially in three semesters, can be quite tight in terms of schedule. Find ways to mingle with the department at large. Go to talks, research group meetings, social activities, and any activity where you can participate. Use all opportunities to meet people, network, and grow both as a computer scientist as well as a member of the larger CS community. I strongly believe that a large part of my CS attitude — what I find useful, interesting, and what I think my responsibilities are — come from the academic institutions that I was a part of and from the people that I met. Being in company of a diverse group of hardworking, successful people is enriching in many ways. I, for one, learnt to enjoy many more things in life (wine, cheese, cooking, skiing, and running). I set higher expectations for myself, often inspired by just being around some wonderful people.
9. There are many roads to a good career.
Whatever stage of life you are in, the Master’s is a reset button. It helps you launch on a path. Prepare for a long impactful career, rather than for that first job you may want to land.
10. In short, be intentional
Set goals for your Master’s program and try your best to meet them.
- It has been a long, long time since I finished my Master’s. Also I always had a research and academia oriented outlook. So this post can read preachy, vague and out-of-touch with your circumstances.
- This post is mainly aimed at international students but some of this might apply to domestic students as well.
- These are my personal opinions and suggestions and should not be taken as official policy or guidance from the department or the university.
- This is a not a detailed how-to-guide by any means. It is vague. The intention is to prod you to think.
- I am still new to teaching and advising students. My thoughts are based on my limited view over the last two years at Stony Book University. Take this with an appropriately sized pinch of salt. I plan to do a follow up with more inputs from a diverse group of people, including grad students and other faculty.
If there is one thing that I wanted this post to do, it is to get you, a prospective/current MS student, to make a plan for your Master’s overall. Set some goals for what you want to learn from each course that you take. Set good expectations and try your best to meet them.