Timothy Threadgold

Timothy Threadgold

Teaching Fellow and Doctoral candidate at the University of Reading. Currently writing my thesis on novel materials for multilayer infrared filters for space based applications.

Location Reading, UK


  • Hey Abili, unresolved dependencies just means that Android Studio is missing bits of software or files that it needs!
    But Android Studio tends to be pretty good with providing solutions as well as error messages, so if any of them have links in (should show up as blue text!) you should be able to just click them and it will install the missing dependencies...

  • Hi Elliot, if your connecting from behind a proxy server (which if your connecting through an company or university etc.) Then you may have to add some lines to your gradle.properties file (which will show up under the 'Gradle Scripts' folder in the project explorer in Android Studio.)

    try adding these lines to the gradle.properties...

  • Hi Zoey, as Martin says above please try the command 'javac -version' instead of 'java -version'!

  • Don't worry Dulcinea, its actually less complicated after the initial set-up! Not to say that its easy, but definitely less error prone!! If you keep having problems just post back here and we'll help you as we can.

  • Hi Becky, sorry for the delay - just add it to the bottom of the list by clicking new! Microsoft finally decided to update the interface to something better!

  • Hi Ihab,

    If that is the filepath of your JDK installation then:
    * You need to set up the 'JAVA_HOME' variable with the string C:\Program Files\Java\jdk1.8.0_111
    * You should add 'C:\Program Files\Java\jdk1.8.0_111\bin;' to the end of your path variable

  • Unfortunately Jejen, it needs to be 'javac -version' that works not 'java -version'!

    The result you have is showing the version of your Java runtime, when what we need is to check that the Java development kit is installed! Go to the next step for more information.

  • Hi Eliot,
    make sure:
    * You have a semi-colon after the entry in the path
    * There should be no spaces between the filepath your adding to the path entry and the one before
    * Double check to make sure that the path is the correct one

    If none of that works, try resetting your PC and then trying again!

  • Hi Craig,

    We don't current;y have a start date for the next run of Begin Programming but if you go to the course page you can register interest and you'll get an E-Mail when the date has been set.


    Hope to see you there!

  • This point also reminds me of films where aliens try to invade Earth to steal our water, ignoring the fact that there are numerous sources of water throughout both our solar system and the galaxy which we neither depend upon nor would fight back for!

    Maybe someone needs to make a film where they ask the robots to save humanity instead of the Earth! Though...

  • Sounds very much like the idea of Von Neumann machines (https://en.wikipedia.org/wiki/Self-replicating_spacecraft#Von_Neumann_probes) except more like an insect hive where each robot has it's own purpose. I like it!

  • Hi Chris,

    It's all in the planning! It's very easy to get excited and jump into designing your robot and forget about something simple like friction, and then spend hours later working out why the numbers don't match up to your expectations! Making sure your model is correct is at least as difficult as getting the maths right, if not more so.


  • Hi Christopher,

    Microwave and Terahertz could theoretically be used in a radar like system, however currently Lidar is the more preferable option for where very accurate ranging measurements are needed, radar where you have (quite large) objects at a distance, and ultrasonics where you need close measurements (that aren't necessarily as accurate.)


  • That would be a great idea for a new project!

    I've in fact in the last few years seen people propose inductive roads for electric cars to charge as they drive.

  • Internal Sensors can be used in conjunction with external ones, for example if you know the initial location of the robot then knowing the speed of the wheels and the amount of time they run for can give you the approximate location at the end (with an error caused by wheel spin and calibration of the motors.)

    Using techniques like this with external...

  • Hi Ziad,

    If you'd prefer, there are robot sports with less violence. The RoboCup 2016, robot football league has literally just (yesterday) started in Germany!

    For more see here:

  • Hi Joe,

    I did a bit of looking around - as I had actually never seen actual studies on how actual experiment compared to the original theory and it seems it is quite well backed up.

    There is an article here:
    From MIT on the perception of faces as they morphed from completely...

  • Hi Neil,

    I'm sorry you haven't been able to get it to work. If you could provide some more information we may be able to help!

    Which operating system are you using? (And which version?)

    Could you let me know where it has been installed? (Was it the default path C:\Program Files\java )

    And could you try navigating to the bin directory and trying to...

  • Hi Federico,

    If javac isn't working please try following the instructions in the FAQ's to add java to the Path system variable:


  • Hi Oscar, sorry for the delayed reply!

    If you download the PDF guide from here: https://ugc.futurelearn.com/uploads/files/94/8d/948d53a2-3e88-4b5b-8c06-9247ce7ce257/1_9_SettingUpTheMOOCProject.pdf

    And scroll down to the 3rd stage, Dealing with Errors (page 4) and follow the instructions it should solve your problem!

  • That's a problem I've not had before!

    I've done some reading and it seems like if you go to your user file in windows something like "C:\Users\USERNAME\" (where user name is whatever name you use to login and C is whatever your main directory is!) Then if you delete the folder '.gradle' that you should be able to find there.

    Then restart android studio...

  • You should be okay now!

    The android-21 target is a different version of the Android SDK than what Android Studio installs by default, and can be added in the SDK manager! If you look at the updated guide to setting up the IDE (In the downloads on this page) there are more detailed instructions for doing that in step 3!

  • Hi Simms,

    The first thing to do is check the messages tab (available at the bottom bar of the Android Studio window.) Quite frequently it will provide an error with a link to resolve it.

    I would also suggest running Android Studio as administrator as that will sometimes solve the daemon error!

  • Hi Oscar, If you check the messages tab (along the bottom bar of the Android Studio window) are there any error messages there? Quite frequently there will be an error message there with a link to click to resolve the problem!

  • Hi Ekpenyong, The first thing to try is running Android Studio as administrator as this can sometimes solve the problem!

    If that doesn't help check our FAQs here: https://www.futurelearn.com/courses/begin-programming/8/steps/71668#T11-2

  • Hi Kareem, If you click on the messages tab (at the bottom of the screen) does it show any errors on that with a clickable link?

  • Hi Rushi and Eva, if you've got a device working then you will be able to use it all the way through. It's just that some people either struggle to get there device working or prefer to just use the emulator on the computer.

    If you like you can skip installing the emulator if you have a device that works for testing!

  • If there isn't a clickable link in the error message there that resolves it you may have to manually add the SDK component!

    To do this look at the toolbar at the top of the screen and on the far right there is one there is the SDK manager, hover over the buttons to find the right one as a tooltip will come up after about a second of hovering, it looks like...

  • Hi Rushi, it should be okay with both installed as Android Studio will just look for the JAVA_HOME variable and go to where that points! As long as you don't have any troubles I would leave them both for now and get coding!

  • Hi Femi,

    Is it giving specific messages in the IDE? If there are blue links in the erros you may be able to click them to correct the issues automatically! If you aren't seeing any message boxes at the bottom of the main IDE window then try clicking the 'event log' button in the bar at the bottom of the main window on the right hand side.

  • Hi Dylan, try looking at our FAQs here: https://www.futurelearn.com/courses/begin-programming/8/steps/71668#T5

    If your using Windows 10 it will be the same as for Windows 8 but potentially a slightly different interface!

  • Hi Teresa, that's showing that you have the 1.8 version of the JDK installed - unfortunately that will cause you to have errors later on in the course! I know it's a hassle (although easier now you've done it once!) But if you could uninstall the 1.8 version of the JDK and install the 1.7 version we link to on the previous step it will ensure you can get...

  • Rushi, you will need to use the file explorer to navigate to the folder of the JDK and open the bin folder, then copy the entire path shown in the navigation bar. Then in that 'path' variable you will need to add a semicolon ; and then paste the path in!

    Beata, the path string will look different on everyone's computer as it depends on what software you...

  • Jan are you attempting to open the .exe file from the Program Files\Java\jdk1.7.0_79\bin folder? If so you need to open the command line first! If you're using windows then open the start menu and search for 'command prompt'.

  • Phew! Glad I could help!

  • Sorry your experiencing trouble with it Geoff, but this is an unfortunate reality at the moment! I promise once the JDK and Android Studio are up and running the rest of the course should be more trouble free!

  • Can you try following the instructions in this video: https://www.youtube.com/watch?v=_hJYksZPMjk

    But use the JDK 1.70 u79 that we linked to rather than the jdk 8 he uses in the video, it has an extra step setting up an java home variable and hopefully will solve your problem!

  • HI Martin, did you make sure to close and reopen the command line after editing the path variable?

  • Hi Abdoallah, it should be listed as "Windows x86" on the JDK download page.

  • Either version will work, but I'd recommend 7u79. Once you've got it installed again move onto the next step for troubleshooting. It's most likely that it didn't add itself to the system path so programs (and the command line) can't find it, but you should be able to follow the videos on the next step to solve that!

  • Hi Toby, What exactly didn't work? if your receiving errors in the command line there is some troubleshooting info on the next page, if your having trouble installing let me know what operating system your using and we'll see if we can help!

  • Hi Felix, no please don't install the JDK 8, if you follow the link to the JDK 7 on this page, or here: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html and install that one!

  • Anisha is correct! I have got it working on Windows 7,8, and 10 OS's so I can guarantee it's functional!

  • Hi Rutha, the 'java -version' command is unfortunately different from the 'javac -version' command the one you have both used gives you the version of the Java runtime environment installed (the software that allows Java programs to run on your computer.)

    The javac command is for the Java compiler that takes the code you write and creates a program from...

  • Hi Douglas there is some troubleshooting in the next step, one of the things it suggests is to open up a terminal and try the command:

    launchctl setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk

    Though you will have to make sure the numbers match on the JDK version (this one should be correct if you followed the link on this page and...

  • That wont be a problem Skye!

    We just don't want anyone installing the 1.8 version of the JDK as a few things changed in that which break the code we will be suing in the course!

  • The Gaia theory doesn't have a cultural origin, and the only link between the theory and the Gaia Online is the word Gaia!

    Gaia theory was proposed by James Lovelock in the 1970's as a theory of temperature regulation of the Earth if your interested you can read the original publications on James Lovelocks' website:

    Atmospheric homeostasis by and for the...

  • Hi Detlef, I believe you have spotted an error in the video! The second equation (with friction but before a slope is taken into account) should be:

    O = k*v - k*F

    So that the second 24 in your calculation should be 0.125:

    O = k*v - k*F
    O = 0.125*24 - 0.125*2
    O = 3 - 0.25
    O = 2.75

    Sorry about that!

  • Thanks for the link Sarah! That's a really cool robot, the wings look so delicate though, I would think they had to replace the membrane quite often!

  • If I understand you correctly I think that's correct! The sensors give us detailed quantified information which is used to make decisions and correct for errors using feedback.

  • Don't worry about learning all of it. You can always come back here later if you find a word you don't know, or download the PDF version and print it for a handy reference!

  • Mid/Far Infra-red (1µm-100µm) - Not so common in robots but can be used for chemical detection (through spectroscopy) - some of the same types of sensors can be used (CCD cameras can be made into the mid infra-red) also pyroelectric sensors (that detect small changes in temperature caused by incident photons)

    Terahertz (100µm-1mm) - Can be used for material...

  • Your correct that Terahertz is band of the electromagnetic spectrum, as is microwaves, infra-red and laser range finders are usually either in the visible spectrum or near infra-red (approximately 390nm to 1200nm wavelengths.) However all of these sensors and wavelengths can have very different uses and detection methods.

    Before I say anything more I just...

  • You are correct! Unfortunately the simulation isn't set up for it. Multiple reflections are an interesting problem though and can be quite useful, see here: http://www.popsci.com/system-uses-lasers-and-cameras-to-see-around-corners

    However getting useful data from multiple reflections is not particularly easy!

  • We definitely wouldn't expect you to remember them all! When you see a word you don't understand you'll be able to come back to this step and check the definition again!
    Hopefully though you'll remember quite a few by the end of the course when you've seen them in context. Until then you can always get the PDF version for reference if you don't want to keep...

  • This is still an debate that is playing out now in governments and courts across the world in relation to unmanned aerial vehicles and other autonomous, however we have mostly gotten around it by having a human take control to make ethical decisions on a robots behalf or hard coding things it should not do.

    But the interesting point is with driver less cars...

  • Well I may have had a lot of practice (This is my second time being an Educator on this course now!) But I managed 9.4 seconds for the forward race and 8.6 seconds for the reverse!

    As others has said the key is keeping the corners slow and the forward speed fast! Good luck all!

  • Hi Les,

    Maybe it would be useful for us to add a graph similar to the one found here: https://en.wikipedia.org/wiki/File:Accuracy_and_precision.svg to help. We have tried to keep the definitions here as simple as possible as people joining the course have a range of experience, but I don't think they're incorrect at the moment!

  • Thanks for the story Allen, that's hilarious! I'm guessing they didn't let you back to the set after that!

    If you want to see how far we've come in terms of robot actors you only have to look at BB8 in the new Star Wars movie: http://www.ibtimes.co.uk/star-wars-force-awakens-bb8-robot-droid-real-machine-not-puppet-cgi-1496968

  • Good catch on the phototransistor/photoresistor Steve we'll look into updating the glossary. Unfortunately this is a mistake I also made a fortnight ago buying components for a hobby project!

    For the purposes of this course take precision as being related to the resolution of measurement and accuracy being a measurement of error.

    I'm divided on the...

  • Ira, you email yourself the APK file that you have created on your PC yo yourself which you can then download and install on your phone. At this point it doesn't do much - but if you get it working here, then you know the method for later on!

  • It also makes it easier to find certain variables using ctrl+f as 'jj' is unlikely to appear elsewhere

  • Chris, I meant that while it is a part of the tools that can be used in coding java,we will not be using Java Mission Control.

    The important part is that if you open a command window and type javac -version that the program responds with the version number. If that is the case then you can move on to the next steps!

  • Hi, Gradle errors normally come with links that you can click that will solve the error - it may come up with more errors but if you keep clicking the links, hopefully you will reach an error free point!

  • Hi,
    can you confirm that the JDK is installed and you can get the version number by typing "javac -version" into the command line?

  • Thanks for posting your solution - glad you got everything working okay!

  • Hi Simon,
    Darrel is correct, if you have installed the JDK but do not get a response from "javac -version" then you have a path error and if you follow the instructions in the video you should be able to get it working!

  • I'm not sure about java mission control, that's a little bit much for what we're going to be doing on this course, it's more for logging and optimization!

    But if you have now got the compiler working and on the path by following the instructions on the video (e.g. you now get a response from "javac -version")you should be able to move on to the next step...

  • If you look at the next step there is some more troubleshooting info that may help!

  • If your still having trouble make sure you clicked the "accept license agreement" button at the top of where the different versions are listed! It's unfortunately not as obvious as it could be!

  • Hello Sourabh,
    It sounds like an emulator error which may be solved if you look at the following steps, although if there is a link you can click on in the error message you should be able to click that and follow the instructions the program provides it will automatically solve the error.

  • Unfortunately David is right, running the command "java -version" is not an indication that you have the Java Development Kit (JDK) successfully installed, it will only show you the version of the Java Runtime Environment (JRE) that is used to run Java software not develop it!

    If you can not run "javac -version" then please check the troubleshooting steps...

  • Neil, I would recommend trying a system restore if there is an available point to rollback to in the recent past (before you overwrote the PATH variable.) Unfortunately the PATH string will be different depending on what software you have installed so you can't copy it from anyone else!

    For anyone else trying it, it may fix the issue but be VERY careful -...

  • In this instance the ultrasonic transducers can not detect direction by themselves, which is why ultrasonic transducers are often used in arrays (such as in ultrasound machines used in hospitals) or in the case of robots like ERIC they have two sensors (left and right.) As this is the simplest way to detect direction.

    There is the potential that you could...

  • Hi Vincent, yes, once you've watched the video and read the material, mark it as done and you can move onto the next step!

  • For those who are interested and haven't seen it before, take a look at this page created by the BBC that will tell you the likelihood of your job being taken over by a robot!

    Are you worried about being replaced? Do you agree with the results?

  • Thanks for posting this I had never heard of them before!

    What are they like to be around? I'm not sure whether I would find it reassuring or unnerving.

  • Definitely Hazera, one of my favourite examples of a robot designed to work with humans is the fictional robot Gerty, from the movie Moon (http://archive.wired.com/geekdad/2010/09/top-robot-sidekicks-in-film/2/). Gerty is in some ways very similar to Baxter, but is artificially intelligent, and he is able to effectively communicate emotion without being in any...

  • Maybe not so far off Patrick, have a look at Han, developed by Hanson Robotics: https://www.youtube.com/watch?v=HJvuzZ-kol0

    I don't mind admitting that I do think Han is kind of creepy! but I think he is definitely on the upward part of the curve for escaping the uncanny valley.

  • There does seem to be a lack of representation for China at the moment, we may have to rectify that for next time!

    In the mean time I did manage to find this: Su Songs Clock, https://vimeo.com/43772707, from 1088, however I'll leave it up to you whether you would consider it a robot or not!

  • That's a good question, it depends heavily on the control system!

    Some of the control systems you'll see later on, such as proportional controllers, are purely mathematical and will always do their best to adapt to the current situation.

    But it is possible that control systems based on machine learning algorithms could have a break clause based on...

  • Because both motors turn clockwise, so when the spindle is pointing to the right of the motors body this will drive the robot forward - but when you rotate it 180 degrees it keeps turning in the same direction which makes it spin!
    You can imagine that in the simulations pressing the 'Reverse Left Motor' button is swapping the positive and negative...