<!DOCTYPE html>
<html>

  <head>
    <link data-require="bootstrap@3.3.2" data-semver="3.3.2" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
    <link rel="stylesheet" href="style.css" />
  </head>

  <body>
    <h1>Registro de usuario</h1>
    
    <form>
      <select id="carrera" name="carrera" class="form-control">
        <option value="0">Elija carrera</option>
        <option value="taller1.txt">Taller 1</option>
        <option value="seguridad.txt">Seguridad informatica</option>
        <option value="diseno.txt">DiseƱo web</option>
      </select>
      <select id="materia" name="materia" class="form-control">
        <option>---</option>
      </select>
    </form>
    <script src="script.js"></script>
  </body>

</html>
var carrera = document.querySelector('#carrera');
var materias = document.querySelector('#materia');

carrera.onchange = mandoCarrera;

function llenarMaterias(mat){
  limpiarMaterias();
  for (var i = 0; i < mat.length; i++) {
    var option = document.createElement("option");
    option.text = mat[i];
    materias.add(option);
  }
}

function limpiarMaterias(){
  console.log(materias);
  /*for (var i = 0; i < mat.length; i++) {
    materias.remove(i);
    console.log(i);
  }*/
  
  materias.options.length = 0;
  
}

function reciboMaterias(respuesta){
  var indice = carrera.selectedIndex;
  console.log(indice);
  
  if(carrera.options[indice].value === 'taller1.txt'){
    var arMaterias = respuesta.split(",");
    console.log(arMaterias);
    llenarMaterias(arMaterias);
  } 
  else if (carrera.options[indice].value === 'seguridad.txt'){
    var arMaterias = respuesta.split(",");
    console.log(arMaterias);
    llenarMaterias(arMaterias);
  } 
  else if(carrera.options[indice].value === 'diseno.txt') {
    var arMaterias = respuesta.split(",");
    console.log(arMaterias);
    llenarMaterias(arMaterias);
  }
  else {
    limpiarMaterias();
    
    var option = document.createElement("option");
    option.text = '---';
    materias.add(option);
  }
}

function mandoCarrera(){
  var ajax = new XMLHttpRequest();
  var indice =  carrera.selectedIndex;
  if(indice != '0'){
    ajax.open('GET', carrera.options[indice].value);
    
    ajax.onreadystatechange = function(){
      console.log(ajax.status, ajax.readyState, ajax.responseText);
      if( ajax.status === 200 && ajax.readyState === 4 ){
        reciboMaterias(ajax.responseText);
      }
    }
    
    ajax.send();
  }
  else{
    reciboMaterias(0);
  }
}
/* Styles go here */
select {
  margin: 1em;
}
Html Basico,Html Avanzado,CSS,JavaScript,AJAX,JSON
PHP Security,Logical Secutiy,Master in Security
Entre lineas I,Entre lineas II,Colores I,CSS Avanzado