Hal Abelson

Hal Abelson, my research advisor at MIT (Commencement 2016)

I had the privilege to spend three years researching under MIT Class of 1922 Professor Hal Abelson, founder of MIT App Inventor and a pioneer of computer science education. He gave me the opportunity to take command of my own research for the first time. Under him, I grew and learned as a researcher and as a human being, often through trial and many, many errors. I’m sharing a few of the key things I learned working under Hal.

10 things I learned from Hal about research:

  1. Start with a specific research question. **

    My temptation was always to just get data and play with it indefinitely until I found something that seemed interesting and go from there. But Hal demanded I start with a research question and/or hypothesis that is feasible, novel, and important (see Andy Ko’s advice on what makes a good research questions). The research question will almost always change, but you have to maintain a research question so your research has a direction.

  2. Set milestones. **

    Timelines are nice – until I fall off track. I love to pretend my timeline doesn’t exist as soon as I’m slightly off my proposed schedule. So to keep timelines relevant, Hal forced me to set milestones. Come hell or high water, I will do my absolute best to meet these milestones or checkpoints. This helps break down your research into shorter phases so you don’t realize you’re super screwed a few weeks before a hard, immovable deadline.

  3. Budget for life delays. **

    On the topic of timelines, don’t plan on being done on the exact day of a hard deadline. My thesis was due May 15st, so Hal had me plan on submitting it two weeks before that. This gave me buffer time for life to happen (it happened). So that way if I spend more time on data wrangling than anticipated, get concussed because the men’s lacrosse team needs more practice, put more work into a group project because one group member went silent, etc. etc., I’d still be ok. So include buffer time in your timeline because everything takes longer than you think and surprises happen at the least opportune time.

  4. Connect with others.

    Research doesn’t happen in a vacuum. I was building off of others’ previous work and should produce findings that will be relevant to others in the future. So Hal ensured I communicated with relevant people, (even outside of my lab). I consulted with other researchers, App Inventor users, and colleagues. This cross pollination will produce new perspectives and ideas that often got me unstuck and productive again. Frequently talk with others to get fresh ideas, but be sure you (and your advisor) make the final decisions about the direction of your research.

  5. Go to lab. Regularly. **

    I get it. It’s comfortable to work at home, coffee shops, or on a friend’s couch. But I learned to regularly go to lab. I blocked it out on my calendar after I got your class schedule but before the term began. I encouraged undergraduate researchers to come in at least a few (consecutive) hours a week; Graduate researchers at least a few hours a day. Regularity in your schedule helps you get work done and being in lab enables you to get help and feedback from other members of your lab.

  6. Know what other lab members are doing.

    Another reason to go to lab was to stay connected with my lab members. This had so many benefits. Keeping up with each others’ work helped maintain motivation (my work is relevant to someone else), prevented blockers (my awesome lab mates have solutions to my problems), and helped promote a positive lab culture. My best memories of my lab included sitting around the room with every desk and seat on the couch filled as people hacked away at their tasks. So keep track of each others’ progress!

  7. Listen to Users

    Usability 101: To design for the user, you must understand their needs. You are not the user. So go talk to users. Hal made sure we stayed active on support forums so we understood the challenges and struggles of people as they used App Inventor to create apps and learn computing. There was also a required testing phase before any significant changes or improvements were merged with App Inventor. Maintain open communications with users throughout the research and design process so you end up something they will find useful.

  8. Ask for help early. **

    You will always need help from people who are busier than you are. Account for that. If I know I will need feedback from someone, I reached out to them weeks ahead of time to get on their calendar. They were more willing to help because I provided them this basic courtesy. Popping my head into someone’s office for more than a 60 second question often was an uncomfortable situation for everyone. So exercise common courtesy and provide fair warning.

  9. Never “fail” silently.

    Research is exploration into the great unknown. You will get turned around, lost, confused, and have crises of confidence. It’s ok. Just don’t be 1) totally silent. 2) totally panicked. Reach out to people (as stated previously, earlier is better). Many people have a vested interest in you, so don’t think you alone must handle all setbacks or blockers. Obviously, I tried to resolve things on my own first, but I learned to find help before I was setback days or weeks. To complete my thesis, I consulted with Hal, members of my lab, researchers in other labs, professors from other universities, my parents, my girlfriend, my friends, and a mental health specialist. My thesis got done because I surrounded myself with supportive people.


    This may be the most important thing I learned. You are not supposed to be Researchbot 3000 where your thoughts are only in your research, your fuel is purely Soylent 2.0, your home is your office, and your friends aren’t sure if you exist anymore. Be a human. Have balance. Have hobbies. I saw Hal make adjustments to his (insanely packed) schedule to account for his life away from academia. He starting working remotely every Friday. I heard a rumor he even took a vacation to a tropical island! And I was surprised how accommodating Hal was for me and other students. Getting good work done is important to Hal, but the wellbeing of the people he worked with was of greater importance. Good research is done by good humans.

** Yes, I definitely learned this the hard way. Hal warned me of this, and I didn’t take it to heart until I messed up myself. Hal Abelson is a very patient man.

So there it is. Three years of working under Hal Abelson to understand how creating apps with MIT App Inventor translates to learning computing and programming. I’m thankful for Hal and the time he dedicated to helping me. I started as a starry eyed undergraduate biting off way more than I can chew, collecting or analyzing data without direction, and getting stuck and not telling anyone. From my experiences, I learned the tips noted above and now I’m getting ready for my Ph.D. So thank you very much Hal and I hope this can help up and coming researchers dodge a few costly mistakes.

Hal Abelson on Computer Science Education.
My MEng Thesis with App Inventor.

Leave a Reply

Your email address will not be published. Required fields are marked *