CS Research 101

Welcome to CS Research 101. This is a short and mildly opinionated course coordinated by Neeldhara Misra and Shashank Srikant intended for anyone curious about getting started with research in Computer Science (CS). While we have designed this course with undergraduates in mind, it should be accessible to anyone who is curious. Further, while sections 1 and 3 of this course largely discuss CS-specific information, section 2 applies more generally to anyone considering starting off with research, even those not in CS.

Lecture videos and slides used in the October 2022 edition of this course have been linked below.

What is this course?

This courses introduces participants to what research in computer science (CS) entails.
It is targeted at those who are curious about getting started with research in CS.
The course aims to deliver concrete information about the various areas of research in CS, the general process of conducting research in CS, its significance, the potential costs involved in being trained to do research, potential career paths after acquiring research skills, and practical guidance on how to begin engaging in research.

It highlights the importance of “softer” skills like taking initiative, cogently communicating your work, managing course work, working with a faculty mentor, and recognizing imposter syndrome.
It emphasizes how being bothered by a problem, curiosity, persistence, and failure are all synonymous when doing research and are central to research.
It contrasts these ideas with the notion of optimizing for a “good CV,” doing “impactful projects”, or merely having publications to show for each completed project.

The course will nudge participants to introspect whether they enjoy problem-solving and research, and provide some concrete steps for their discovery. This course will not provide instructions on applying successfully to advanced degrees. Rather, it aims to introduce participants to the realities of doing research, which should in turn help them gauge their preparedness for graduate school or a career in research. This course also does not focus on research methods, and will not get into the details of specific technical skills needed in the different areas of CS research.

Why this course?

When starting off their undergrad degrees in science and engineering, most are fueled by an idealism to do great science. However, no formal resources tell us what research—an established path to great science and engineering—is all about, and how one can get started. As a result, many don’t end up figuring out these details, have no idea what the journey promises to offer, and as a consequence, move on to other well-documented jobs and careers. While there’s nothing wrong with taking up well-documented careers, academia and scholarship loses out on quality talent.

In another extreme, among those few who are exposed to the idea of research while still in undergrad, there exists a frenzy to apply to graduate programs by the end of undergrad. And to achieve this, students tend to optimize working on projects which will land them ‘the best possible’ publications and letters from professors. While few successfully discover their interests this way, it generally fails as an approach.

This course aims to fast-track the process of learning more about research-first graduate programs and/or jobs. It will nudge you to introspect whether problem solving and research is something you will enjoy, and provide some concrete steps for your discovery. It is not designed to merely provide instructions on applying successfully to graduate programs or advanced degrees. Rather, it aims to introduce you to the realities of doing research, which should in turn help you gauge your preparedness for graduate school or a career in research.

Course structure

The course has the following three sections, with two modules in each section:

  1. The first section focuses on the various motivations for pursuing research projects, the wrong reasons to take up research, exposure to different research-related careers available.

  2. The second section is about the mechanics of getting started with your first research(-ish) project. We introduce some common set of skills every researcher benefits from—taking initiative, reading and writing code, knowing domain-specific tools, parsing papers, communicating over email, and presenting your work. Also learn about the balances you will likely have to strike as you go along, and prepare with us for battles like imposter syndrome or loneliness you may face.

  3. The third section covers exploring and approaching research opportunities after having cleared the first two sections. We will have pointers to generic opportunities that you can consider applying to. We will also leave you with suggestions for how to level up from after your first research apprenticeship, including information about preparing for graduate school, and discussions about relevant career options within and beyond academia.

In the 2022 offering, you can expect these opportunities to be curated exclusively for students at IIT Gandhinagar taking this course.

Key lessons from this course

  • Your goal should be to shed a romantic notion of research which you may have picked up–of people sitting at desks thinking about a topic or scribbling some equations all day. Rather, you should work towards picking up concrete, core technical skills and using them to demonstrate your knowledge in a topic.

  • Knowing about a topic by having taken advanced courses, having read blogs, seen videos, discussed with peers, is of little consequence if you cannot demonstrate that knowledge concretely: by either having implemented an idea, written down a proof, built a system, etc. Consuming knowledge is almost free of cost. Generating some simple ideas based on that acquired knowledge is also relatively easy—most of us can come up with simple ideas. Executing those ideas, no matter how simple they are, and translating them into reality–that is the essence of research.

  • Strive to identify a technical problem or area that bothers you. Pursuing research requires you to take initiative: of finding problems that bother you and applying tools that you know which can solve those problems. It doesn’t matter how simple or complex the problem is: what matters is that you identified and solved a problem. It’s possible you won’t be involved in identifying a problem when you start your journey, but that should be a goal you guide yourself towards.

  • Only once you have some concrete notion of having done research, consider next steps like a PhD. Until then, single-mindedly focus on acquiring this experience of concretely being involved in and doing research. Worrying about details like writing a statement of purpose, which school/professor to apply, etc. are secondary until you have some problem space which you have identified in which you have concrete experience. Such concrete experience is what will help you identify other researchers in this space who do related work, which in turn will inform your next steps like what to write in an application, whom to work with, etc.

Logistics

Duration

The course is ideally executed over a week, dedicating one day per module with a break after the fifth one for completing the main assesment. The materials in each module would require two to three hours of engagement, including in-class discussions and pre-class homework/readings.

When?

A first edition of this course will be conducted between 31 October 2022 to 5 November 2022 as a short course at IIT Gandhinagar, from 1830 to 2030 hours, India Standard Time.

The course will be virtual, with discussions organized over Zoom/Webex. While the content is all available on this course page, we will use the lectures to facilitate a discussion around the content in each corresponding module.

Please sign up below to register for the course and to receive relevant web meeting links. We will make the recorded sessions of the discussions in each module available on Youtube.

Assessment

Pre-class reading: Each lecture will have a recommended short video or text we expect students to watch/read before attending class.

Final assessment: The final assessment will involve identifying a project relevant to your interest and skills, and drafting an email expressing your interest in getting started with it.

Modules

Topics Resources
Section 1: Motivation::Module 1 - Why research? [Notes], [Survey], [Youtube], [Slides]
Section 1: Motivation::Module 2 - The fundamentals [Notes], [Reading: Taking initative], [Youtube], [Slides]
Section 2: Mechanics::Module 3 - Skills 1 [Notes], [Reading: Working with a professor], [Youtube], [Slides], [Exercise]
Section 2: Mechanics::Module 4 - Skills 2 [Notes], [Reading: Writing emails], [Youtube], [Slides]
Section 3: Begin journey::Module 5 - Next steps [Notes], [Reading: CS PhD application FAQs], [Youtube], [Slides]
Section 3: Begin journey::Module 6 - Resources [Notes]

Acknowledgement

Thanks to the following for their very helpful inputs at different stages of developing this material.

Srishti Yadav , Jeevanjyoti Chakraborty , Anna Ivanova, Vivek Seshadri, Kaveri Iychettira, Greta Tuckute, Aruna Sankaranarayanan, Aaditeshwar Seth, José Cambronero, Erik Hemberg, Una-May O’Reilly

Thanks to the many researchers from different areas in CS who shared their very interesting journeys: of having switched fields midway, finding their calling in research, not initially enjoying research (!), and more.

Thanks to the various academics who have put out very helpful webpages on topics discussed in this course: doing research as an undergraduate, understanding how to get started with research, navigating the grad school application process, etc. We generously reference the material they have put out.

Thanks to the staff from NPTEL and IIT Gandhinagar for help in organizing this course.

Thanks to Twitter for introducing the instructors of this course to each other!