Acabo de recibir una carta de decisión para mi manuscrito enviado a una revista de Elsevier. Fue una revisión y reenvío. Sin embargo, uno de los revisores solicitó un archivo ejecutable para verificar mis resultados. (Sentí desconfianza por su comentario..)
Se trata de un artículo de informática sobre la prueba de la eficiencia de un algoritmo en un conjunto de instancias de la literatura. Comparé los resultados del algoritmo con los de otros autores.
No sé si es normal, pero debería ser normal que todos los revisores hagan esfuerzos razonables para verificar que las afirmaciones que hacen los autores son correctas, así que en la medida en que no sea normal, solo puedo felicitar al revisor por estar dispuesto a hacer un esfuerzo que otros revisores no hacen. Lo que usted siente como "desconfianza" es que el revisor hace su trabajo, ni más ni menos (y probablemente sea algo correcto decir que el trabajo de un revisor es desconfiar de las afirmaciones del autor, por lo que no veo la idea de que desconfíen de él). un revisor como algo de lo que avergonzarse u ofenderse).
Por cierto, también debería ser normal que los autores pongan a disposición cualquier software (incluido el código fuente siempre que sea posible) necesario para replicar y verificar sus resultados. Entonces, si no está satisfecho con que el revisor le responda con solicitudes molestas que retrasan la decisión sobre su trabajo, la próxima vez puede adelantarse a esos problemas al publicar su código fuente (o al menos enviarlo a la revista) junto con su manuscrito. Estoy seguro de que el revisor estaría mucho más feliz y, en última instancia, todos se beneficiarían, incluido usted.
Vengo de un campo diferente, en el que el código que usamos no es un resultado importante. Pero si un árbitro pidiera el código, se lo proporcionaríamos con gusto. La mayor parte de nuestro trabajo se realiza en python, por lo que un ejecutable no sería habitual, la fuente lo sería (también es cierto para matlab).
De hecho, lo único que encuentro un poco extraño aquí es el uso de ejecutable en lugar de fuente .
No se ofenda por la solicitud por un par de razones: no es el trabajo de los revisores confiar en usted; es su trabajo revisar su papel. Si un revisor se interesa lo suficiente en su trabajo como para querer ejecutar su código, no ha descartado su artículo sin más.
Para resumir la situación con sus datos: -
1) Se te ocurrió un algoritmo en papel/Matlab/lo que sea.
2) Implementaste ese algoritmo en algún lenguaje de programación.
3) Creaste un conjunto de datos de prueba para ejercitar tu algoritmo y obtuviste algunos resultados de lo que debería hacer en teoría.
4) Pusiste esos datos de prueba a través del código y obtuviste algunos resultados de lo que hace en la práctica.
En este proceso, hay varios lugares donde las cosas pueden salir mal con su metodología. Es posible que su código no refleje correctamente su algoritmo. Es posible que sus datos de prueba se hayan trabajado hacia atrás desde el código en lugar de hacia adelante desde el algoritmo. Sus datos de prueba para su algoritmo y sus datos de prueba para su código pueden no ser los mismos.
A menos que el revisor tenga el algoritmo y el código fuente y todos los datos de prueba para ambos y todos los datos de salida para ambos, no puede verificar que su trabajo sea sólido y que sus conclusiones sean válidas. Esto no está sujeto a disputa - es lógicamente imposible, si quieren revisar adecuadamente su trabajo. Cualquier otra cosa es hacer suposiciones que pueden no ser válidas.
Personalmente, me he visto afectado por esta situación, cuando mi empresa compró una propiedad intelectual de teoría de control de un investigador. Había escrito artículos sobre cómo se suponía que funcionaba esto y la teoría detrás de esto, y luego había construido algo de electrónica para implementar su teoría. Sus artículos cubrieron la teoría y también incluyeron esquemas para la electrónica. Cuando leí esto para averiguar cómo implementar su teoría en el software, descubrí que el esquema tenía un filtro adicional. La acción de este filtro resultó ser fundamental para que el sistema fuera estable o incluso eficaz, pero no se documentó en ningún momento de su trabajo. No fue hasta que tuvimos una llamada telefónica con él que descubrimos cuál era el propósito del filtro y cómo se suponía que debíamos ajustarlo.
Esto estaba en un artículo que teóricamente había sido revisado por pares cuando se publicó. ¡Claramente no había sido revisado por pares lo suficientemente a fondo! Sus resultados mostraron que, dados los mismos datos, el resultado de la implementación estaba bastante cerca del resultado esperado teórico y el efecto del filtro estaba en un lugar diferente en la respuesta. Sin embargo, la implementación nunca habría funcionado sin este filtro presente, y no habría sido nada difícil incluir esto en el modelo teórico. Incluso podría haber dicho "este filtro es necesario por estos motivos, pero se puede ignorar en esta área de la respuesta que estamos viendo por estos motivos" y se habría cubierto. Lo que no es aceptable es lo que hizo, que es no mencionarlo en absoluto,
Como dije, todavía publicó su artículo y nadie se quejó en ese momento. Sin embargo, sus revisores originales deberían haberlo visto. En su caso, su revisor debería estar buscando discrepancias como esta: es el punto central de la revisión por pares. Entonces, si las personas le preguntan por cosas que no ha puesto a disposición, (a) es una buena señal de que están revisando a fondo, y (b) debería haberlas puesto a disposición en primer lugar como mejor práctica.
Las presentaciones de artefactos son una cosa en CS. Lo que he visto es que prepararías una máquina virtual, donde tu software ya está configurado y listo para hacer experimentos. Entonces, el revisor puede estar refiriéndose a que la revista tiene algún procedimiento oficial para la presentación de artefactos. Alternativamente, algunos autores simplemente ponen a disposición el código fuente de sus herramientas y puntos de referencia a través de servicios como github, y el revisor puede sugerirle que también debería hacer esto. Con respecto a la desconfianza, la gente de computación naturalmente desconfía de los puntos de referencia y las comparaciones de herramientas, ya que las cifras finales pueden depender mucho de cómo se configure su experimento (por ejemplo, si lo compara con su propia implementación de un algoritmo existente, ¿lo implementó correctamente? ). También puede ser que los números que das en el papel parezcan un poco raros,
Enviar un ejecutable no es lo mismo que enviar el código fuente. Un ejecutable realmente no le da al destinatario ningún acceso a su código original (como un estudiante de informática ya debería saber, por supuesto). No veo ningún problema con esta solicitud.
Dada mi experiencia personal con comunidades de código abierto y la suposición de que el documento incluye la totalidad del algoritmo en cuestión, enviar el código fuente o la compilación relacionada de dicho software no produciría muchos efectos negativos.
Esto permitiría al revisor verificar los resultados y las afirmaciones realizadas por el autor del artículo. El problema clave que el revisor podría estar buscando es que haya implementado correctamente el algoritmo en el código fuente y que no esté confiando erróneamente en una característica del lenguaje de programación, el sistema operativo o el hardware para hacer afirmaciones sobre su tiempo de ejecución u otras características.
En la parte superior de mi cabeza, diría que en los casos vinculados a E/S es fácil confundir los algoritmos eficientes con, por ejemplo, la capacidad de Javascript para hacer que casi todas las llamadas a funciones sean asincrónicas. Por supuesto, esto se ve principalmente en operaciones vinculadas de E/S en lugar de bucles computacionales proliferativos. Entonces la eficiencia medida no es la del algoritmo como prueba formal sino; en su lugar, se basa en una característica específica del idioma.
El punto destacado es que hay muchos casos en los que el algoritmo formal y la implementación pueden diferir de representarse uno al otro fielmente y, al hacerlo, la conclusión, si se basa en métricas empíricas como el tiempo de ejecución, puede encontrarse con muchos problemas en los que una implementación incorrecta puede dar fe de una conclusión incorrecta.
El código fuente puede tener errores, y para revisar un algoritmo de manera verdaderamente efectiva, una descripción en prosa del método por sí sola puede ser insuficiente. Compartir algo más allá del texto es beneficioso; un buen documento con el código fuente real (+entradas de muestra) es el estándar de oro para la reproducibilidad.
Un detalle divertido: dependiendo de dónde esté tu revisor, es posible que no puedas darle un binario. Por ejemplo, algunos códigos usan bibliotecas propietarias que tienen licencia gratuita en la academia, pero alguien en la industria podría requerir una licencia separada incluso para usar un binario existente, y mucho menos para compilarlo. (esto me pasó una vez, aunque no como parte de la revisión por pares)
Es una petición idiota de su parte.
Debería estar pidiendo el código fuente, y eso es todo lo que deberías estar de acuerdo en darle.
Volar a
usuario64845
El tipo
usuario541686
Sumyrda - recuerda a Mónica
marsupial dikran
Pantalones
lagarto discreto
Russel McMahon
PlasmaHH
Sumyrda - recuerda a Mónica
Hagen von Eitzen
jonas stein
Córcega
Córcega
greg martin
lagarto discreto
Sumyrda - recuerda a Mónica