Диссертация (1167217), страница 48
Текст из файла (страница 48)
В каждой таблице должна быть хотя бы одна колонка суникальными ячейками. В таблице авторизации это логин. Он не может бытьодинаковым у разных пользователей, в то время как их имена и фамилии могутсовпадать.Далее можно создавать дополнительные таблицы. Для приложения типаwiki нужно добавить таблицу, в которой уникальной колонкой будет заголовокстатьи, а другими колонками – содержание, дата создания и автор статьи(программный код примера приложения wiki см. в приложении 1).
В web2pyразные таблицы базы данных можно связывать между собой. Так, колонка сименемавторастатьивтаблицестатьидолжнасодержатьтолькозарегистрированных авторов, т. е. только тех пользователей, чьи имена находятсяв таблице авторизации. Это нетрудно сделать, поместив в код таблицысоответствующую ссылку. Всего в приложении wiki будет четыре таблицы базыданных:таблицаавторизации(расширеннаясоглашениемсправиламиповедения), таблица страниц, таблица комментариев к страницам и таблицаприкрепленных к страницам файлов. После определения содержания блока«модель» необходимо переходить к блоку «представление». Для этого нужноопределить общее количество веб-страниц приложения.Главная страница уже присутствует по умолчанию. На ней размещаетсяалфавитный список статей wiki в виде гиперссылок, ведущих к веб-страницевыбранной статьи.
Также здесь целесообразно разместить кнопку создания новойстатьи (еще одна веб-страница) и кнопку перехода на веб-страницу поиска (дляwiki с очень большим количеством статей). Это означает, что главная страницабудет иметь три ответвления, а общее число веб-страниц увеличится до четырех(см.
рисунок 2):285Рисунок 2. Компоненты приложения wiki из четырех веб-страницГлавная страницаСоздание новойстатьиПросмотр статьиПоиск статьиСтрелки в обоих направлениях показывают, что переход осуществляетсякак с главной веб-страницы на другие (назовем их веб-страницами второгоуровня), так и наоборот. Сразу оговоримся, что возвращение на главную вебстраницу будет возможно с каждой веб-страницы приложения, так как пунктменю «Home» будет помещен на панель навигации. Помимо этого каждая из вебстраниц второго уровня может также предусматривать еще какие-то действия.После создания статьи нажатие кнопки сохранения вернет пользователя наглавную веб-страницу, другие действия здесь не планируются.
Веб-страницапросмотра статьи будет иметь кнопку редактирования, текстовое поле длянаписания комментария и кнопку сохранения комментария. При сохранениикомментария веб-страница только обновится без перехода куда-либо. Кнопкаредактирования активирует веб-страницу изменения статьи. На ней можносовершить три действия: сохранить редактирование, вернуться к просмотру ивыйти на веб-страницу, на которой отображаются прикрепленные к ней файлы(например, изображения или аудиозаписи).
Таким образом, веб-страницапросмотра статьи получит несколько ответвлений (см. рисунок 3):Рисунок 3. Ответвления веб-страницы просмотра статьиПросмотр статьиПрикрепленныефайлыРедактированиестатьи286Веб-страница поиска статьи генерирует список статей, последовательностьбукв в которых совпадает с введенными в поле ввода символами. При этомиспользуется запрос AJAX, который не перезагружает веб-страницу целиком, аизменяет только ее отдельную часть, что ускоряет работу приложения в целом.Далее, веб-страница прикрепленных файлов отображает соответствующуютаблицу базы данных. На этой веб-странице возможно совершить большоеколичество действий, которые уже предусмотрены web2py и не требуют созданияновых веб-страниц.
К ним относятся: добавление, удаление, редактирование ипросмотр файлов.В итоге в шаблонное приложение будет добавлено пять дополнительныхвеб-страниц. В этом состоит планирование блока «представление». Блок«поведение» должен содержать функции языка программирования Python,отвечающие за обработку событий на веб-страницах.
Если веб-страницы непредусматривают обработку каких-либо событий, то наличие функции все равнообязательно. Для удобства мы будем называть такую функцию «пустой»функцией. Выглядеть она будет следующим образом:def empty(): # «пустая» функция для веб-страницы empty.htmlreturn dict() # функция находится в файле default.pyПосле завершения общего планирования блоков схемы MVC необходимопереходить непосредственно к написанию кода приложения.
Как мы ужеотмечали, это требует знания технологий, в частности набора языковпрограммирования. Может показаться, что для этого преподаватель-разработчик(в нашем случае преподаватель иностранного языка) должен получитьобразование программиста, однако если работать в русле парадигмы Web 2.0, тотакой подход не является единственным. Как невозможно заранее и навсегдаспланировать ОВС, но можно постепенно развивать ее узлы от простого ксложному, так же невозможно и обучиться раз и навсегда нужным технологиямдля работы в современном динамично меняющемся мире, но можно сперваосвоить что-то несложное, а затем двигаться дальше.
Обучение в ОВС требуетсовсем другого подхода, при котором обучаться построению узлов придется287самостоятельно и часто – по собственной инициативе. Принцип «пусть что-топростое работает сейчас, чем неопределенно долго ждать чего-то совершенного»хорошо подходит для работы с фреймворками, в частности с фреймворкомweb2py. Он позволяет сделать сейчас «что-то работающее», но это «что-то,работающее всегда», будет только переходным этапом к «чему-то лучшему».Работа в фреймворке – это всегда модификация, которая может быть сначаланезначительной, но по мере изучения технологий принимать все бóльшиемасштабы.На начальном этапе возможно создать новое шаблонное веб-приложение ирасширить таблицу авторизации базы данных новыми пунктами (например,соглашением с правилами поведения), затем добавить к этому веб-приложениюнескольковеб-страницвторогоуровня,разместитьнанихнебольшиетренировочные упражнения с автоматической проверкой, в очередной разрасширить таблицу авторизации для сохранения журнала выполнения заданий,внедрить в веб-приложение открытые задания с автоматизированной проверкойна основе регулярных выражений и т.
д.2883.5 О перспективах обучения «Профессиональноориентированному программированию» с целью создания узловобучающей виртуальной средыПроблема разработки узлов ОВС является актуальной в рамках нашегоисследования. Стремительное развитие программного обеспечения (в частности,рассмотренныхвыше инструментов), еговсе большая обращенность кпользователю, обладающему средним уровнем компьютерной грамотности,позволяетговоритьовозможностиизученияэтихинструментовнепрограммистами, например, студентами и выпускниками педагогических илингвистических вузов и направлений подготовки.Заметим,чтовпредметно-специальнойлитературепоследнихлетвстречаются точки зрения, согласно которым понимание того, как работают ИТсистемы, настолько необходимо каждому, что изучать программированиенеобходимо абсолютно всем людям начиная с детского возраста, поскольку этоявляется «новой грамостностью» [Kafai 2014: 3].Многие современные языки программирования сходны с естественнымиязыками в том, что могут иметь диалекты, словарный состав, проявляютсинонимию и антонимию и даже могут отразить индивидуальный стиль авторапрограммиста.Тенденция приблизить программный код к естественному языку людей (всилу целого ряда причин этим языком является английский) проявляется,например, в языке гипертекстовой разметки HTML (англ.
HyperText MarkupLanguage) [HTML5 Specification 2014]. HTML применяется для форматированиясодержимого веб-страниц. Его распространенные теги могут представлять собойсокращения или первые буквы английских существительных, например: <p> −paragraph; <h1> − (1st level) header; <img> − image; <thead> − table header и др.Иногда это могут быть слова целиком: <body>, <table>, <audio>, <acronym> и др.289При всей понятности, без использования CSS и JavaScript HTML неспособен создавать динамические и интерактивные веб-страницы, однако онотлично подходит для приобретения первичных навыков работы с программнымкодом.По-настоящему многофункциональным, подходящим как для разработкивеб-приложений, так и отдельных программ, является уже неоднократноупомянутый выше язык программирования Python. Начиная с декабря 1989 года,благодаря усилиям датского программиста Г.
ван Россума Python активноразвивается и на сегодняшний день согласно индексу TIOBE является пятым попопулярности языком программирования в мире, уступая только таким«гигантам» как Java, C/C++ и C# [TIOBE 2016].Обзор современной предметно-специальной литературы показывает, чтоопределение «профессионально ориентированный» употребляется чаще всего втаких сочетаниях как «профессионально ориентированный иностранный язык»,«профессиональноориентированныйнекоторыеориентированныйпроект»,другие.Вперевод»,«профессиональнолюбомслучае«профессиональноориентированныйопределениетекст»и«профессиональноориентированный» конкретизирует определяемое явление, оставляя в нем толькото, что относится непосредственно к будущей профессии обучающегося.Мы исходим из того положения, что каждый преподаватель иностранногоязыка является потенциальным разработчиком узлов ОВС различного уровня,причем зачастую речь может идти не о написании сложных систем «с нуля», а омодификации каких либо уже существующих программных продуктов.Примером такой модификации может служить создание дополнительнойвеб-страницы внутри курса LMS Moodle.
«Готовым» решением в этом случаебудет модуль «страница», на которой можно расположить отформатированныйтекст, картинку или видеоролик [Page 2016]. Но предположим, что нам нужнопоместитьнавеб-страницесодержимоесэлементамиDrag&Dropилираскрывающиеся и закрывающиеся контейнеры – то, что приводится в действие спомощью JavaScript.290Произвести такие модификации имеет право только администратор LMSMoodle, имеющий доступ к файлам системы на веб-сервере.
В корневом каталогеLMS Moodle создается новый файл, например «newpage.php», в которыйпомещается следующий код на языке программирования PHP:<?phprequire_once('config.php');// Open the page if the user is logged inif ((is_enrolled(context_course::instance(18), $USER)) or(is_enrolled(context_course::instance(20), $USER)) or is_siteadmin()) {$PAGE->set_context(get_system_context());$PAGE->set_pagelayout('standart');$PAGE->set_title("New Page");$PAGE->set_heading("New Page");$PAGE->set_url($CFG->wwwroot . '/newpage.php');// Adding navbar$PAGE->navbar->ignore_active();$strHome = "newpage";$PAGE->navbar->add($strHome, new moodle_url('newpage.php'));echo $OUTPUT->header();// Variables for the content (html and javascript)$htmlscr = ""; // some code// Actual content goes hereecho $htmlscr;echo $OUTPUT->footer();}// Else output error messageelse {echo "<h2> You are not authorized, sorry.</h2>";}?>Доступ к веб-странице ограничивается и предоставляется только студентам,зарегистрированным на курсах с идентификаторами «18» и «20».