Обнаружение мошенничества в отправках Microsoft Excel

У меня есть домашнее задание, в котором я требую, чтобы учащиеся создали набор сводных диаграмм в Microsoft Excel. Я знаю, что могу уменьшить списывание, изменяя наборы данных или спецификации диаграмм, но из-за сложности заданий и моих практических ограничений, заключающихся в невозможности отметить более пяти или около того разных версий, это не мешает учащимся находить тех, кто имеют те же характеристики, что и сами и копируют между собой. (Я координирую курс с более чем 700 студентами, поэтому я могу сделать только то, что касается альтернативных версий. Студенты хорошо связаны друг с другом через Facebook, поэтому общение между ними вполне осуществимо для тех, кто хочет обмануть. )

С одной стороны, в моей ситуации создание альтернативных версий затруднительно из-за сложности задания, а его эффективность ограничена, потому что трудолюбивые мошенники все равно могут смошенничать. С другой стороны, я считаю, что если я смогу эффективно выявлять мошенничество постфактум, то строгое предупреждение студентов об этом может послужить эффективным сдерживающим фактором, который должен значительно снизить количество случаев мошенничества.

Есть ли в Microsoft Excel функции, облегчающие обнаружение списывания путем копирования между учащимися? Я не ожидаю, что легко обнаружу, копирует ли студент такие элементы, как сводные таблицы, из одного файла в другой, но, возможно, по крайней мере, я смогу определить, копировал ли студент вообще чей-то файл. Я не обязательно ищу что-то надежное - я ожидаю, что мошенники в этом задании будут теми, кто не знает даже элементарных вещей, таких как, как вручную изменить информацию об авторе в файле Excel.

Говоря об этом, к сожалению, насколько я могу судить, Excel перезаписывает информацию об авторе последним человеком, сохранившим файл, поэтому я даже не мог использовать это, чтобы определить, скопировал ли кто-то файл, созданный кем-то другим.

Буду признателен за любые предложения.

РЕДАКТИРОВАТЬ:

В некоторых ответах предлагалось попросить студентов представить письменное объяснение своих рассуждений. Хотя я упомянул, что у нас более 700 студентов, позвольте мне быть более точным: я не считаю решения, требующие чтения и отметки дополнительных текстовых представлений, приемлемыми для моего контекста. С одной стороны, есть несколько инструкторов, поэтому любому инструктору нужно будет отметить всего несколько десятков заданий. С другой стороны, если есть мошенничество в разных разделах, то чтение текстовых материалов не является подходящим методом проверки. Таким образом, я искал решение, которое могло бы легко указать, что работа студента содержит неоспоримые следы работы какого-то другого студента.

Раньше я открывал файлы в чем-то вроде редактора файлов программистов и искал строку с именем и т. Д. - удивительно, что там ... Нашел 1 студента, который «создал» файл под другим именем 2 года назад ... И это студент был также одним из моих студентов...
Для чего это стоит: традиционный способ убедиться, что учащиеся понимают, что они сделали, — это попросить их подготовить отчет, в котором они объясняют свою работу своими словами. В качестве альтернативы может быть проведена быстрая оценка в лаборатории, где им будет задано несколько вопросов, чтобы проверить их понимание.
Кажется, я оцениваю студентов по схожим вещам в excel, диаграммах и т. д., частоте () и т. д., и я использую викторину с 10 вопросами, каждый вопрос имеет категорию из 10 вопросов... Итак, вопросы задают такие вещи, как Ctrl + Shift, затем введите используется для какой функции... Кажется, оценки идут так, как я и ожидал...
@Erwan, пожалуйста, посмотрите мое редактирование, чтобы понять, почему я не считаю это возможным в моей ситуации.
Вы даете учащимся файлы Excel для работы или передаете им наборы данных и позволяете им создавать свои собственные файлы Excel?
@asgallant, первый: я даю студентам файлы Excel, содержащие только данные на одном листе.

Ответы (7)

О, привет, я написал сценарии для решения этой проблемы в аналогичном масштабе (около 800 студентов каждый семестр). Мы создаем новые рабочие тетради «отправной точки» каждый семестр.

Первый шаг — проверка метаданных. Его можно автоматически извлечь с помощью инструмента командной строки exiftool , пакета Python openpyxl или путем простого анализа XML.

Затем, если дата создания старше предоставленного вами файла, вы знаете, что они скачали файл из предыдущего семестра. С другой стороны, если дата создания новее, а создателем является студент, а не вы, это означает, что он создал новую книгу с нуля, скопировал и вставил ее содержимое. скрыть списывание (но, конечно, студент должен получить возможность объясниться).

Затем есть дата изменения — вы можете проверить, находится ли она в разумном диапазоне (дни до даты выполнения) — и lastModifiedBy. В нашем случае студенты сдают около дюжины рабочих тетрадей в течение семестра, поэтому стоит отслеживать различия в именах пользователей и флагах. Если вы получаете только одну рабочую книгу, это может не иметь смысла. Я также проверяю, совпадает ли имя пользователя с именем студента; У меня есть несколько автоматических проверок, которые одобряют большинство из них и запрашивают у меня остальные. Если имя в метаданных явно является именем другого человека, мы спрашиваем учащегося, почему это так.

Еще одна вещь, которую можно найти, это ссылки. В Excel можно ссылаться на значения в другом файле, что создает «ссылку». Когда рабочая книга загружается без соответствующего связанного файла, значения не могут быть обновлены. Студенты часто непреднамеренно создают ссылки при копировании и вставке. Имя файла, из которого они скопировали, хранится в рабочей книге, чего может быть достаточно, чтобы понять, что он из незаконного источника. Вы можете обнаружить наличие ссылок, перечислив файлы в zip (каждый файл .xlsx на самом деле является zip-файлом): если присутствует «xl/externalLinks/externalLink1.xml», значит ссылки есть.

Я нахожу цель ссылки, используя openpyxl; в объекте рабочей книги все ссылки находятся в workbook._external_links. Учитывая объект ссылки link, имя файла находится в link.file_link.Target. Если вы хотите сделать это на более низком уровне, имя связанного файла находится в «xl/externalLinks/_rels/externalLink1.xml.rels».

Я также вычисляю хэш каждого файла, чтобы найти точные дубликаты (как правило, только студенты, повторно загружающие исходный файл).

Более трудоемкий шаг — извлечь все содержимое ячейки (включая формулы). Хэш из них найдет дубликаты, но игнорирует метаданные, форматирование и цвета, любые графики, фильтры и сводные таблицы; он принимает во внимание только фактическое содержимое ячейки. (Поэтому, если основное, что делают ваши ученики, — это создание сводной таблицы, это не поможет).

Я также передаю это содержимое ячейки в simhash , чтобы найти «почти дубликаты». Я использовал инструмент командной строки Барта Мэсси , а также пакет Python . Честно говоря, в большинстве случаев это не кажется очень полезным. Несколько раз он находил подозрительные сходства, но мне требуется много времени, чтобы проверить возможные совпадения.

Я также нахожу значения ячеек, которые встречаются в нескольких рабочих тетрадях (скажем, в 2–12 из 800 файлов). Предполагается, что значения ячеек, которые встречаются в большем количестве файлов, чем это, являются «естественными» для включения многими учащимися, и что круг копирования-мошенничества не будет больше этого. Я смотрю на них и решаю, подозрительны они или нет (два студента, делающие опечатку «Парта 1», кажутся нормальными; более длинная фраза с одинаковыми ошибками — нет.)

Это занимает пару часов моего времени каждый раз, когда приходит партия рабочих тетрадей, и это далеко не надежно, но каждый раз обнаруживается несколько явных случаев мошенничества.

  • Найдите способ генерировать наборы данных и результаты программно, чтобы вы могли однозначно проверять задание каждого учащегося отдельно. Сначала это потребует больших усилий, но может окупиться на более поздних курсах.

  • Используйте один набор данных и один набор результатов. Спросите их, почему они решают самые сложные задачи задания. Используйте это, чтобы проверить на мошенничество. Ни один человек не думает одинаково и не описывает что-то сложное одинаково.

Моя рекомендация для последнего. Большинство задач, которые можно выполнять с помощью таких инструментов, как Excel, в ближайшем будущем будут автоматизированы. Лучшее, чему могут научиться ваши ученики, — это рассуждать (и эффективно формулировать это) и выбирать подходящий инструмент/метод для работы.

Ваше первое предложение требует много работы, но может лучше подойти для моей ситуации. Я отредактировал свой вопрос, чтобы уточнить, почему последнее рекомендуемое решение невозможно в моей ситуации.
@Tripartio, если вы выберете путь автоматизации, начните создавать свой прототип и размещайте более подробные вопросы в stackoverflow. В качестве дополнительной заметки для вдохновения вы можете прочитать этот документ по ссылке .
Мне нравится ваша вторая рекомендация. ОП говорит, что это не соответствует профилю ОП, но инструкторы могут оценивать объяснения своей группы по ценности, в то время как автоматизированный сценарий может отфильтровывать текстовые сходства в объяснениях по всему классу.
@KoenigLear Ваше предложение создавать файлы Excel программным способом напоминает мне о доступе и изменении их содержимого с помощью модуля Python openpyxl ( openpyxl.readthedocs.io/en/stable , может быть, более мягкое введение - сейчас (март 2020 г.), может быть, просто немного позади проекта -- Al Sweigartautomatictheboringstuff.com/chapter12 .

Я предполагаю, что вам нужны подсказки, которые можно получить автоматически.

Возможно, стоит проверить все позиции и размеры графиков / диаграмм / рисунков и т. д. Обычно они размещаются движением мыши, поэтому позиции должны различаться.

Если вы очень тонки, вы можете дать им отдельные листы для начала (возможно, содержащие начальный набор данных). Эти файлы могут быть тайно помечены в базовых XML-файлах, например, добавлением дополнительного тега для каждого учащегося (я не проверял это, но я уверен, что никто этого не обнаружит) или путем добавления персонализированного «создателя документов» (но это видно ученикам). Вам просто нужно разархивировать .xlsx-файл и изменить docPros\core.xml

Чистая копия файла может быть легко обнаружена, например, путем вычисления контрольной суммы PGP для файлов. Если две контрольные суммы совпадают, они являются точными копиями.

Мне нравится идея программной проверки позиций и размеров графиков в Excel. Не могли бы вы указать мне на какие-либо источники, которые могли бы предложить, как это сделать?
@Tripartio, вы можете использовать, например, python для сценариев? Затем я мог бы попытаться создать минимальный пример кода, который можно было бы адаптировать для ваших нужд.
Обычно я использую R, но я умею читать Python и, возможно, смогу его перевести. Пример кода был бы фантастическим.
Я думаю, вам следует немного расширить формат OpenXML. По крайней мере, укажите, что это zip-файл. Существует OpenXML SDK, который помогает генерировать код и тому подобное. Что-то более неясное может заключаться в том, чтобы установить обычай r:idдля рабочего листа. Быстрый тест показывает, что вам нужно только обновить ссылку в \_rels\.relsи \xl\workbook.xmlи\xl\_rels\workbook.xml.rels

Если история изменений не включена, вы не сможете получить какую-либо информацию, относящуюся к истории документа — может быть, сделать ее включенной правилом?

Другие рекомендации:

  • Если проект основан на данных, программно создайте или измените данные, которые предоставляются каждому студенту (они загружают их с какого-либо сервера)
  • Правило, согласно которому, если какие-либо два студента имеют одинаковые решения, оба не пройдут курс. Студенты, раздающие свое решение, обычно знают, что те, кому они его дают, некомпетентны, поэтому они будут крайне осторожны.
  • Предложите учащимся установить трекер (примерно так: https://www.exceltrainingvideos.com/track-changes-automatically-in-worksheet-with-vba/ ) - Конечный результат может быть похожим, но путь к результату будет варьироваться между людьми. Много.
Ваш второй пункт не должен использоваться. Учащиеся, которые не обманывают, будут давать идентичные решения, учитывая достаточно большой размер класса. 700 учеников в этом классе более чем достаточно, чтобы получить одинаковые результаты без обмана.
Это полностью зависит от сложности задачи. Вы правы в том, что это может привести к ложным срабатываниям в небольших заданиях, но возможности растут очень быстро (особенно с идентификаторами, которые сильно колеблются, например, позиционирование графиков и т. д.), что делает вероятность ложных срабатываний минимальной.

Я преподаю Excel, и у меня было несколько учеников, которые «обманывали», копируя у других учеников. Я всегда ловил их, щелкая правой кнопкой мыши файл, который они включают, и выбирая «Свойства». В разделе «Безопасность» указывается дата и идентификатор автора учащегося, создавшего файл. Если это 2 разных имени или имя совершенно другое, это отличная подсказка. Надеюсь это поможет.

К сожалению, в моем случае я сам создал файл шаблона, поэтому мое собственное имя всегда является первоначальным создателем. Так что в моей ситуации это не поможет.
Откуда ты знаешь, что всегда ловил их? Большинство мошенников, вероятно, умнее, чем просто копирование файла.

Я тоже учитель, и у меня такая же проблема с плагиатом.

Я использую эти методы - я могу обнаружить:

  • Чистое копирование и переименование файлов между учениками - я использую специальную зашифрованную строку, помещенную в мета файла каждого ученика. Поэтому, когда студент копирует файл одноклассника, он также копирует эту специальную строку, и я могу определить, из какого файла она была скопирована.
  • Копирование определенного диапазона ячеек - я могу поместить в определенные ячейки некоторую скрытую ссылку, содержащую специальную зашифрованную строку. Если я помещу эту ссылку в ячейку какой-нибудь таблицы данных (но в ячейку, с которой студенту не нужно работать), есть шанс поймать его при копировании, потому что он будет копировать какой-то диапазон ячеек ПО ЭТОЙ ССЫЛКЕ.
  • Также я ищу имя автора и имя последнего отредактированного автора.

Вы можете использовать эти советы для создания собственного сценария. Или просто попробуйте онлайн-инструмент https://www.sheetexpert.com/ - я разработал его, чтобы сэкономить время себе и своим коллегам.

Это привлекло несколько флажков «спам». Кажется, это бесплатный инструмент, разработанный автором сообщения, поэтому я не уверен, что технически это спам. Тем не менее: Вацлав, было бы хорошо, если бы вы могли расширить свой ответ, чтобы объяснить, что делает ваш инструмент и как он решает конкретный вопрос OP; на самом деле мы не разрешаем «ответы только по ссылкам».
Привет @cag51, спасибо и извини. Обновил свой пост, надеюсь теперь стало лучше.

Вы пытались загрузить все файлы в одну папку, а затем отсортировать их по номеру CRC? Я провожу класс статистики с отправкой данных в Excel и таким образом поймал много студентов, потому что в большинстве случаев crc будет идентичен, если файл является точной копией.

Не могли бы вы дать ссылку на какую-нибудь ссылку о том, как это сделать?
Добро пожаловать в Академию SE. Не могли бы вы объяснить свой ответ лучше? В дополнение к объяснению (или ссылке) того, как создавать числа CRC в файлах Excel, уточните, похожи ли числа CRC только при точном совпадении (что не так полезно, поскольку обман обычно не является 100% совпадением), или если ближе числа указывают на более близкое сходство (что было бы более полезным).