Generalmente no lo haces. ¿Qué estás “revisando”?
a) estilo de programación adecuado?
la respuesta eficiente será similar a un IDE como VS2017 que permite la aplicación de ciertas plantillas (por ejemplo, las declaraciones genéricas de var x se pueden marcar como correctas, advertencias o errores, dependiendo de qué tan estricto se haya definido su estilo de codificación, por ejemplo, si las políticas de estilo de programación quieren una escritura explícita, por lo que var x se considera “no bueno”, y debe decir algo como x, definir esto en la plantilla y construir el código en el IDE y detectar todos los errores / advertencias;
- ¿Cuán ampliamente adoptado es el aprendizaje automático en el comercio?
- ¿Cuáles son las herramientas basadas en redes neuronales disponibles ahora para el consumidor?
- ¿Cuáles son los temas candentes en el aprendizaje automático y la lógica difusa juntos?
- ¿Puedo usar la agrupación (k-means, etc.) en un gran conjunto de datos para automatizar el proceso de búsqueda de similitudes y hacer recomendaciones?
- ¿Qué es más beneficioso para la comprensión general de la informática, el procesamiento del lenguaje natural o la teoría de la computación?
b) salida adecuada (respuesta correcta)?
Suponiendo que realmente comprende la pregunta de codificación y puede encontrar el caso de prueba de extensión mínima correcta para ejercer el código si resuelve todos los casos o no, entonces no necesita ML. Simplemente fuerce la salida del código que se está revisando en un formato común, tenga un conjunto de preguntas de prueba estandarizadas (entradas mínimas de casos de prueba) y auto “compare” las salidas esperadas con cada ejecución del código que se “revisa”. Para que esto funcione con sensatez, la corrección del formato de la salida y la sensibilidad de la función de comparación deben homogeneizarse (lo llamo HUMANIZADO). por ejemplo, si se le pide al código del alumno que muestre el resultado de una secuencia de Fibonacci y el alumno lo genera con espacios adicionales y, por alguna razón, se imprime con decimales (como un tipo flotante), mientras que la salida esperada se preparó con menos espacios y simplemente se presentó como entero, su herramienta de comparación debe ser inteligente para considerar los dos como EMPAREJADOS siempre que el resultado numérico sea el mismo. (Los maestros que solo confían en las comparaciones automáticas de una manera booleana sin comprender mejor la diferencia en los resultados “fallidos” de la OMI están cambiando los estudiantes y la institución educativa en este caso. Los humanos aprenden de los errores y los mejores maestros son los que pueden guiar un estudiante que puede estar a solo un porcentaje de la solución ideal).
c) si está hablando de descubrir CUALQUIER lógica del código automáticamente con ML y criticar si la lógica del código realmente resuelve el problema dado?
… estás entrando en la emocionante pregunta de P vs NP … o lo has resuelto (felicidades) o al menos has alcanzado un nivel muy alto de IA. De cualquier manera, solo debes pedirle a tu propia IA que produzca lo que estás pidiendo en esta pregunta 🙂