We’re 3 roboticists at MIT’s Computer Science and Artificial Intelligence Lab, here to answer questions about programming as part of the #HourOfCode and Computer Science Education Week. Ask us anything!

Abstract

Hi! We're a trio of researchers at MIT’s Computer Science and Artificial Intelligence Laboratory , home to people who invent brain-controlled robots, the World Wide Web, and a real version of that recipe-suggesting AI from “Silicon Valley”.
 

Given that it’s Computer Science Education Week and that so many students are participating in the “Hour of Code”, we thought it’d be fun to chat with you guys and share more about what we do and what it’s like to be at MIT CSAIL. Feel free to ask us questions about (almost) anything, including but not limited to:
 

  1. Why computer science is amazing
  2. How we got into programming
  3. What we think about all day

 

We'll be online starting at 3pm EST!

 

Here’s a bit about each of us with relevant links, etc.:

 

Tao Du
Attended undergrad at Tsinghua University.
Researches computer graphics, robotics, and fabrication.
Wrote software to test customizable drones.
Plays soccer every week whenever time and weather permits.  

Alyssa Pierson
Postdoc at MIT
PHD from Boston University, undergrad at Harvey Mudd College
Researches coordination and control of multi-robot systems
Avid scuba diver
 

Andrew Spielberg
Attended undergrad at Cornell University
Researches improving the fabrication of robots and 3D-printable robots
Interned at Disney
Has a cat
 

Ask away!

 

Requisite disclaimer: we are by no means speaking for MIT or CSAIL in any official capacity!

LISP: Do you still program in it? Does anyone?

drsjsmith

ANDREW: ((Nobody uses Lisp that I've met.) (Some undergrads here really get into it when they take Gerry Sussman's class.) (But, I think it's a bit too niche for most applications.))


What in robotics that has nothing to do with your field(s) of research is do you think is most exciting right now, and why?

BotJunkie

ALYSSA: For me, I think the new artificial muscle research is exciting, and will completely change how we think about robot design

Link here


What in robotics that has nothing to do with your field(s) of research is do you think is most exciting right now, and why?

BotJunkie

ANDREW: I'm all-in on robot learning. The work of researchers like Ashutosh Saxena, Hod Lipson, Andrew Ng, and Pieter Abbeel, for example, has been impressing me for years, and has really been taking off at a faster pace since deep learning has taken off.


What in robotics that has nothing to do with your field(s) of research is do you think is most exciting right now, and why?

BotJunkie

TAO: I want to second Andy's answer. Applying reinforcement learning techniques to robotics problems (e.g., work of Pieter Abbeel and Sergey Levine) is really exciting.


My 10-year-old son has built over 50 projects on your Scratch application. He's been regularly working with Scratch since September.

Should he continue using Scratch, or should he move into something a bit more intensive?

I bought him a book titled Using Scratch: Star Wars Coding Projects Basically the Star Wars characters appear on every page giving readers instructions on how to build elements in Scratch. He has learned how to work with Scratch a lot better since I bought him the book. What other resources can he use to enhance his skills?

For how long should he use Scratch before he moves onto learning how to use a more advanced application or to type Python or other language codes?

What other advice would you offer a 10-year-old who spends a lot of his free time programming on Scratch?

Thanks for your responses in advance! Keep up the strong work.

ekser

ALYSSA: My best advice would be to keep having fun with the projects. There's no specific time to switch, but if he feels limited with Scratch, then that's a good indication it's time to try Python or another language.


What are some things the average joe that aren't in ivy league schools can do to better ourselves? It doesn't have to be a particular book or course but any habits or way of thinking that we should be aware about?

smhosby

ANDREW: I think anyone of any background can always better and improve themselves, ESPECIALLY today. Today, we are spoiled. I can go online and I can watch lectures on deep reinforcement learning from Berkeley, and then I can watch a Shape Analysis class from MIT, both on youtube, and then I can enroll in a EdX course on Underactuated Robotics, and so on. And even better, most of these actually have assignments I can do to prove my mettle. If you're just looking to get more experienced with programming, there are free (I think) courses on Coursera, EdX, Udacity, and so on, to learn to code, including assignments. And then there are tutorials for all sorts of awesome free, open source software, like ROS, Drake, Unity, and so on.

Back when I was in high school, about 12 years ago, I didn't know how to get started, because the ecosystem wasn't there online, and a lot of the tutorials were in books, and a lot of those books were terrible and cost money that I didn't have. But now, with everything everywhere online, free, and structured, the only thing you need to do is find the time and motivation to keep enriching yourself.


So I am working on a 6dof robot arm right now and I am stuck on how I can approach object avoidance. I have implemented an inverse kinematics solver myself but I am not sure how I make an algorithm that plans around known obstakels. I can't really find anything online either.

So how would you pros approach this?

coloroftheskye

ANDREW: Strongly second RRT/RRT*. That's the way to go here as a first attempt. Build a virtual model of the collision geometry and run vanilla RRT. It should be easy if you have a collision checker and forward kinematics going; the code you'll need to write for this is actually pretty short. It just might be a little slow, so don't expect real-time performance, but maybe a few seconds of computation (though I believe George Konidaris's lab at Brown is working on ways to make this faster).


So I am working on a 6dof robot arm right now and I am stuck on how I can approach object avoidance. I have implemented an inverse kinematics solver myself but I am not sure how I make an algorithm that plans around known obstakels. I can't really find anything online either.

So how would you pros approach this?

coloroftheskye

TAO: I am not super familiar with this but I think it sounds like a classic problem that methods like path planning/RRT can help? You might also want to take a look at some more recent methods based on reinforcement learning, like papers from Professor Pieter Abbeel's group at Berkeley.


Scuba diving is a passion of mine!

Specifically for Alyssa the diver but also the others if they have input: Dive computers have changed the way we dive. It allows us to stay down longer in a safer manner, and is an amazing support system. What is the next big technological advance in diving?

WaitsVoice

[Alyssa here] Hooray scuba! For general advancements in diving, with robotics, we're now able to dive at depths not safe for humans, and with it come all sorts of new cool discoveries about the biology, inhabitants, and even archeological missions.


What book would you recommend for someone who wants to learn the algorithms behind AI and deep learning, and when to use which algorithms?

aintnufincleverhere

ANDREW: For deep learning, I think online tutorials are the way to go. Maybe reading up on the TensorFlow documentation. But, I think more critical is the other part of your question to learn general AI algorithms (and if you know neural nets you'll have a good grounding for deep learning). For learning AI, I really recommend Russell and Norvig - this is a classic in the AI world, it's super readable, and explains most concepts very well. It covers search, machine learning, logic, reinforcement learning, heuristic search, and some optimization algorithms. Learning optimization is helpful too; I recommend Nocedal and Wright's book for that one.


Hey, thanks for doing this AMA!

What was the path you took to get into computer science research? It sounds like an interesting way to apply the computer science skillset to me, and it's something that I'm interested in considering at least.

secretlizardperson

ALYSSA: I got into robotics by way of pigeons . After studying dynamics and control theory in undergrad, I became interested in robotics from the system design level, and have never looked back.


Hey, thanks for doing this AMA!

What was the path you took to get into computer science research? It sounds like an interesting way to apply the computer science skillset to me, and it's something that I'm interested in considering at least.

secretlizardperson

TAO: For me, the path was like: took undergrad graphics courses -> impressed by some cool research projects (graphics people are really good at making beautiful images/videos) -> followed relevant research groups and read their papers -> wanted to know more so went talk to local research groups and started my first research project.

(The first paper I read in my life is "Compressive Light Transport Sensing" (http://gl.ict.usc.edu/Research/CLTS/) during my sophomore year. Incidentally, Wojciech is now my Ph.D. advisor so yeah life is a circle...)


Can you provide us with a timeline of how you have learnt various programming languages over the years ?

ashish2199

TAO: I learned C and C++ during my first two years in college and I am still learning C++ (the standards are evolving every year). C++ is my primary programming language but I also learned other languages like Matlab, python, and Go when I was doing some other research projects.

I think python and matlab are pretty friendly for beginners while C/C++ are slightly more hard-core. If you want to pick up a language to start maybe python is a good option.


Can you provide us with a timeline of how you have learnt various programming languages over the years ?

ashish2199

ANDREW:

2006: MATLAB, Java (intro classes) 2008: SML, C# (advanced programming classes, game design class) 2009: Verilog (Computer Organization class) 2010: Python, C (OS Class (you can see where I'm going with this)) 2011: C++ - self taught because I wanted to do advanced graphics stuff and robotics stuff with ROS. 2012: Javascript - self taught for work but I'm terrible at it.

Over the years I've learned various languages that I've needed for projects, such as Ruby or OpenSCAD. As a general rule, nowadays, I learn something new when I want to do something cool with it.

EDIT: I want to echo what Alyssa said that I had no prior experience programming before undergrad.


Can you provide us with a timeline of how you have learnt various programming languages over the years ?

ashish2199

ALYSSA: I first learned Python and Matlab as a freshman in college. Prior to that, no programming experience.


Do you think visual programing languages such as MIT app inventor will ever replace or be used in a professional setting, such as in your jobs, instead of standard text based languages?

DocSuperman

ANDREW: When they mature to be a lot more general, then yes. I honestly think strictly enforced text is a very arcane way to use computers. When you explain concepts to a person, you explain it to them using natural language, and the meaning can be fuzzy. Strict syntax is very precise, but also has a high barrier to entry. Visual programming languages tend to trade off flexibility or scalability (reading large Simulink files is a pain) for more intuitive use. I hope that someone can find the sweet spot though, and I hope we can transition to other modes some day. I'd rather spend most of my time thinking up algorithms rather than fighting with typo-based bugs. If someone can make a great visual based programming language that is easy to use, easy to see MEANING from STRUCTURE, and scales well, I think it will take off. But no language so far meets that bar.


From a Computer Science Ph.D. Student here:

  • What motivated you into pursuing a career in Computer Science and how important you believe that having a heart connection with the field you work helps you developing research and technology that has the potential for changing people's lives?

  • If you could go back to your childhood and remember what were your dreams at that time, do you believe that your work today reflects what you expected for your future?

3liezer

ALYSSA: I think it's very important to care about the work you do, as well as think about how it affects those around us. For example, I'm working to make semi-autonomous vehicles safer for passengers and pedestrians. Our focus isn't replacing the driver, but increasing the supplemental safety systems, which could allow elderly drivers to keep their licenses that otherwise would be revoked.

As for my childhood dreams, I wanted to be a cartoonist. It's not super related to my current research, but sometimes I doodle robots.


From a Computer Science Ph.D. Student here:

  • What motivated you into pursuing a career in Computer Science and how important you believe that having a heart connection with the field you work helps you developing research and technology that has the potential for changing people's lives?

  • If you could go back to your childhood and remember what were your dreams at that time, do you believe that your work today reflects what you expected for your future?

3liezer

TAO: When I was a kid I was a big fan of both soccer and race cars. I remember at that time my ideal job was either being a data-analyst in some big European clubs and winning UEFA champions league, or becoming a mechanical engineer for a Formula 1 team, developing the fastest race cars on earth. Neither of them is closely related to my current research but not super far as well.


Maybe a stupid question, but a professor at my uni said that programming is going to, in like five years, be done by AI/robots, that got me worried as a freshman in CS, is that true and to what extent?

easyhoon7

ALYSSA: It's true that advances in AI mean that robots will be able to generate their own programming, there will still be many more problems in computer science that need to be solved. Don't give up!


Maybe a stupid question, but a professor at my uni said that programming is going to, in like five years, be done by AI/robots, that got me worried as a freshman in CS, is that true and to what extent?

easyhoon7

TAO: I don't think you need to worry too much about that. Computer science is much broader than purely programming/coding. There are still tons of research problems waiting to be answered. And for many of them, programming is not a solution but just a tool.


Stargate / Startrek / Starwars?

Preferred signal ranges to communicate with the bots?

fullblown5

ANDREW: Oooh, this person knows how to troll good and start up them flame wars.

I love all three, but if I had to pick just one, it would be Star Trek (TNG and Voyager, especially). I think watching Star Trek with my dad is actually a huge reason why I wanted to be an engineer to begin with. And now going back and watching it today, I think that the social, moral, ethical, and technological quandaries it poses, and the diverse character lenses through which they are analyzed, provides some of the best writing I've ever seen in science fiction.

And then of course there's Wesley Crusher.

(Props for adding Star Gate in here, I feel like it's a franchise that's slowly becoming forgotten.)


Stargate / Startrek / Starwars?

Preferred signal ranges to communicate with the bots?

fullblown5

ALYSSA: Star Wars, all the way (except the prequels).


Thanks for answering our questions!

1) As AI has taken off, we've seen a huge shift in focus towards robotics where many applications will inevitably prove beneficial. Alongside the robots which necessarily need to be rigid like autonomous vehicles and drones, do you think soft robotics, artificial muscles and all, will be where our main focus should lie? I've been wondering if we're almost wasting time building rigid-body humanoid (and animoid?) robots.

2) There has been more support for women in recent years looking to get into research within computer science and robotics, but we're still struggling to get younger women applying to CS degrees. What do you think we can do to change this?

P.S. As a PhD student who just submitted their thesis based on multi-agent systems and swarm robotics, any post-docs going at the Distributed Robotics Lab?

toohuman_io

ALYSSA: To answer (2), there's no one solution that will suddenly change everything. However, we must continue to support young women interested in science, provide strong role models in the community, and not tolerate the notion that anyone will be a "lesser" engineer simply because of who they are. Shout out to my alma mater, Harvey Mudd College, for their work in this area.

On a daily basis, if you're a dude wondering how to help women in engineering and computer science, just be supportive! It's not that hard.


Thanks for answering our questions!

1) As AI has taken off, we've seen a huge shift in focus towards robotics where many applications will inevitably prove beneficial. Alongside the robots which necessarily need to be rigid like autonomous vehicles and drones, do you think soft robotics, artificial muscles and all, will be where our main focus should lie? I've been wondering if we're almost wasting time building rigid-body humanoid (and animoid?) robots.

2) There has been more support for women in recent years looking to get into research within computer science and robotics, but we're still struggling to get younger women applying to CS degrees. What do you think we can do to change this?

P.S. As a PhD student who just submitted their thesis based on multi-agent systems and swarm robotics, any post-docs going at the Distributed Robotics Lab?

toohuman_io

ANDREW:

1) We're not wasting time building rigid body robots, because right now they can do incredibly awesome things and are quickly gaining agility. Further, think about it: most animals have skeletons, and so in some way, they are rigid. They just also have elastics in the joints and on the skin. I think we should be exploring fully rigid, fully soft, and hybrid robots. All three are valuable. Also, a quick point - biomimicry is awesome, but sometimes you can out-engineer nature. I do think modeling soft robotics is a challenging frontier we haven't fully tackled yet though.

2) I'm not the expert on this, but, I really would love to see 50-50 parity of men and women in CS. There's no reason it shouldn't be like that, there is nothing inherently masculine about numbers. I think we need to break the stigma that math and CS aren't for women and also increase support in programs at a young age that get younger people into CS, and actually go out of our way to encourage and recruit young girls until we achieve parity. I saw at some point that women are interested in math and science at the same rate as men until High School and then the parity starts to decrease, so finding a way to stop this attenuation would be a good focus.

Post-docs: I don't keep track of this stuff, but I'm sure you can e-mail Daniela Rus to find out.


What's your job like? Any interesting projects underway?

MarioPol

ANDREW: I think my job is probably similar to a lot of software development jobs. I work in small teams though, on projects that are partially driven by me and what I think is interesting (with the rest of that input coming from my colleagues or the professor I'm working with or the grant I'm working on). I think the main difference though is that I spend a good chunk of my time trying to develop math and/or algorithms for tackling my problems, reading academic papers, and experimenting with new ideas, as opposed to pure development.

I can't say too much about what I'm working on right now, but I can say that my research has been focused on co-designing, and co-optimizing robots over structure, motion, materials, controllers, actuators, and so on. Can you enable a computer to design an entire robot at once, fully autonomously? Can we enable robots to be creative, to handle high-level design, and find novel, never before-seen structures? These are the sorts of things I think about, and where my past and future projects will head as well. The day we can teach computers to create and to be the engineers is the day I think we'll have made huge strides in computing.


What's your job like? Any interesting projects underway?

MarioPol

ALYSSA: Ditto Andy on the day-to-day stuff.

My primary projects work on bringing parallel autonomy to vehicles, as part of the Toyota-CSAIL Research Center.


Besides learning programming, how can a teen get involved. As in, being on the field like in the workspace and environment? I have been trying to get an internship, but i haven't found a company willing to let me. They all require a bs at least.

arissj

ALYSSA: My advice would be to create a webpage where you can document and publish some of your projects. Keep at it, and by putting your projects online, it shows companies you have the experience to be a good hire.


From a Master's degree student in neuroscience, interested by working in the AI field and that see your lab as one of the state-of-art lab :

What advice(s) would you give if I really want to work in that field (beside doing internship, practising my programming skills and reading about the subject) ? I feel like it is flooded by high-ranked students from very well-known schools like the MIT and that I'll never be able to compete with them !

Thank you for that AMA!

Matsumaga

ANDREW: Agree with Tao on working on your own projects. They don't even have to be research projects, just - find a problem you think is interesting, and see if you can apply some computational techniques to it. You can even work on famous projects that have been studied before. Like, can you make a good Poker AI? Or a Chess AI? Or a Mario AI? These can be as simple or as complicated as you want. Or maybe you can analyze some interesting data set, and do some cool prediction. It doesn't have to work great, it just has to get you reading and learning methods and honing your skills.

For what it's worth, I think CS + Neuroscience is one heck of a combination. Don't worry about your pedigree, I work with people here from all sorts of backgrounds. Just keep your head down, keep motivated, get involved at any local university, and the rest will probably figure itself out.


From a Master's degree student in neuroscience, interested by working in the AI field and that see your lab as one of the state-of-art lab :

What advice(s) would you give if I really want to work in that field (beside doing internship, practising my programming skills and reading about the subject) ? I feel like it is flooded by high-ranked students from very well-known schools like the MIT and that I'll never be able to compete with them !

Thank you for that AMA!

Matsumaga

TAO: I think doing some course or research projects will help yourself get familiar with this field very quickly. It's a good idea to follow some online courses and then spend a serious amount of time on doing their course projects. For example: http://web.stanford.edu/class/cs221/


How can I use computer science in my community, whether it be non profits or volunteering? I am close to finishing my CS degree and my portfolio isn't the greatest but I'd love to help my local community.

GAYBUMTRUMPET

ALYSSA: If you're looking for inspiration on how AI and computer science can benefit communities, a great place to look is USC's Center for Artificial Intelligence in Society.


How can I use computer science in my community, whether it be non profits or volunteering? I am close to finishing my CS degree and my portfolio isn't the greatest but I'd love to help my local community.

GAYBUMTRUMPET

ANDREW: I don't have a concrete answer like Alyssa, but I always thought it would be powerful to apply machine learning to local governments' data to make better policy decisions. The big bottleneck there might be finding data that's available.


I want to start programming(i am interested in algorythms, robots,AIs, some raspberry pi stuff) . Where should I start?

poyrazogluyigit

TAO: Learn a programming language first and do a few course projects from some introductory level classes. I think this can get you onboard very quickly.

btw raspberry pi is cool. I like it!


I want to start programming(i am interested in algorythms, robots,AIs, some raspberry pi stuff) . Where should I start?

poyrazogluyigit

ALYSSA: I think Python is the best language to learn first. There are great online resources for projects with raspberry pis, so buy one and start tinkering!


Hi! I'm actually applying for a PhD at MIT right now for CS, cool to see you guys on here. I was wondering, outside of participating in #hourofcode, how do you recommend becoming involved in mentoring?

nedolya

ALYSSA: Great question! Some ways to get involved: volunteer with a local FIRST robotics team, mentor undergraduate students, and reach out to local high schools to see if they need any help.

Good luck with the grad school applications!


I did some robotics at uni and I would like to some day work as a robotics engineer. What skills do you need to have to get through the door? Sometimes I feel that job ads are more geared either towards electronics or mechanical engineers.

I currently work as an embedded software engineer writing low level code which could be controlling an actuator for example. How do you/what is the easiest way to scale this up to doing high level robotics stuff like path planning, AI and controlling multiple actuators to perform a task?

Can you suggest a project to make a first robot from scratch?

Satrapes1

ALYSSA: I think "robotics engineer" can refer to a wide range of skill sets, but a mix of hardware and software skills are good.

For beginner robot projects, I recommend Dexter Industries' GoPiGo. Tons of tutorials, easy to use, and with the raspberry pi, easy to customize!


This question is directed at Andrew Spielberg: My school recently has installed a 3d printer is their any free modeling software you would suggest?

DocSuperman

ANDREW: Software is really the bottleneck in making 3D printing more accessible. For design, if you want a coding-based means, you can try OpenSCAD. You can use Onshape if you want real online CAD software that I think is free. I recommend playing with those to design files, maybe using something like Thingiverse or GrabCAD to download some starting points.

If you just installed a printer, whatever company you got the printer from should have the software for generating support structures, slicing the files, etc., in other words, they'll handle getting your design ready to print. Check with the vendor to see what they have, but if their software is terrible, I think MeshMixer can generate support and export to .stl for printing.


What kind of technology do you think we will have to invent to explore the oceans of Europa? Do you know of anyone working on this? Do you think it will have AI components?

DarkBlueMermaid

ANDREW: I know very few people working on space robotics. I don't know how we get to Europa. But let's say we can get a robot to Europa and that our robot scan physically handle the frigid conditions. There are actually lots of people working in marine robotics. Gaurav Sukhatme's lab at USC is doing really cool work on coming up with algorithms that can scientifically explore ocean depths as efficiently as possible, and is using AI to figure out how to optimize sample collections.


Is anyone working on using brains as the processor on a robot? Like the robobrains from fallout? Are you secretly building a super lab under the university?

Cuzzi_Rektem

ANDREW: Of course we have robobrains. Fallout 4 is actually a documentary filmed at MIT. True story.


Is anyone working on using brains as the processor on a robot? Like the robobrains from fallout? Are you secretly building a super lab under the university?

Cuzzi_Rektem

ALYSSA: In a sense, yes.


What computer science problems are capturing your imagination right now, and which sectors have the most potential to gain from robot automation and machine intelligence in the next decade?

Canadianacorn

Rachel (MIT CSAIL communications): Bayesian inference of microbial communities!!! I think we need to move away from classifying certain illnesses like Crohn's as auto-immune when there's clearly a dysbiosis factor. There are too many strains of bacteria in the gut for the human brain to process, and I think CS will fundamentally change (it already has) how we analyze medical data and information. I am not a computer scientist, just doing a guest appearance for one question. I work in the communications department at MIT CSAIL and I set up this AMA :)


I have some questions for Tao: What do you use when working with Computer Graphics? Is it OpenGL, D3D or some other rendering technology? Or is your work related to offline rendering?

In general: Do you guys use Python for developing AI agents? Why isn't C used? I couldn't find any AI libraries for C.

Andrew: Any funny stories about your cat?

Also, thanks for doing this AMA. Happy CS Education Week!

nrj224

TAO: I use OpenGL 3.3+ (I like shaders!) when I want to interactively visualize my results. When I need to generate high-quality images for paper submission, I use offline renderers like pbrt. People in our lab also uses Houdini, Blender, Maya, etc.

I use Python whenever I need to quickly glue different programs. It's definitely possible to use C/C++ to write all AI algorithms but I think Python is preferred because it's more lightweight and its syntax is more friendly. When performance matters (like when time-consuming simulations are needed) I rewrite it in C++ and glue it in python.


Hi everyone, thanks for doing this AMA! A few questions coming from an undergrad doing research in HRI/robotics, ultimately will pursue a PhD in cloud robotics.

General - How do you balance performing research and everything else?

General - What has been you favorite course?

General - How do you tackle recondite challenges in your research? Have you given up on a project before because of it?

General - Are the implementations for any recent publications accessible online? Public git repository perhaps?

Thanks again!

binarysaurus

ANDREW:

Sleep, social life, research, pick two.

My favorite courses would be Digital Game Design, Artificial Intelligence, Machine Learning, and Advanced Machine Learning at Cornell, Nonlinear Optimization at Johns Hopkins, and Underactuated Robotics and Computational Fabrication at MIT.

In theory I have an implementation for my paper RapID coming soon but I'm still wrapping up some bug fixes and some documentation.


Hi everyone, thanks for doing this AMA! A few questions coming from an undergrad doing research in HRI/robotics, ultimately will pursue a PhD in cloud robotics.

General - How do you balance performing research and everything else?

General - What has been you favorite course?

General - How do you tackle recondite challenges in your research? Have you given up on a project before because of it?

General - Are the implementations for any recent publications accessible online? Public git repository perhaps?

Thanks again!

binarysaurus

ALYSSA: I worked for two years before going back to grad school. My advice on balancing life is to treat grad school like a job, and give yourself weekends.


Hi everyone, thanks for doing this AMA! A few questions coming from an undergrad doing research in HRI/robotics, ultimately will pursue a PhD in cloud robotics.

General - How do you balance performing research and everything else?

General - What has been you favorite course?

General - How do you tackle recondite challenges in your research? Have you given up on a project before because of it?

General - Are the implementations for any recent publications accessible online? Public git repository perhaps?

Thanks again!

binarysaurus

TAO: a list of my favourite courses:

(Tsinghua): signals and systems

(Stanford): EE364 convex optimization

(MIT): 6.832 underactuated robotics (I didn't take this one though due to time constraints).

Implementations for any recent publications (Github): https://github.com/mit-gfx/multicopter_design


What do you think of the prospect of governments making armed forces composed mainly of robots with autonomous ai?

freethinker78

ANDREW: Mixed feelings. If we can avoid human casualties in war, well, I'd rather countries blow up each others' toys than their people. Honestly, though, I'd like us to find ways to use technology to avoid war and solve people's fundamental needs. I worry with autonomous weaponry attacking humans, we'll both a) have to fully encode human morals and ethics into computers, which is really hard, and b) we'll further dehumanize violence behind software and create a wall, which I worry could have chilling ramifications on the amount of violence in the world (see, for example, Drone operators). Overall, I think autonomous weapons can be valuable, but, I think we need to have a large public discussion about it in our governments and media. And we're basically not having that discussion at all right now.


What do you think of the prospect of governments making armed forces composed mainly of robots with autonomous ai?

freethinker78

ALYSSA: I think it's an inevitability that there will be robotic armed forces. However, I am also hopeful that we will ethically design these systems to reduce human casualties.


I'll go for the obvious question here: why is computer science amazing?

adenovato

ANDREW: Computer Science is the only engineering discipline that I know that lets you create entire virtual worlds - the only bottleneck being the limits of current computers, which are always improving. That is so incredibly empowering, and lets Computer Science have impact in so many fields around it, in mechanical engineering, medicine, education, manufacturing, and so on. It's the computational engine that drives everything else.

Ah, who am I kidding, at the end of the day, I just want the power to create virtual worlds in video games.


How did y'all get into Computer Science?

What programming languages do y'all know, and which would you suggest for an aspiring Computer Scientist that wants to go into Cybersecurity?

How is/will it be possible to 3D print a working robot? I understand printing the parts for a robot - I've done that myself - but are you trying to print a whole robot (Andrew Spielberg)?

Spider-Man-2099

ANDREW: When I was in high school I DESPERATELY wanted to make my own video games. I used to draw my own levels for a platformer with some friends on paper. From watching lots of science fiction, I also wanted to make robots.

When I got to undergrad I thought I'd double major in mechanical engineering and electrical engineering, to make my robots. And maybe I'd minor in computer science, so I could make video games as a hobby? But soon I realized I didn't want to build a robot so much as I wanted to give it a brain. So I wound up majoring in computer science (with a double in applied physics so I could still have some background in how the real world works).

Can't say much about cybersecurity, though I think good knowledge of C, Python, and Unix environments is probably important.

We can print a 3D working robot, except the electronics. See our project Interactive Robogami or some work from Disney, or the Octobot from Harvard. 3D printing good electronics will probably take some time. Right now these robots are pretty small. I'd like to keep exploring new ways to exploit 3D printing to make better robots with more dynamic motions.


This AMA is being permanently archived by The Winnower, a publishing platform that offers traditional scholarly publishing tools to traditional and non-traditional scholarly outputs—because scholarly communication doesn’t just happen in journals.

To cite this AMA please use: https://doi.org/10.15200/winn.151266.61841

You can learn more and start contributing at authorea.com

redditWinnower

ANDREW: Neat!


Which programming language(s) would you recommend I start with? I'm somewhat new to programming.

SolarLoki

Python [Alyssa]


Which programming language(s) would you recommend I start with? I'm somewhat new to programming.

SolarLoki

ANDREW: C# or Java. I like Python for some things but it has a lot of very, erm, Pythonic ideas that don't translate to other languages. I recommend C# (called Mono on OS X/Linux), or another object oriented language, like Java.

Python and MATLAB/Octave are fine too (I started with MATLAB), but eventually I think you should transition to other, more strictly typed languages.


Do robotics labs all have a secret stash of amazing outtake videos that you're never allowed to show anybody because you probably shouldn't have been trying those things in the first place but it seemed like a really awesome idea at the time?

BotJunkie

ALYSSA: We can neither confirm nor deny the possible existence of these videos


Do robotics labs all have a secret stash of amazing outtake videos that you're never allowed to show anybody because you probably shouldn't have been trying those things in the first place but it seemed like a really awesome idea at the time?

BotJunkie

ANDREW: I have actually been asked twice now for outtakes. I wish I had saved some from earlier on in my career, as I'm sure I must have a few funny ones in there somewhere, but most of them are more sad and uneventful than anything. I'm now consciously on the watch for good bloopers though.


Can an AI actually recognize patterns (p.e. different living animals) that aren't pre-programmed?

Scaramussa

ANDREW: That's a lot of what machine learning tries to do. It's really maturing quickly.


Currently junior in hs, know a few languages, would getting a PhD in cs be worth it in college? I really have an interest in cs and am curious what I could do with a PhD

CryTheSly

TAO: You might want to first decide what major your want to pursue in college before thinking about a graduate degree, especially PhD. While an undergraduate degree gives you broad and introductory knowledge of this field, a PhD degree is more about researching hard and open questions in one specific topic, learning to decompose them into questions you are more familiar with, and developing critical thinking. With a PhD, you gain a deeper understanding of this field, and you learn how to explore the frontier of human knowledge.


how dificult would it be to program an AI that can play any boardgame from just reading its rules?

Semocratic_Docialist

ANDREW: There has been some success in this direction. A few years have passed since then. I bet you could do even better with modern techniques. The trick is probably realizing this is two problems, a) understanding rules, and b) playing games well, solving each separately, and then iteratively trying to use feedback from solving one part of the problem to close any gaps from the other.


As an undergrad majoring in computer science, what steps should I take to enter this field?

theb3nder

ALYSSA: Don't drop out?


What is a good way to get into computer science? I really want to get into it but I never know where to start.

borkbork22

ALYSSA: I found Python to be a good entry-level programming language, and projects with the raspberry pi are great for hands-on experience.


Hi! As a programmer who primarily works in simulation using render and game engines, do you think learning AI and ML will be a necessity in the future of my field? Or, do you think there will simply be API's built into software that will leverage ML and deep learning just like any other tool?

Varelze

ALYSSA: Both? Learning these tools will help, but it's also possible that there will simply be APIs you can drop in as needed.


Hi! As a programmer who primarily works in simulation using render and game engines, do you think learning AI and ML will be a necessity in the future of my field? Or, do you think there will simply be API's built into software that will leverage ML and deep learning just like any other tool?

Varelze

TAO: I am under the impression that AI/ML has not dominated simulation/rendering yet and I cannot see a clear way to merge these fields. But I should probably mention that people have started to talk about using deep learning for physics simulation for a while and I am pretty sure there have been some SIGGRAPH papers on this topic.


I am currently an undergraduate in math and computer science who joined a machine learning lab a couple months ago. Everything has been utterly fascinating but I am struggling to really understand what I am working with. What are some good resources for an undergrad to help with understanding more on AI and machine learning?

Zenaric

ANDREW: Again, a huge +1 to Russell and Norvig's textbook on AI. Tom Mitchell's book on Machine Learning is pretty good too. There are also Andrew Ng's machine learning notes online.


Do you believe in machine learning, or do you also believe in semantic artificial intelligence that relies on abstract reasoning more akin to concept webs, relationship databases, etc.?

I've heard that, say, self-driving cars do not rely on machine learning, but also on rule-based systems. What do you think?

VermillionAzure

ALYSSA: I believe in a thing called love

I think any complex system, such as autonomous vehicle, is most successful when it combines machine learning, hierarchical control strategies, and other tools to create a robust system.


Do you personally think AI robotic is safe? I don't think so. Stop making our robot overlords!!

Fulgore_18

ALYSSA: No, and......no.

AI is only as safe as the programming specifies. It's important to design safe AI, as well as know the limits of any particular algorithm.


I need a good source on the theory of coding, I'm kind of wanting to learn C for hardware access and versatility and I'm inexperienced really with OOP, Functional and other methodologies (been away from coding for so long) but I'm also a geek and love to learn the inners of things first (ex I love philosophy of mathematics and/or abstract algebras but could careless about applications of general algebra - in fact I find learning the higher level maths allow the others to make application sense).

So I hoping for a suggestion on a good source (book is my preferred method but any suggestions are welcomed) and above comment on my background. Please keep in mind I'm a "why does that work vs how to do it" hence why I though one on the theory of coding and/or other C source in parallel would be a good idea to approach this issue.

somethingtosay2333

ANDREW: I can't help you on the theory of coding, but what about The Art of Programming?


When did you start to get into coding?

ravenHR

ALYSSA: I got into coding and engineering in college.


When did you start to get into coding?

ravenHR

TAO: I started when I was a freshman. No prior programming experience before college.


When did you start to get into coding?

ravenHR

ANDREW: I also started as a Freshman. I wanted to learn in high school but did not have the mentorship I needed there (and this was back before resources and information were widely available on the web as they are today, and it felt intimidating to me).


What's your favorite crypto tech and why?

MadeItLocally

TAO: you mean cryptography? I know very little about this field. When I took the cryptography class as an undergrad I was impressed with RSA. It's very neat.


What's your favorite crypto tech and why?

MadeItLocally

ANDREW: I am a big fan of Cryptokitties. Also, I don't know if you've heard this, but I have a cat.


How do you respond to someone who says that we have no hope of ever programming truly human-like artificial intelligence because the human mind was programmed by brute force (trial and error) over billions of years of evolution, and this process effectively involved a mind-numbingly large number of simulations run amidst very complex environments. i.e., training human-like AI requires complexities that dwarf our current computing power by many orders of magnitude.

ClarkFable

ALYSSA: I would counter that genetic algorithms specifically mimic this form of brute force evolution, and that the computational power available to us is always increasing.

For example, Waymo drives 8 million miles per day in the virtual world. Yes, this is a highly-specific simulation environment, but if you look at the recent advancements in AI simulations, I think we are nowhere near our limits.


Do you fear the day when someone from the future comes to try to kill you to prevent the inevitable robot uprising?

hnglmkrnglbrry

ALYSSA: Who's to say someone already hasn't tried?


Was this AMA cancelled?

Iyassou

ALYSSA: Nope! We're still here


Was this AMA cancelled?

Iyassou

ANDREW: Whatup Iyassou!


Was this AMA cancelled?

Iyassou

TAO: nope. It's happening now.


Additional Assets

License

This article and its reviews are distributed under the terms of the Creative Commons Attribution 4.0 International License, which permits unrestricted use, distribution, and redistribution in any medium, provided that the original author and source are credited.