4

I am in High-School but want to pursue research in Computer Science, but as you know High-School usually does not offer any such options or tasks.

So I want to explore avenues where I can get these options and tasks as I am very very interested and really want to do it.

I would also like to say that I have good-strong knowledge of C++, C and assorted APIs from that (3 years programming for 5+ hours daily). So I wouldn't call my self too new to programming and think I can handle programming and so on.

Now, these are my questions:

  1. How can I get involved in research?

  2. How can I contact academics to ask them for research position or even an intern position in research for that matter without coming across as a "waste of time"?

  • 9
    The fact that you know C++ programming does not qualify you for research, since you lack the necessary theoretical and mathematical background for research. So, first go to the university, get the necessary knowledge and take it from there. Life is not a race. – Alexandros Apr 1 '15 at 19:02
  • 2
    I know of universities that have outreach programs that support internships for high school students. Maybe check with the CS departments in your local universities? – Austin Henley Apr 1 '15 at 19:18
  • 2
    @Alexandros I am not saying anything like that, I am certainly not implying programming qualifies me for research just that I am fine with even doing "the dirty work" of programming and implementing techniques and so on during research role if needed. Next, I agree "Life is not a race" but I love CS and it would be brilliant to do research and spend time around those who also love it just as much. – LogicProgrammer Apr 1 '15 at 19:51
  • 3
    Research is a very strong word. I would suggest to start looking at algorithm contests (IOI, ACM-ICPC(university level, but you can practice), codeforces, etc), and get involved there. Maybe you can contact some programming contest team in a local university and join them to learn, you will get a lot of experience in basic CS. If you get notorious on those contests or in those study circles, you will be given lots of opportunities. Good luck! – chubakueno Apr 2 '15 at 1:39
  • 3
    @Alexandros In my opinion, your comment is overly harsh. Instead, I think it would be better to suggest learning opportunities that take him in the direction of research, at least to get a taste. Example: science fair projects. – MrMeritology Apr 2 '15 at 11:54
15

Good on you!

I have a relatively simple suggestion: do a replication study. First, find a collaborator -- a fellow high school student or college student of similar skill and experience. You'll learn more in a team than doing it alone. Second, read a dozen or so research papers (probably conference papers) in the field or sub-field that interests you the most. Pick one, preferably the simplest one you can find. Your goal is to replicate the methods as described in the paper and compare your results to theirs. (Don't pick one where you have access to their code.) Once you have a paper picked out (or a few), recruit an adviser/mentor -- either a college professor or an experienced researcher. You'll want to meet with your adviser/mentor weekly to talk about progress and problems you encounter along the way. Mostly, this weekly meeting holds you and your partner accountable for progress.

In my field (Computational Social Science) there are many simulation models that are simple enough to be replicated from their specification. This varies widely in subfields of Computer Science, so your mileage may vary.

The point to all this is to get you an experience in the realm of research without requiring that you first go through all the preliminaries. By focusing on replicating one paper, you only need to understand the material and methods in this one paper. You aren't trying to break any new ground. Instead, you are following in the footsteps of other researchers. If they have done their job well, then you should be able to replicate their results. Replication is a valuable scientific endeavor in itself.

  • When you mean recruit, do you literally mean pay them? Or what do you mean? – LogicProgrammer Apr 2 '15 at 15:42
  • @RohanVijjhalwar Sorry for the ambiguity. No, you shouldn't pay the adviser/mentor, or even suggest it. I mean that you should search for good candidates, initiate contact, propose the arrangement, and offer a description of the benefits to the adviser/mentor. By taking the lead in this process, you are showing the adviser/mentor that you have maturity and initiative. – MrMeritology Apr 2 '15 at 19:06
  • Yours answers are brilliant - just what I am looking for - :D +1 for your answer - sorry to bother you again but as I am not an involved in academia what is considered a good candidate? – LogicProgrammer Apr 2 '15 at 19:52
  • @RohanVijjhalwar No worries. I'm happy to help. What you should look for in an adviser/mentor is someone who has some interest/skill in the topic. But, MOST OF ALL, look for someone who loves mentoring and working with up-and-coming students of any age. Start local. Ask for introductions to good candidates. This is called "networking" (professional-style). "I'm looking for a mentor for XYZ project. Do you know anyone who might be interested in working with a young team (me and my colleague)?" – MrMeritology Apr 2 '15 at 20:59
  • 1
    @FaheemMitha -- generally, experienced people who mentor younger or inexperienced people are motivated by something other than money. They are motivated by altruism in some form. Sometimes, they were mentored themselves when they were younger, and they might want to give back to society to return the favor. There's also a thrill that some people get when they help someone get "a leg up", especially if that student is eager and enterprising. – MrMeritology May 19 '15 at 23:36
3

This is a tough question, you sound like you're very interested but I'd seriously question your familiarity with the body of computer science to be able to meaningfully contribute to a research project. A better option might be to engage in reading publications and identifying areas of knowledge gaps, and work on rectifying those in preparation for a career in research.

At the same time, I really don't want to discourage your enthusiasm. If there is an institute that engages in research in your area, you might want to check out their website and see what types of research the professors are engaged in. Start off by reading about those fields and , once you're comfortable, reach out to the professor with questions and let them know you're interested in research. Start there and see where it goes!

3

I am in a math department and many math departments have "math circles" or other activities that reach out to high schoolers to show them what mathematics at a research level is, provide them with teaser problems that show some deeper structure that you may find interesting and that can guide you towards current research. You have to expect that it takes a few years to get to where research really is, but at least it provides you with an avenue to talk to professors on a regular basis and get exposed to research.

Let me just assume that computer science departments have similar avenues. Find the closest university to where you live and check its computer science department's web site for outreach activities, or email their undergraduate coordinator for more information. They may have something like our math circles.

2

As you are in very early stages of your probable research career, one thing I want to say is do shopping. Try to consciously ask yourself and others as to exactly what research you want to do and more importantly why. Do not be afraid to drop ideas or say no to potential supervisors or even current supervisors in the middle of your research work if it does not appeal and/or interest you. This is much easier and crucial at this stage of your career to find the right area if you want to flourish and more importantly enjoy your research in the long term.

1

A researcher is supposed to have a deep understanding of his/her field and a solid grasp of the basics. Unfortunately to even begin to understand stuff at that level, we need a decent high school level general science background. Not to mention that Computer Science is quite interdisciplinary - it includes topics from physics, mathematics, statistics and lots of other knowledge areas.

Coding is a skill, it enables you to do your work quicker - it helps you do research but is very rarely the research itself. Even " the dirty work of coding" needs some basic background knowledge. If you know how to make rubber, doesn't mean you can make a tire without knowing what a tire is ! Making a tire requires knowledge of things like heat tolerances, load capacity, strength etc.

BUT this is not to discourage you, Absolutely not! Rather to know where you stand and what to expect and how to approach people for opportunities.

I have a few suggestions -

  1. Look for freelancing programming opportunities - there quite a few websites _ I personally know of freelancer.com and fiver.com. Here you can work on programming assignments set by people and get paid for it. This sets you up for the next level - why ? If you do a good enough job that people pay you for, then many more will take you seriously ...

  2. Now for pure research oriented opportunities - The best idea is to talk to people who are conducting undergraduate research - why ? students who are say in first or second year of their undergraduate programs would have more or less the same level of knowledge you have. Plus if you actually worked doing freelancing stuff or some-other paid or otherwise serious opportunity, this will give you an extremely positive point to negotiate an opportunity.

  • Great answer! It did not discourage me could you tell me if I could be at-least doing a internship in a research environment - maybe university? Would a professor teach me anything or is that something too far? – LogicProgrammer Apr 1 '15 at 20:44
  • 1
    @RohanVijjhalwar One of the biggest differences between life as a high school student and life as a graduate student researcher is the extent to which one learns by being taught as distinct from learning by reading, studying, experimenting, and thinking without anyone teaching you. – Patricia Shanahan Apr 2 '15 at 13:10
1

Contact and network with people! These two things are key.

From there, prove to them that you are experienced. I did this by showing them my Github & Bitbucket, my iOS apps, my web apps, my websites, compilers/search engines, and my hackathon experiences.

This is what got me my research opportunity at Stanford in Computer Science.

Yours truly,

High School Junior working on Computer Science Research with PhDs at Stanford University this summer

Good luck!

0

I'm not a CS person (policy and politics PhD) but one thing that has not been discussed: Develop a domain interest by reviewing research on a particular topic.

Are you interested in a particular facet of CS? Is there an application of CS to a field you are interested in? Or is there a research questions that you want to apply CS methods to?

Once you read into the literature a bit (https://scholar.google.com is a good place to start) then you can find CS programs and professors that match with your interested -- and once you've done this, you can contact professors in the subfield of interest to volunteer your skills and ask domain-specific questions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.