Work on cool projects

A few days ago, I came up with a piece of advice: join the club that does stuff. Don’t waste your time with the “prestigious” society (unless it’s also does cool stuff). What stuff? Stuff that expands your skill set or helps your create something. The example I gave was to join a club that builds programs rather than a programming honor society.

I think it’s a good piece of advice. Why?

  1. You gain skills AND connections. The skills are something that you won’t gain in the average prestigious group, and you get the added bonus connections who are already working on the things you would like to do.
  2. You are already doing interesting things. People who do interesting things tend to gain power, but people with power might or might not start doing interesting things. If you want to do interesting things, you may as well cut the middle man and get started now.
  3. You build your resume with substantial projects. Typically, people say something about prestigious societies looking good on your resume. Do resume-builders really help your resume? It doesn’t seem to me to be true now, and I’m not sure if it ever was. It seems to me that it’s something that took hold as a results of college applications. Now, in college admissions and in job applications, taking the initiative to make substantial contributions to projects seems to be more important. I’m not sure about that, but it seems like it. It’s worth observing, at least.
  4. It’s more fun. Focus on a cool project, and enjoy your time in college. Don’t fracture your time with 5 different groups that each add little to your life.

Individual Research

It seems to be taken for granted that research should be primarily a single-person effort. Even those projects with large teams seems to be broken up so that each contributor provides one component of the whole project and contributes very little to other people’s components. This may be a misunderstanding of how research is actually performed, but it seems to be the case.

Why do we do this? Why don’t researchers work in teams of two on any given topic? It seems that we could do better if there were teams each working on the same problem. Free market economies have demonstrated that multiple solutions from multiple sources tend to yield a better overall answer to any given problem. In research, this is done on a larger scale between different researchers at different universities, but on a smaller scale, what about putting two people on the same task in the same research group? I think that students could help prevent each other from getting stuck.

It might be tough to support two students on the same project, however. Additionally, it might be tougher to give the appropriate amount of credit to each participant (which is a big deal in research). I think I’ll ask around in grad school.

Summer fun

I will have approximately 3-4 weeks this summer between finishing undergrad and starting research in grad school. How should I use the time? Well, I want to relax. There will be a lot of time spent lounging, which I look forward to after this rather crazy semester.

I also want to do some interesting intellectual activities too. I want to hit a perfect sweet spot with enough fun intellectual activities that I can accomplish them and still recharge completely.

Here’s my tentative list:

  1. Figure out pointers and some advanced object orientation concepts. These are some issues that came up during my research work, and I’m really interested to figure them out. The test: I believe that when i can pass a matrix to a function using pointers and when I can build all of the functions in my program using OO concepts like inheritance, I’ll understand them.
  2. Learn lisp. Lisp is a programming language. I already know C++, Matlab, and Labview pretty well, and I have heard that lisp is eye-opening. It’s also supposedly a very powerful language. It sounds really interesting and fun.
  3. Rewrite my CFD program to be clean, readable, and bug-free using the techniques learned above.

It’s a short list. I could theoretically do #1 and #3 in a single day. I also believe that I could learn lisp to a decent level in just a couple days as well. I’m excited.

The problem with current-generation MOOCs

MOOCs, or massively open online courses, is a platform for knowledge delivery. In their current iteration, they are lectures and videos and assignments placed online. MOOCs have been hailed as a great revolution in education. I do not agree. The MOOC certainly represents an advancement, if only because resources are available much more widely as a result.

But they are not what they could be.

So, first, why do people think that the MOOC model will revolutionize education? There are several great reasons. (1) They place courses online, where content delivery is much cheaper (a big issue with ballooning tuition prices). (2) A MOOC can be taught by the best professors in the world. The Feynmans and Lewins of the world could be the physics teacher of everyone in America! (3) you don’t need to worry about enrollment issues like too many students needing to take the class. Those definitely represent advancements over certain elements of the brick-and-mortar.

However, it is too reliant on the old model of lecture->practice->test. This is a pretty unengaging model of learning, and regardless of its method of content delivery, people miss a lot of information in this style. Because of that, I don’t see this current iteration of the MOOC replacing the classroom element.

With a few tweaks, I think the model could be improved significantly. What about, for example, a model where tests, practice, and lectures are interwoven seamlessly? Something more like the video game model (for a single topic): instruction -> test -> test -> instruction -> test -> test

How to get in to graduate school

The graduate school application process is essentially over and my results were pretty good, so I will put everything that I think was useful here. **This will be tailored to a research-oriented graduate school application rather than, for example, a medical school application. They require completely different approaches.**

Let’s think about that in terms of each component of the application: letters of recommendation, statement of purpose/research experience, and transcript/GREs.

Letters of Recommendation
This is one of the most important parts of the application, and for good reason. One common problem among people is that we have trouble accurately judging our own skills. We can say that we are on time, good with people, and so on, but it could be way off. Outsiders often have a better objective view of how we work. Therefore, the letters serve as a sort of litmus test. If your previous professors enjoyed working with you, then there is a good chance that your grad school advisor will too. This idea also explains the tier list for letter writers (professors > industrial researchers > bosses): the closer the experience is to research, the more likely it is that the results will be similar. For example, research in industry is generally less open-ended than in academia, and so someone might be great when there are step-by-step deadlines but struggle with few constraints. That is less likely if you have already had some success in academic research. Probably the best ways to get good recommendations are to take initiative, be interested, follow through with what you say you will, and generally be pleasant to work with (this last one goes a long way wherever you are).

Statement of Purpose
There are three keys to doing an excellent statement of purpose: (1) demonstrate that ***you know what you are getting in to***, (2) demonstrate interest in the specific field or subfield that you are applying for (past research in the area is great for this), and (3) try to show some capacity for self-learning and motivation to deeply understand and publish new insights on a topic.

A few things to avoid: (1) do not talk about your childhood dreams and (2) do not talk about your outside interests. Childhood dreams are an easy (and common) way to start the statement, but admissions committees do not really care. They want to know about who you are right now. Specifically, talk about research and demonstrate passion and a realistic picture of what graduate school will be like, because this is really a research statement rather than a personal statement. They want to see a well thought out topic and purpose for applying to graduate school.

Here is how I did it: I started off by saying that I do not enjoy classes and instead prefer to teach myself. (This suggests that I am comfortable with the self-guided learning that is important in research.) Next, I mentioned the field that I was interested in and why I am interested. (This helps them direct the application to the best professor to read it, and it is a good place to demonstrate passion. Put the field in bold for their convenience, like “… and for that reason I want to work in nanotechnology and energy.”) I also mentioned other semi-relevant interests in one sentence here: “I am also very interested in business and education, and I plan to make each a significant component of my graduate experience.” (It is useful to mention your other interests because people with a variety of interests tend to be more interesting people and they may identify with yours, but do not waste any space explaining them. I literally only mentioned business and education in the one sentence above.) All of that took a little over a half a page, and I spent the next 1.5 pages talking about my past research and engineering experience. It is good to mention what you did, what went well, what you struggled with, and how you improved as a researcher from the experiences. Also talk about the field you want to go into in more depth. Talk about the problems you find interesting and about your ideas and questions regarding those subjects. I spent about a paragraph and a half on that. I finished up with talking briefly about my professional goals and how the school is an excellent fit for both my field of interest and my goals. Your chances of admission go way up if you fit with the institutional culture. For example, if you are applying to Stanford, you have a better shot of getting in if you are also interested in tech entrepreneurship than a similar person who is not. Because of that, you should try to identify those programs where you match well.

As I mentioned, they expect to teach you how to do outstanding, publishable research in graduate school. They do not want to have to reteach what you learned during undergrad. Obviously everyone will have gaps and need to learn new topics, but if you didn’t learn what you studied in undergrad, it’s a red flag that you might need remedial instruction or be a poor self-taught learner. Neither of those bode well for graduate school, where you are expected to learn the necessary background while your advisor teaches you how to do publishable research. In effect, both of these are quick checks for basic competence, but compared to the rest of your application, these are relatively unimportant. A significant reason why incoming GPAs/GRE scores are so high at top schools is due to self-selection. People with a 3.8+ GPA think they have a shot at getting in, so they apply. I have heard several admissions folks say that they barely look at GPAs and GREs, especially at the top schools.

People spend an unnecessary amount of time worrying about the GREs. Keys to doing well: read widely and often for the verbal section, and review basic math and be careful on the math section. None of the math is complex or particularly challenging, but it is easy to make mistakes. Just practice a few times, be careful, and then focus most of your effort on the other parts of your application. It is quite possible to overcome a low GRE score, but it is not possible to overcome a bad statement of purpose, for example.

The takeaways?
1) Understand what grad school will be like. Read a lot about it
2) Get research and work experience that closely matches the components of graduate school. Take initiative in everything that you do.
3) Make sure you present yourself as someone who will be great to work with (and actually be great to work with)
4) Demonstrate interest and know some of the open questions in the field

Note: I’ll probably continually update this with better/more complete advice.

Stop Worrying About National Performance on Tests

Politicians often seem to be worried over our performance. Our children are falling behind, and we are losing our edge in engineering! There are a lot of stupidities in that, and I’ll go over a few.

First, countries are ranked by their average scores. If we are worried about our engineers, we do not need to care. A countries future engineers are going to come from the top 10% or so of children on the math scores. America, for good or ill, is a country of wild variance. I find it completely plausible that we could be 30th when ranked by overall average but 1st when ranked by the average of the top 10% of scorers, but I have not looked it up (and neither have the politicians crying wolf). Now, a country with a better average math-sense and appreciation of math is probably better off, but the tests do not test for those. At best, the test results might decently correspond with math-sense, but it is doubtful that the results correspond with with math appreciation. Indeed, several of the high-performing countries have drill-and-kill heavy math instruction, which works for simple standardized tests but not for anything else.

Second, test scores improve when countries focus on improving test scores. Makes sense. However, what happens to instruction to math instruction when countries try to focus on test scores? It typically becomes full of drill-and-kill practice and rote memorization replacing understanding and exploring. In that regard, we might consider running the other way. Let’s instead focus on trying to solve big, fun problems. You know, the type of problems that are great to learn from but impossible to put on standardized tests.

Something like the Russians launching Sputnik makes much more sense in terms of worrying over falling behind. Sputnik was a real, impressive achievement that demonstrated an engineering capacity to create something that exceeded our own. If a rival of ours were to create a net-output fusion reactor, for example, then we might have cause for worry. Right now, I do not see much reason to fret.

The classroom will disappear

One of the most obvious features of college is also, in my opinion, one of the least useful. Classroom are not where real learning takes place: an average student in a lecture demonstrates about as much brain activity as they do when watching TV. In other words, a lecture can be interpreted as boring entertainment. On the other hand, the brain is much more engaged when playing video games because they are interactive, just as it would be easy to stay focused when a zombie is trying to eat your brains. They require an immediate response.

So, why did I title the post as I did? I think that the classroom is eventually going to be replaced by a new model enabled by better technology.

MOOCs, or massively open online courses, have given a brief glimpse of the new direction, but they are only the smallest step in this new direction. Video games are a better model here. So imagining we can provide content to each student individually which is already possible in MOOCs, what elements needs to be included to make this work?

(1) Something visual. Remember text-based adventure games? There’s a reason why everyone went to “video” games. They are more engrossing. Life is visual, so we probably need a visual element. What would that look like? For military history, you could easily create a historically accurate real-time or turn-based strategy game. For engineering, you could create a visual solver geared towards education (several of which already exist with some limited functionality). It may be a little tougher for certain other genres, like literature, but you could potentially do some adventure game. This part is conceptually easier, even if tough to execute.

(2) The ability to tailor content to a person’s skills. This should be possible through a big data approach similar to how Amazon suggests new products. Other people who viewed the same things as you viewed this other thing as well, so you probably will too. In an educational context, this would be: others who got this problem wrong got similar problems right after being shown some other problem, therefore you will get that other problem next. Using this approach, you could probably do all learning via problems, with no need for lectures at all. Skeptical? Video games use that strategy to teach some pretty complex concepts. I think it could be done here too.

(3) A way to generate a massive amount of content. In order to use the big data approach, you would need an enormous bank of problems for any given topic. There is no way that a small team could generate enough problems to make this work, so we probably need some mechanism for user-generated problems.

(4) An error-finding tool or algorithm if we use user-generated content. There are generally a lot of errors in user-generated content, but certain techniques like level editors (in this case problem editors) in video games or the user review process used by Wikipedia can be used to iron those out.

(5) Immediate feedback. There is nothing more immediate than falling into a pit and getting a game over when you misjudge the jump, and so video games are excellent models for this. A huge problem that currently limits the usefulness of homework is the 1-2 week delay between doing the work and getting the feedback.

(6) Some obvious measure of advancement, like badges or levels or achievements. This is another reason why video games are so addictive. People put an enormous amount of time into incredibly frustrating tasks in order to get a badge. Think: like every game ever. It is sometimes incredibly frustrating to master a new concept, and this is an effective way to keep people invested.

The wonderful thing is that none of these elements are new. Everything has been done before, albeit in non-educational contexts. Therefore, there should be no reason why it couldn’t be implemented in education. Now all that remains is to do it (although that part will, as always, be a thorny problem).