Скачать 110.96 Kb.
|
ГОРОДСКАЯ СЕССИЯ НАУЧНОГО ОБЩЕСТВА УЧАЩИХСЯ СЕКЦИЯ «ПРОГРАММИРОВАНИЕ» «Программа по созданию тестов для учителей» Лонский Илья Владимирович, 11 класс, МБОУ «СОШ №12 г.Горно-Алтайска» Научный руководитель: Левченко Алексей Владимирович Учитель информатики г. Горно-Алтайск 2012 Содержание
Введение На сегодняшний день в школах активно проводится компьютеризация. Уже внедрены интерактивные доски, персональный компьютер для каждого учителя, а также работа с электронными дневниками. Большинство школ нашего города уже имеют настроенную локальную сеть. В связи с этими преобразованиями появляются новые возможности для проведения уроков. Красочные презентации, занимательные видеоролики или аудиокниги. Возможности компьютера активно используются в учебной деятельности, и появляется все больше и больше новых интересных идей, по проведению занятий, классных часов. С появлением компьютеров в школах, появляются и уникальные возможности экспериментации с ними. Один из таких экспериментов – это программа, позволяющая учителю создавать тесты для обучающихся с последующим их тестированием на компьютере. Данная тема вполне актуальна еще и потому, что учитель, проверяя работы учеников будет тратить меньше времени и сил, а учеников это привлечет своей новизной. Цели и задачи Для начала роботы нужно назначить цели и сформулировать некоторые задачи, которые в дальнейшем будут решаться. Руководствуясь современным менталитетом учеников и учителей, была поставлена следующая цель: Изучить алгоритмы построения существующих тестирующих программ, выделить в них недостатки и создать собственную улучшенную версию. Поставив цель, были сформулированы конкретные задачи, решая которые и создавалась программа:
Программа Программа представляет собой окно с текстовыми полями и кнопками, благодаря которым учитель может изменять тест по своему усмотрению. Главными являются такие текстовые поля, как ”Название теста”, ”Класс” и ”Имя учителя”. Далее Создавая вопрос учитель прилагает к нему необходимое количество вариантов ответа и указывает какой из них верный. При необходимости он может удалить один из вариантов ответа или целый вопрос. Каждый вопрос может быть одним из двух типов. Первый тип – в виде теста, когда ученику предлагается выбрать один из нескольких вариантов ответа. Второй тип – краткий ответ, когда от ученика требуется написание ответа к вопросу в формате, представленном в вопросе. Так же каждому вопросу может присваиваться степень сложности(от 1 до 5 по стандарту). Это означает что при подсчете баллов, набранных учеником за тест, суммарное их количество будет зависеть от сложности каждого конкретного вопроса. Что бы сохранить созданный тест, необходимо выбрать соответствующий пункт в выпадающем меню сверху формы. После нажатия на кнопку сохранения происходит обработка данных, которые ввел учитель. И, исходя из этого, формируется тест, с последующим сохранением в файл, имя которого – это название теста, а расширение - .html. Что бы тест появился в тестирующей системе, необходимо поместить его на сервер в специально отведенный под это раздел. Тестирующая система Что бы ученик прошел тестирование ему необходимо обратиться с компьютера к серверу. То есть зайти на сайт с этими тестами, далее выбрать один из предложенных тестов. На появившейся Интернет страничке будет отображен тест, который ученику необходимо решить. Тест содержит в себе название, Имя учителя, создавшего данный тест и номер класса для которого он предназначен. Подписав свою работу в отведенном под это поле, ученик может приступать к работе. Выбирая из предложенных вариантов ответа правильные, или заполняя поля под ответы, ученик решает тест. По завершению работы, ему необходимо отправить свое решение на тестирование. Протестировав, система выдает ему количество правильных ответов. Если же ученик желает перерешать тест, то после повторной отправки работы на рассмотрение системе, он получит в ответ сообщение “Вы уже решали этот тест”. Что бы система проверила работы, её необходимо знать правильные ответа, но если оставить их в свободном доступе то любой желающий, помимо системы сможет их просмотреть. Для того, что бы не допустить этого была реализована процедура шифровки. Она не скрывает правильные ответы, она лишь представляет их ввиде, непонятном для ученика, но понятном для системы. На языке pascal она выглядит так. function TForm1.coder(InText: string): string; var OutText: string; i,num: longint; begin cn := 1; OutText := ''; for i := 1 to length(InText) do OutText := OutText + inttostr(ord(InText[i])); while length(OutText) < 32 do OutText := OutText + inttostr(length(OutText)); while length(OutText) > 32 do begin num := (ord(OutText[cn])+ord(OutText[length(OutText)])) mod 256; OutText := chr(num) + copy(OutText,2,length(OutText)-2); cn := cn + 1; if cn > 32 then cn := 1; end; result := OutText; end; На языке php так: function coder($InText){ $OutText = ''; $cn = 0; for ($j=0; $j $OutText = $OutText.strval(ord($InText[$j])); } While (strlen($OutText) < 32) { $OutText = $OutText.strval(strlen($OutText)); } While (strlen($OutText) > 32) { $n = (ord($OutText[$cn])+ord($OutText[strlen($OutText)])) % 256; $OutText = chr($n).substr($OutText,1,-1); $cn = $cn + 1; If ($cn > 31) {$cn = 0} } return $OutText; } Формирование отчета После окончания проверки работы ученика, формируется отчет дл ученика и для учителя. Ученик может наблюдать перед собой только количество баллов, набранных им, общее количество баллов и процентное соотношение набранных баллов к возможным. Учителю предлагается более подробная информация. Он также может видеть количество баллов ученика, но помимо этого он может просмотреть все ответы ученика, которые будут отображаться красным или зеленым цветом. В зависимости как ответил ученик: правильно или нет. Исходя из этих данных, учитель может сделать вывод о подготовленности ученика в той или ной сфере, посмотрев, где именно он допускает ошибки. И поставить оценку Заключение Проанализировав материал сети Интернет, была сформулирована цель, работу которой удалось реализовать. В процессе решения поставленных задач были разработаны отдельные элементы тестирующей программы, которые несут новое и улучшают работу программ в целом. Особо удачным является разбиение работы программы на три составляющих: создание, тестирование и формирование отчёта. Положительный эффект, влияющий на возможности программы, достигнут путём применения нескольких языков программирования. Новизной программы является особый подход в системе шифрования ответов к тестам, хранящимся на сервере. Уникальность последней состоит в используемом алгоритме. Данная версия тестирующей системы является серверной. Таким образом, из вышесказанного можно сделать вывод:
Приложение unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus; type TForm1 = class(TForm) TestName: TEdit; NumberClass: TEdit; TeacherName: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Button1: TButton; Question: TEdit; LQuest: TLabel; LAnswer: TLabel; answer: TEdit; AddAnswer: TButton; TrueAnsw: TRadioButton; DeleteAnswer: TButton; DeleteQuestion: TButton; Panel1: TPanel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; SaveButton: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; TypeTest: TComboBox; Dificult: TComboBox; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure CreateQuestion(number,col: longint); procedure CreateLabels(number,col: longint); procedure CreateAnswer(number,col: longint); procedure MoveAnswerButtons(number,col: longint); procedure AddAnswerClick(Sender: TObject); procedure CreateRadio(number,col: longint); procedure DeleteAnswerClick(Sender: TObject); procedure DeleteQuestionClick(Sender: TObject); procedure SaveButtonClick(Sender: TObject); procedure CreatePanel(number,col: longint); procedure ResizePanel(number,col: longint); function coder(InText: string): string; procedure N5Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TypeTestChange(Sender: TObject); function CorrectTest: boolean; procedure DificultChange(Sender: TObject); procedure N8Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TTypeQuestion = (tqTest, tqAnswer); TAnswer = array[1..10] of TEdit; TTrueAnswer = array[1..10] of TRadioButton; var Form1: TForm1; questions: array[1..100] of TEdit; typeQuestions: array[1..100] of TTypeQuestion; answers: array[1..100] of TAnswer; labels: array[1..200] of TLabel; SumColAnswer,ActiveQuestion,ColQuestions: longint; DificultTest,ColAnswer: array[1..100] of longint; TrueAnswer: array[1..100] of TTrueAnswer; Panels: array[1..100] of TPanel; implementation uses Math, Unit2, Unit3; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if ColQuestions > 0 then Questions[ColQuestions].Width := Questions[ColQuestions].Width + 145; Inc(ColQuestions); if ColQuestions > 1 then DeleteQuestion.Enabled := true else DeleteQuestion.Enabled := false; ActiveQuestion := ColQuestions; ColAnswer[ColQuestions] := 1; DeleteAnswer.Enabled := true; Inc(SumColAnswer); TypeTest.ItemIndex := 0; Dificult.ItemIndex := 0; AddAnswer.enabled := true; CreateQuestion(ColQuestions,SumColAnswer); CreateLabels(ColQuestions,SumColAnswer); CreatePanel(ColQuestions,SumColAnswer); CreateAnswer(ColQuestions,ColAnswer[ColQuestions]); CreateRadio(ColQuestions,ColAnswer[ColQuestions]); DeleteAnswer.Enabled := false; end; procedure TForm1.CreateAnswer(number,col: Integer); begin answers[number][col] := TEdit.Create(form1); answers[number][col].Parent := self; answers[number][col].Top := Questions[number].Top+59+32*(col-1); answers[number][col].Left := answer.Left; answers[number][col].Width := ClientWidth-answer.Left-13; end; procedure TForm1.MoveAnswerButtons(number,col: Integer); begin if ColQuestions > 0 then begin AddAnswer.Visible := True; DeleteAnswer.Visible := True; DeleteQuestion.Visible := True; end; AddAnswer.Top := Question.Top+24+100*(number-1)+32*(col-1); DeleteAnswer.Top := AddAnswer.Top; DeleteQuestion.Top := AddAnswer.Top; end; procedure TForm1.CreateLabels(number,col: Integer); begin labels[2*number-1] := TLabel.Create(form1); labels[2*number-1].Parent := self; labels[2*number-1].Top := LQuest.Top+100*(number-1)+32*(col-1); labels[2*number-1].Left := LQuest.Left; labels[2*number-1].Width := ClientWidth-LQuest.Left-13; labels[2*number-1].Caption := 'Вопрос:'; labels[2*number-1].Font.Size := 10; labels[2*number] := TLabel.Create(form1); labels[2*number].Parent := self; labels[2*number].Top := LAnswer.Top+100*(number-1)+32*(col-1); labels[2*number].Left := LAnswer.Left; labels[2*number].Width := ClientWidth-LAnswer.Left-13; labels[2*number].Caption := 'Варианты ответов:'; labels[2*number].Font.Size := 10; end; procedure TForm1.CreateQuestion(number,col: Integer); begin questions[number] := TEdit.Create(form1); questions[number].Parent := self; questions[number].Top := Question.Top+100*(number-1)+32*(col-1); questions[number].Left := Question.Left; questions[number].Width := ClientWidth-Question.Left-13-145; typeQuestions[number] := tqTest; DificultTest[number] := 1; if TypeTest.Visible = false then TypeTest.Visible := true; if Dificult.Visible = false then Dificult.Visible := true; TypeTest.Top := Questions[number].Top; Dificult.Top := Questions[number].Top + 27; MoveAnswerButtons(ColQuestions,SumColAnswer); end; procedure TForm1.FormCreate(Sender: TObject); begin ColQuestions := 0; end; procedure TForm1.AddAnswerClick(Sender: TObject); begin inc(ColAnswer[ActiveQuestion]); if ColAnswer[ActiveQuestion] > 0 then DeleteAnswer.Enabled := true else DeleteAnswer.Enabled := false; Inc(SumColAnswer); CreateAnswer(ActiveQuestion,ColAnswer[ActiveQuestion]); If typeQuestions[ActiveQuestion] = tqTest then CreateRadio(ActiveQuestion,ColAnswer[ActiveQuestion]); ResizePanel(ActiveQuestion,colanswer[ActiveQuestion]); end; procedure TForm1.CreateRadio(number, col: Integer); begin TrueAnswer[number][col] := TRadioButton.Create(form1); TrueAnswer[number][col].Parent := panels[number]; TrueAnswer[number][col].Top := 32*(col-1); TrueAnswer[number][col].Left := TrueAnsw.Left; TrueAnswer[number][col].Width := 17; TrueAnswer[number][col].Visible := true; end; procedure TForm1.DeleteAnswerClick(Sender: TObject); begin answers[ActiveQuestion][ColAnswer[ActiveQuestion]].Destroy; TrueAnswer[ActiveQuestion][ColAnswer[ActiveQuestion]].Destroy; dec(SumColAnswer); dec(ColAnswer[ActiveQuestion]); ResizePanel(ColQuestions,ColAnswer[ActiveQuestion]); if ColAnswer[ActiveQuestion] <= 1 then DeleteAnswer.Enabled := false; end; procedure TForm1.DeleteQuestionClick(Sender: TObject); var i,ColAnswers: longint; begin for i := 1 to ColAnswer[ActiveQuestion] do begin answers[ActiveQuestion][i].Destroy; if typeQuestions[ActiveQuestion] = tqTest then TrueAnswer[ActiveQuestion][i].Destroy; end; Panels[ActiveQuestion].Destroy; Labels[ActiveQuestion*2].Destroy; Labels[ActiveQuestion*2-1].Destroy; questions[ActiveQuestion].Destroy; SumColAnswer := SumColAnswer - ColAnswer[ActiveQuestion]; ColAnswer[ActiveQuestion] := 0; Dec(ColQuestions); Questions[ColQuestions].Width := Questions[ColQuestions].Width - 145; TypeTest.Top := Questions[ColQuestions].Top; Dificult.Top := Questions[ColQuestions].Top + 27; ActiveQuestion := ColQuestions; if ColQuestions < 2 then DeleteQuestion.Enabled := false; ColAnswers := 0; for i := 1 to ColQuestions-1 do ColAnswers := ColAnswers + ColAnswer[i]; if ColAnswer[ActiveQuestion] > 1 then DeleteAnswer.Enabled := true else DeleteAnswer.Enabled := false; MoveAnswerButtons(ColQuestions,ColAnswers+1); end; procedure TForm1.SaveButtonClick(Sender: TObject); var i,j: longint; s: string; begin assignfile(output,TestName.text+'.html'); rewrite(output); if not CorrectTest then begin closefile(output); exit; end; writeln(''); writeln(' |
Программа по формированию навыков безопасного поведения на дорогах... Организационный момент. Учитель приветствует учеников. Производит осмотр класса и учеников. Проверяет готовность учеников к уроку.... | Федотова Елена Владимировна учитель начальных классов вкк. Финалист... Как тепло и светло в классе от ваших улыбок. Сегодня в нашей школе большой праздник, и потому улыбки сопровождают учеников, учителей... | ||
Школы на 2010-2011 учебный год: «Повышение качества знаний через... Президента Медведева: «Свободный, образованный, здоровый человек – это главное, что определяет развитие страны, ее перспективы».... | Программа по формированию навыков безопасного поведения на дорогах... Всё это время учитель ведёт своих учеников по нелёгкому и тернистому пути знаний. И от неё многое зависит: и успеваемость учеников,... | ||
Программа по формированию навыков безопасного поведения на дорогах... Потому что я испытываю чувство удовлетворения от своей работы, когда на одну ступеньку рядом со мной становится мой ученик, и я чувствую,... | Разработка урока 5 класс учитель математики и информатики Сорокина Т. А Проверяя задание, учащиеся отвечают на вопросы: «Почему? Что еще известно о правильных и неправильных дробях?» | ||
Программа по формированию навыков безопасного поведения на дорогах... Но то-ли потому, что нет писательского таланта, то-ли от того, что сестёр у меня нет, но кратко у меня получается редко. Это я к... | Тема. Покров Божией Матери Цели урока Приветствие. Запись отсутствующих. Организация рабочего места учеников Психологическая настройка учеников к предстоящей работе | ||
Тема. Рождество Божией Матери Цели урока Приветствие. Запись отсутствующих. Организация рабочего места учеников Психологическая настройка учеников к предстоящей работе | Тема. Сотворение человека. Грехопадение людей Цель урока Приветствие. Запись отсутствующих. Организация рабочего места учеников Психологическая настройка учеников к предстоящей работе | ||
Тема. Введение во храм Пресвятой Богородицы Цели урока Приветствие. Запись отсутствующих. Организация рабочего места учеников Психологическая настройка учеников к предстоящей работе | Использование конструктора Лего для развития мелкой моторики и мышления учащихся Ет он возвысить своих учеников и возвыситься сам. Цели, которые превыше его самого, сделают его оптимистом, ищущим романтиком, и... | ||
Реферат по дисциплине: «Обществознание» на тему: «Компьютер в нашей жизни» Не более 45 минут в день. В выходные дни – 1 час 45 минут. Если при этом дети прерываются каждые 15-20 минут, то это вполне отвечает... | Моу сош №2 с. Дивное Г. А. Заварухина Из школы опять уходит мой выпуск.... Из школы опять уходит мой выпуск. Стены хранят еще дыхание учеников, но скоро и оно улетучится. Обхожу опустевшие коридоры, заглядываю... | ||
Тесты для детей, планы и методические материалы для преподавателей, советы и рекомендации Добро пожаловать в класс русского языка. Тесты рассчитаны на учеников 1-5 классов средней школы | Классный час по теме: «Прикоснись ко мне добротой». Считаю, что тема... Добра, Знаний, Красоты. Сложная структура современной педагогики требует применения различных форм, методов воспитания учащихся и... |