Informes de informática y detección de IA: el código, el pseudocódigo y la prosa que queda entre medias
Un informe de informática son dos documentos grapados. Uno de ellos es el que se mide. El otro está hecho de valores, y es el que una pasada de revisión puede romper sin que te des cuenta.
Equipo de HumanPen
· 12 min de lectura
La respuesta breve
La postura publicada de Turnitin sobre el código es breve y concreta: el modelo «does not reliably detect AI-generated text in the form of non-prose, or code» (no detecta de forma fiable el texto generado por IA en forma de texto no narrativo o código), y las preguntas frecuentes añaden que Turnitin está «not pursuing ChatGPT code detection at this time.» (no está desarrollando la detección de código de ChatGPT en este momento). Así que tus listados, tus bloques de pseudocódigo y tus transcripciones de terminal no son de lo que trata el porcentaje de IA. Trata de los párrafos que hay entre ellos, y en un informe de informática eso significa la justificación del diseño, el recorrido del algoritmo, el análisis de complejidad y la discusión de la evaluación. Esos párrafos son también lo más uniforme del documento, porque se supone que el buen texto técnico es uniforme.
Al margen de todo eso: lo que tu departamento te permite generar lo fija su política de integridad académica, no lo que mide un detector. Responder a una de esas preguntas no responde la otra, y tratarlas como la misma pregunta es la manera de acabar en una reunión.
Lo que Turnitin dice realmente sobre el código
Dos frases sostienen todo el asunto. La primera está en la definición que dan las preguntas frecuentes de lo que se analiza:
"The model does not reliably detect AI-generated text in the form of non-prose, or code, nor does it detect short-form/unconventional writing such as bullet points (short non-sentence structures)." (El modelo no detecta de forma fiable el texto generado por IA en forma de texto no narrativo o código, y tampoco detecta la escritura breve o no convencional, como las viñetas, que son estructuras cortas que no llegan a ser frases.)
Lee una línea más, porque ahí es donde se vuelve útil:
"This means that a document containing several different writing types would result in a disparity between the percentage and the highlights." (Esto significa que un documento que contiene varios tipos de escritura distintos daría lugar a una discrepancia entre el porcentaje y los resaltados.)
Un informe de informática es, por construcción, un documento que contiene varios tipos de escritura distintos, así que esa discrepancia es el estado normal de este género y no una anomalía. La guía del informe enuncia la misma exclusión con una lista más larga: menciona la poesía y los guiones junto al código, y añade las tablas y las bibliografías anotadas al lado de las formas breves.
La segunda frase suele circular sin su contexto, así que conviene decir dónde vive. Es la última línea de la respuesta a «Why is AI detection not being added to Gradescope?» (¿por qué no se añade la detección de IA a Gradescope?), y esa respuesta dice que Turnitin «not currently have plans to add these capabilities to Gradescope, since the primary use case for Gradescope is handwritten text while for AI detection we're focusing on typed text» (no tiene previsto por ahora añadir estas capacidades a Gradescope, ya que el caso de uso principal de Gradescope es el texto manuscrito, mientras que en la detección de IA nos centramos en el texto mecanografiado), y después: «In addition, we are not pursuing ChatGPT code detection at this time.» (Además, no estamos desarrollando la detección de código de ChatGPT en este momento).
Esto importa más en informática que en cualquier otra materia, porque Gradescope es donde se entrega gran parte del trabajo de programación. Si tu implementación va a un corrector automático y tu informe escrito va a una tarea de Turnitin, son dos circuitos con funciones distintas, y el porcentaje de escritura con IA que acabas viendo se calculó en el segundo. Qué producto de Turnitin tiene detección de IA cubre el lado de las licencias de esa separación.
Qué partes de tu informe son prosa, en el sentido que se usa aquí
La definición está en la guía del informe, y sus ejemplos merecen atención:
"Qualifying text (prose sentences contained in long-form writing format) means individual sentences contained in paragraphs that make up a longer piece of written work, such as an essay, a dissertation, or an article, etc." (Por texto calificable —frases de prosa contenidas en un formato de escritura extenso— se entiende cada una de las frases que forman los párrafos de un trabajo escrito más largo, como un ensayo, una tesis doctoral o un artículo, etc.)
Un ensayo, una tesis doctoral, un artículo. Un informe de proyecto escrito con el registro de una referencia de API no es ninguna de esas tres cosas, y Turnitin no publica ningún pronunciamiento al respecto. Lo que publica es la prueba de la frase, así que aquí está esa prueba aplicada elemento por elemento. Este es nuestro mapa, no el del proveedor.
| Elemento de un informe de informática | ¿Frases dentro de párrafos? | Notas |
|---|---|---|
| Introducción, planteamiento del problema, trabajos relacionados | Sí | Prosa académica corriente |
| Justificación del diseño: por qué elegiste una estructura y no otra | Sí | Normalmente lo más argumentado del archivo |
| Recorrido del algoritmo en palabras | Sí | Aquí es donde suelen caer los resaltados |
| Párrafos de análisis de complejidad | Sí, si están escritos como frases | Una línea que solo contiene `O(n log n)` con un símbolo a cada lado no es una frase |
| Bloque de pseudocódigo | No | Estructura por líneas, no frases gramaticales |
| Listado de código fuente | No | Nombrado expresamente en la frase de exclusión del proveedor |
| Transcripción de terminal, salida de log, traza de pila | No | No es prosa, y tampoco es tuyo para reformularlo |
| Instrucciones de instalación o de compilación como comandos numerados | No | Las viñetas y las estructuras cortas que no son frases quedan excluidas |
| Entradas de referencia de funciones o de endpoints | Depende de cómo las escribas | «Devuelve el flujo de tokens analizado.» es una frase; una tabla de parámetros a dos columnas no lo es |
| Tablas de evaluación con tiempos y precisión | Cifras: no | Una nota de versión del 9 de agosto de 2023 dice que la prosa extensa dentro de las celdas de una tabla sí se procesa, y que las entregas existentes deben volver a enviarse para que se reprocesen |
| Discusión de resultados, limitaciones, trabajo futuro | Sí | Prosa de principio a fin |
| Referencias | Excluidas | La misma nota de versión dice que las bibliografías quedan excluidas cuando se procesa el informe de escritura con IA |
De esa tabla salen dos consecuencias. Tu denominador es pequeño, así que el porcentaje es una afirmación sobre una parte del archivo y no sobre el archivo, y las preguntas frecuentes lo dicen con estas palabras: "This percentage is not necessarily the percentage of the entire submission. If text within the submission is not considered long-form prose text, it will not be included." (Este porcentaje no es necesariamente el porcentaje de toda la entrega. Si el texto de la entrega no se considera prosa extensa, no se incluirá.) Y si el informe está lleno de listados, el texto calificable puede quedarse tan bajo que el comportamiento de todo o nada de los documentos cortos empiece a importar. Los requisitos de archivo dicen que una entrega necesita "at least 300 words of prose text in a long-form writing format" (al menos 300 palabras de prosa en un formato de escritura extenso) para que se genere siquiera un informe.
La prosa que se mide es la prosa más uniforme que escribes
Turnitin publica una descripción de lo que sus falsos positivos suelen tener en común:
"Sometimes false positives (incorrectly flagging human-written text as AI-generated), can include content without a lot of structural variation, text that literally repeats itself, or text that has been paraphrased without developing new ideas." (A veces los falsos positivos, es decir, marcar como generado por IA un texto escrito por una persona, pueden incluir contenido con poca variación estructural, texto que se repite literalmente a sí mismo o texto parafraseado sin desarrollar ideas nuevas.)
Y la frase siguiente, que va dirigida a quien te califica y no a ti:
"If our indicator shows a higher amount of AI writing in such text, we advise you to take that into consideration when looking at the percentage indicated." (Si nuestro indicador muestra una cantidad mayor de escritura con IA en ese texto, te aconsejamos que lo tengas en cuenta al mirar el porcentaje indicado.)
Lee ahora esas dos propiedades contra un documento técnico bien escrito. La variación estructural es justo lo que una sección de referencia elimina a propósito: cada función recibe el mismo marco, primero el nombre, luego los parámetros, luego el valor de retorno y luego los modos de fallo, para que quien haya aprendido el marco una vez pueda hojear el resto. Decir lo mismo dos veces de la misma manera es exactamente cómo le dices a un lector que dos componentes se comportan igual. Una guía de estilo que te pidiera variar la forma de cada entrada sería una mala guía de estilo.
La misma forma aparece en el recorrido del algoritmo, por otro motivo. Esa sección suele repetir en palabras lo que el listado de arriba ya dice. Repetir algo no tiene a dónde ir estilísticamente. Cada paso empieza con el paso, cada frase tiene el mismo sujeto, y el párrafo es una transcripción del flujo de control.
Dos límites honestos a esto. Turnitin no da ninguna frecuencia para esas propiedades, solo una lista de lo que los falsos positivos «can include» (pueden incluir), así que nadie puede decirte cuánto del efecto explica esto. Y el comportamiento del modelo no es un manual del que puedas razonar hacia atrás: las preguntas frecuentes dicen "Our model is not explicitly programmed to evaluate specific signals such as 'burstiness,' 'perplexity,' or other individual metrics sometimes referenced in public discussions." (Nuestro modelo no está programado explícitamente para evaluar señales concretas como 'burstiness,' 'perplexity,' u otras métricas individuales que a veces se mencionan en debates públicos.) El mito de perplexity y burstiness tiene la versión más completa, incluida la frase que aparece en otro punto de la misma página y que te impide sobreinterpretar esta.
La mitad del archivo que está hecha de valores
Esta es la asimetría que diferencia los informes de informática de los ensayos. El contenido excluido de la medición no es un fondo inerte. Es la parte del documento donde un solo carácter alterado hace que el documento esté mal, y una pasada de revisión la lee, la puntúe alguien o no.
| Contenido | Por qué es un valor, no una redacción | Qué cuesta una reformulación plausible |
|---|---|---|
| Identificadores y su uso de mayúsculas: `getUser` frente a `get_user` | El nombre es lo que se resuelve | La prosa nombra ahora una función que tu código no define |
| Indicadores de línea de comandos, `--max-workers=8` | Texto ejecutable | «el indicador de trabajadores máximos fijado en ocho» no se puede pegar en un shell |
| Rutas y nombres de módulos, `src/parser/tokenizer.py` | Apunta a una ubicación real | Nadie encuentra el archivo |
| Versiones, `Python 3.11`, `CUDA 12.4` | Reproducibilidad | Un entorno que nadie puede reconstruir |
| Expresiones de complejidad, `O(n log n)`, `O(1)` amortizado | Una afirmación con una demostración detrás | «más o menos lineal» es una afirmación más débil y distinta |
| Texto de error citado y códigos de salida | Una cita de lo que imprimió el programa | Ya no es una cita |
| Nombres de endpoints y métodos, `POST /v1/jobs` | Un contrato de interfaz | Una petición que devuelve 404 |
| Semillas, hiperparámetros, divisiones del conjunto de datos | La base de tus cifras | Resultados que nadie puede reproducir, tú incluido |
Hay un segundo fallo más difícil de ver, porque el resultado se lee perfectamente bien. Un documento técnico le da a cada concepto un nombre. Si una revisión deja `hash map` en la sección 3 y `dictionary` en la sección 4 para el mismo objeto, o alterna `worker` y `thread`, el documento ha dejado de decirle al lector si eso es una cosa o dos, y quien lo califica no puede resolverlo sin leer tu código. Eso es un daño al documento, y aquí tampoco entra ninguna puntuación. Conviene decirlo, porque va en contra de una costumbre que en otros sitios te sirve: en casi cualquier texto un término definido es una elección de palabras, y en este género se parece más a un identificador.
Diez minutos de revisión, en este orden
Ninguna de estas comprobaciones necesita herramientas que no tengas ya abiertas.
- Copia todos los comandos del documento y ejecútalos en un directorio de pruebas. Las instrucciones de instalación son lo primero que se pudre y lo último que alguien vuelve a leer.
- Haz una lista de los identificadores que define tu código y busca cada uno en el documento. Lo que está en el código y falta en el documento es un cambio de nombre que ocurrió sin ti.
- Elige tus cinco términos conceptuales más importantes y busca cada uno. Un nombre por concepto, en todas partes, o arréglalo ahora.
- Lee cada afirmación de complejidad contra la función que describe. `O(n log n)` y «eficiente» no son intercambiables, y solo una de las dos se puede calificar.
- Compara con una ejecución real todo lo que esté entre comillas. Las líneas de log y los mensajes de error son citas.
Dónde está realmente el margen
Si el bloque marcado es tu recorrido del algoritmo, hay una pregunta que conviene hacerte antes de tocar las frases: ¿aporta esa sección algo que el listado de arriba no aporte ya? Un recorrido que solo renombra las variables y añade un «luego» entre los pasos es contenido duplicado en un informe, diga lo que diga cualquier detector. La versión que se gana su sitio explica por qué el bucle está estructurado así, cuál era la alternativa y dónde se viene abajo.
Ahí es también donde tu escritura tiene a dónde ir. Justificación del diseño, alternativas descartadas, el error que te costó dos días, lo que el benchmark no mide, la limitación que arreglarías con una semana más. Esos párrafos varían de forma porque varía el pensamiento que hay dentro. Las secciones estilo referencia no varían, y no deberían.
Conviene ser sincero sobre los límites de ese consejo: estoy describiendo qué hace que un informe se lea mejor y se califique mejor. Nadie, nosotros incluidos, puede decirte qué le hace eso a un número. Turnitin no publica la función de agrupación ni la longitud del segmento, y advierte de que su propio modelo "may not always be accurate (it may misidentify human-written, AI-generated, and AI-paraphrased text), so it should not be used as the sole basis for adverse actions against a student." (no siempre es exacto, puede identificar mal texto escrito por personas, generado por IA y parafraseado por IA, por lo que no debe usarse como única base para tomar medidas perjudiciales contra un estudiante).
Si vas a revisar la prosa
Lo que hace lenta la revisión de un informe de informática tiene poco que ver con las frases. Un párrafo reescrito puede llevar cuatro identificadores, un indicador y un número de versión, y cada uno de ellos hay que volver a cotejarlo con el código antes de fiarte del párrafo. Cuenta el costo en párrafos tocados.
Por eso La herramienta HumanPen te pide que nombres primero el alcance. Sube el documento y entonces marca los pasajes o importa un informe de IA de Turnitin o iThenticate y deja que sus pasajes marcados tracen el límite. Todo lo que queda fuera se deja intacto, lo que en este género significa que tus listados y tus bloques de comandos no entran en la pasada salvo que los pongas tú. El motor no trabaja por debajo del párrafo, así que una selección que termina a mitad de párrafo se amplía para cubrirlo entero y se te muestra antes para que lo confirmes, y los créditos cuentan las palabras realmente reescritas. La terminología está en la lista de cosas que se propone preservar, junto con la estructura, las citas y la maquetación. Los pasajes que sigan marcados después pueden volver a reescribirse gratis cuando se cumplan las condiciones para ello.
Hay una línea en sus preguntas frecuentes sobre revisar documentos complejos después de la descarga. Para un informe lleno de identificadores, eso significa la lista de comprobación de la sección anterior, no una lectura de corrido. La versión a nivel de documento de lo que se rompe en un viaje de ida y vuelta, con campos y referencias cruzadas incluidos, está en Campos de Word, índices y referencias cruzadas.
Preguntas frecuentes
¿Detecta Turnitin el código generado por IA? Turnitin dice que su modelo no detecta de forma fiable el texto generado por IA en forma de texto no narrativo o código, y las preguntas frecuentes dicen que no está desarrollando la detección de código de ChatGPT en este momento. Eso es una afirmación sobre lo que mide este informe. No es una afirmación sobre lo que permite tu institución, que es un documento aparte que deberías leer.
¿Se puntúa mi bloque de pseudocódigo? La regla publicada es que el modelo analiza frases de prosa dentro de párrafos, y enumera las formas breves y las estructuras que no son frases entre las cosas que no detecta. Un bloque de pseudocódigo está estructurado por líneas, no por frases. El párrafo que lo presenta sí es prosa.
¿Por qué los resaltados se concentran tanto en una sección? En parte es aritmética. Si la mayor parte del archivo queda excluida, los resaltados solo pueden aparecer en lo que queda. Turnitin también describe que puntúa segmentos solapados y agrupa los valores, así que los tramos uniformes de texto tienden a producir resultados uniformes en lugar de una dispersión.
Mi sección de análisis de complejidad volvió marcada y escribí cada palabra. Eso pasa, y el párrafo de las preguntas frecuentes sobre falsos positivos es lo que hay que poner delante de quien califica, sobre todo su frase final, que le aconseja tener en cuenta la naturaleza del texto al leer el porcentaje. Lo que no hará es zanjar la autoría, en ninguna de las dos direcciones.
Mi informe es casi todo listados y no se generó ningún informe de IA. Comprueba el mínimo antes de asumir que algo falló. Los requisitos de archivo dicen que una entrega necesita al menos 300 palabras de prosa en un formato de escritura extenso, y un informe cargado de listados puede quedarse por debajo aunque el número de páginas parezca sano. La lista general de exclusiones está en qué contenido se salta la IA de Turnitin.
Seguir leyendo
¿Te han marcado un trabajo de enfermería como IA? Esto es lo que de verdad puedes cambiar
12 min de lectura
Detectores de IAInforme de caso marcado como IA: qué puedes reescribir cuando los datos son inamovibles
12 min de lectura
Detectores de IAInformes de laboratorio de ingeniería y detección de IA: qué es lo que realmente se mide
12 min de lectura