Pull to refresh

Comments 50

Какова цель курса?

А как связаны MS SQL Server и юзабилити?

Можно увидеть пример хоть одного проекта? В MS SQL сервере я ничего не смыслю, но, как мне кажется, делать нормальный проект по всем этим требованиям надо оооочень долго.
Юзабилити на самом элементарном уровне — чтобы не было потом стыдно на их дипломы смотреть (это студенты 3-го курса, второй семестр).
Адекватные студенты — успешно сделали и сдали (на 4-5). Супер-пупер навороченного ничего нет.
Тем более, что ещё есть лекции и лабораторные, которые закладывают необходимую базу.

Без примеров как минимум заданий у нас с вами вряд ли получится предметный разговор.

Из того что вы написали, 90% времени уйдет на то, что никак не связано с вашим курсом. Например, создание справки.

Поэтому пока что я уверен что студенты делают проект тяп-ляп, а вы закрываете на это глаза.

Я считаю что цель курса MS SQL Server — научить студентов работе с этой базой. И только. Уверен, что при нормальной программе обучения это можно сделать куда как быстрее чем за семестр.

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

Безусловно, для реализации того что я написал надо очень сильно реформировать образование программистов. Но по течению плыть куда как проще, чем что-то менять, да? (К вам конкретно это не относится, претензия к нашим чиновникам)
В качестве справки используется раздел из пояснительной записки, в котором описаны разработанные экранные формы. Для оформления в надлежащем виде и встраивания в программу много времени не требуется.
Студенты, конечно, по привычке, делают тяп-ляп, но доделывают и переделывают, пока не получится что-то приличное. Глаза на это, уверяю, я не закрываю.

Дело в том, что SQL Server можно довольно долго изучать, к примеру, вот список лабораторных работ в семестре:
  • Установка и первый запуск SQL Server
  • Создание баз данных
  • Язык DML
  • Программируемые объекты SQL Server. Функции
  • Программируемые объекты SQL Server. Хранимые процедуры, триггеры
  • Создание индексов. Индексированные представления
  • Система безопасности SQL Server (уровень сервера)
  • Система безопасности SQL Server (уровень баз данных)
  • Резервное копирование и восстановление данных
  • Работа с транзакциями
  • Обслуживание базы данных
  • Создание полнотекстовых каталогов

При этом, задания на лабораторных охватывают довольно большой пласт знаний.
Майкрософт на своих курсах основное рассказывает за две недели (10 дней по 8 часов) на курсах по подготовке к экзаменам 70-431 (Реализация и обслуживание), и 70-444 (Оптимизация и администрирование) — это по SQL Server 2005.
Лабораторные с этого года перевели на SQL Server 2008 (в прошлом году — SQL Server 2005).

Возможно, я слишком много на себя беру, но если я не научу (не покажу дорогу к изучению) «юзабилити, безопасности, созданию технической документации» этого просто никто не сделает. Кто если не я?
Для начала про лабы. Я не знаю курса, но в одну лабу совместил бы: 1,2,9,11; 4,5; 7,8 и т.п.

Ваши стремления прекрасны. Больше бы было таких преподов. Проблема в том, что в реалиях нашего образования это не нужно. Не должен плодиться хаос когда каждый думает «если не я научу, то кто». Нужно переделать полностью программу обучения для 3-5 курсов.

Курс MS SQL явно проплачен MS. Иначе вряд ли бы стали делать отдельный предмет. MS SQL, Oracle, Mysql, Postgresql вполне можно узнать за 1 семестр (в человеко-часах), предварив это отдельным курсом по базам данных.

Тратить целую лекцию и(или) лабу чтобы рассказать как устанавливать сервер — это пипец. Делается это должно 5 минут в виде предоставления ссылки на официальную документацию.

И не надо думать что студенты настолько тупы, что не смогут освоить программу 2-3 раза большей интенсивности. Просто программу обучения надо делать интересной, а многие вещи заставлять искать самим.

Толковому программисту нынешние ВУЗы дают слишком мало, чтобы тратить на них 5-6 лет (имхо, безусловно!). А остальные все равно пойдут работать не по специальности. Так зачем жертвовать толковыми ради тех, кому это образование нужно только ради корочки/отсрочки от армии?
Уверяю, что ничего никем не проплачено ;)
Просто кафедра ставит целью выпускать конкурентоспособных выпускников (с учетом рынка труда в нашем регионе).
Если честно, то зная Ms Sql можно без проблем изучить Oracle, MySql, Postgre. Но раз Oracle не дала свои продукты и программы для обучения вузам, то о чем говорить?

>Тратить целую лекцию и(или) лабу чтобы рассказать как устанавливать сервер — это пипец.
Развернуть сервер это далеко не «Далее->Далее->Далее->Эмммм->Финиш», при этом надо принимать верные относительно задачи решения и проделать подготовительную работу до этого

>И не надо думать что студенты настолько тупы, что не смогут освоить программу 2-3 раза большей интенсивности.
А что вы будете делать с теми кто не успевает?

П.с. я не учился
В любом случае университет ПО приобретает (с этим делом очень строго).

Подписка MSDN AA стоит недорого, и проблем с её оформлением нет.
ПО Oracle бесплатно для обучения использовать нельзя (персонально дома можно), но для того, чтобы купить Oracle для обучения — столько проблем со стороны Oracle — просто жуть. Больше года не можем приобрести: бухгалтерии не могут договориться — Oracle хочет в долларах, а у гос. университета только рубли.
Но на дисциплине с названием «СУБД MS SQL Server» изучать стоит всё-таки SQL Server ;)
Если говорить о принятии верных решений при развёртывании MS SQL, то установку нужно перенести вообще в конец курса ;-)
Повторить, для закрепления навыков ;)
Сколько времени после окончания курса вы будете помнить как развертывать сервер, если вам об этом рассказали на лекции? А сколько если сделали сами по мануалам?
Помимо выполнения аудиторной лабораторной работы, студенты обычно устанавливают SQL Server дома. И мануалы им тоже приходится читать (задания так составлены, что для их выполнения необходимо туда заглядывать).
Не всегда. :) Бывают студенты-исключения)
Либо я не правильно понял смысла дисциплины, либо требования запредельные и не совпадают с дисциплиной. Например «Наличие SQL инъекций» — причем тут «СУБД MS SQL Server»? Это уже ошибка прикладной программы.
К этому моменты студенты уже усвоили дисциплину «Базы данных» и осуществляют углубление знаний применительно к СУБД SQL Server.
В курсовом проекте серверная часть реализуется на SQL Server, а клиентская на Visual C#.
Если им сейчас не объяснить, как правильно писать хранимые процедуры, передавать параметры в SQL запросы (с учётом возможности SQL Injection) — они, скорее всего, об этом узнают очень не скоро (уже после окончания университета).
Некоторые даже в хранимых процедурах SQL Server умудряются использовать строковые параметры и осуществлять их конкатенацию с SQL-запросом.
Не знаю как в MS SQL, что там принято и т.п. Но я бы не рекомендовал использовать хранимые процедуры. Область их применения довольно-таки ограничена из-за того, что код часто приходится менять, а менять вместе с ним еще и процедуры в базе — не самое лучшее решение. Кроме того, если слепо все выносить в процедуры, то бизнес-логика будет разнесена по коду на C# и по коду этих процедур.

А с использованием ORM надобность в хранимых процедурах еще больше уменьшается.
Технология ORM применима не всегда.
Ниже в комментарии я привёл один пример.
Да даже не в ORM дело, а в том, что Вы НАВЯЗЫВАЕТЕ студентам подход, который скажем так далеко не всегда правильный.
Касательно прав доступа/контроля целостности/..., то считаю, что в большинстве случаем имеет смысл реализовывать в СУБД, в качестве дублирующих механизмов, но не основных.
Тоже не очень понял, почему применение хранимых процедур и триггеров отнесено к плюсам.

Разве что использование хранимых процедур и триггеров — это самоцель, обусловленная нуждами учебного процесса.

Помню, когда нам БД преподавали, процедуры и триггеры подавались крутыми штуковинами, атрибутами профессиональных СУБД, и их использование очень поощрялось. Пришлось мне как-то потом работать потом с одной legacy-системой, где разработчики, видимо, прониклись данной идеей размазывать часть логики в БД. Брр. Если есть какая-то возможность в СУБД — это еще не значит, что ее нужно обязательно использовать. Определенно, если человек знает только СУБД, он может с помощью хранимых процедур и т.д. сделать больше. И это, видимо, было проблемой у нас в университете, т.к. человек, нам БД преподававший, в программировании особо не разбирался.
Тоже с такой проблемой сталкивался. ИМХО от БД — хранение и масштабируемость, а бизнес-логика — в ORM. Бизнес-логика в ХП — зло: долго писать, неудобно отлаживать, сложно и опасно изменять (особенно если бд активно используется).
Через триггеры реализуется логическая целостность данных, это не бизнес-логика.
В данном курсовом проекте логика перенесена на СУБД. На клиенте нет ни одного SQL-запроса, всё вынесено в хранимые процедуры и функции сервера. Доступ пользователя непосредственно к таблицам — невозможен (у него нет на это прав).
Это сделано преднамеренно, отчасти в учебных целях.

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

В нормативной документации (например, в СТР-К) однозначно сказано, что разграничение доступа пользователя к объектам БД может осуществляться только средствами СУБД.
Поправочка, ОРМ это не _всегда_ один пользователь. Раздайте права на уровне логина, таблиц, колонок(если позволяет) и через View на уровне строк и подключайтесь под разными пользователями.
Про всегда я и не писал ;)
Замечание справедливое.
я имел ввиду что «принципиально не разрешимы» неверно утверждение.

и еще, раз уж они у вас учат Ms Sql и .Net то переведите всех на LINQ to SQL и отполируйте ADO.NET иначе из конкурентоспособность падает.
Есть дисциплина ".NET программирование" на 4 курсе, там как раз именно этим (и многим другим) и занимаются.
Дисциплина прямо так и называется 'MS SQL Server'? Или всё же «Базы данных»?

Есть ли у студента возможность выбора СУБД?
Думаю все же «Базы данных». Хотя, когда я учился, то на дисциплине «Базы данных» все юзали Access, можно было и другую СУБД выбрать если хотелось, правда для многих (а точнее для всех) это была дисциплина — «можешь дать мне лабухи распечатать, а то завтра сдавать надо», вопросов языка SQL вообще никто не касался — для многих это был бы взрыв мозга (считай «допса»), а вот мышкой базу нарисовать по методичке еще куда ни шло. Ну вобщем все мы знаем, что такое преподавание it-дисциплин в большинстве наших вузов.
«Базы данных» у них были семестром ранее. На четвертом курсе должен быть факультатив «Разработка корпоративных приложений с использованием СУБД Oracle». А с MySQL они сталкиваются на дисциплине «Средства проектирования и сопровождения Интрернет-приложений».
Взрыв мозга грозит не всем ;)
Семь студентов (из 21) в течение семестра успешно выполнили требования sql-ex.ru на «Basic knowledge», дополнительно также решив все задачи обучающего этапа.
Одну треть вы научили читать мануалы. По-моему, плакать надо.
Надеюсь, вы в хорошо знакомы с sql-ex для того, чтобы сравнивать решение задач на нём с чтением мануалов.
У нас на курсе БД был FoxPro и MS SQL, но я сдавал всё на PostgreSQL, пара человек-альтернативщиков тоже. Но вроде-бы на MySQL.
правда для многих (а точнее для всех) это была дисциплина — «можешь дать мне лабухи распечатать, а то завтра сдавать надо»

А потом мы удивляемся, откуда столько криворуких непрофессиональных программистов.
Дисциплина называется «СУБД MS SQL Server» — из учебного плана строк не выкинешь :)
Странная честно говоря дисциплина, за все годы своего обучения у меян ни разу не было дисциплины в названии которой фигурировала бы конкретная технология или программный продукт. И везде была альтернатива.

Даже:
«Программирование приложений Windows» (winapi) можно было сдавать в прицнипе на winelib под linux
«Программирование… DotNet» как бы содержит в своём названии майкросовтовскую технологию, но никто не запретил мне использовать mono и GTK#
Специальность 230105 «Программное обеспечение вычислительной техники и автоматизированных систем»
При формировании учебных планов дисциплинам стараются давать более общие названия.
Эта дисциплина — одно из очень немногих исключений. И скорее политическое решение (из-за закрепления дисциплин за кафедрами)…
«Альтернативщиков» уважаю и всегда стараюсь идти навстречу.
«Программирование приложений Windows» (winapi) можно было сдавать в прицнипе на winelib под linux

Да, но зачем?? )
более 5-ти орфографических ошибок
Пишите уж тогда или «более 5», или «более пяти». Не бойтесь, что кто-то прочитает «не более пять орфографических ошибок».

А вообще, за чеклист спасибо, хорошая идея. Мне понравилось, попробую взять на вооружение в следующем семестре :)
Я тоже немного преподаватель вуза и тоже граммар-наци. Поражает тотальная безграмотность нынешних студентов, и я за орфографические и грубые пунктуационные ошибки вообще не принимаю работу или нещадно снижаю оценку.
Можно все эти ненужные презентации и пояснительные записки выбросить и оставить только программный продукт и подробную документацию, а то наплодили сущностный, мне даже страшно стало :). А самое поганое то, что все преподаватели требуют эти побочные материалы оформлять по разному, плодят хаос в головах, затмевают приоритеты иногда даже саму суть работы… Про орфографические ошибки вообще молчу, какое они имеют отношение к дисциплине «СУБД MS SQL Server»? Вы что вообще оцениваете? :)
Все это — полезные вещи для программиста. Не каждый будет работать в большой организации, где один код пишет, другой — спецификацию. Проблема в том, что в большинстве преподают это те, кто сами не знает как писать подобные вещи.
Согласен, в некотором смысле это полезно, но тогда нужно выработать четкий протокол оформления подобных работ (не нужно говорить что он есть, все равно многое там на усмотрении преподавателей) и не в коем случае не давать это на усмотрение преподавателей, а то уж очень напрягает самодурство некоторых. Даже за небрежное оформление нельзя снижать оценку, если сама работа (суть) выполнена хорошо, лучше лишний раз вернуть, указав недочеты и попросить переделать или исправить. А насчет орфографических ошибок, прекращайте уже, орфография увы не ваш предмет, а то такими темпами и до «красивых глазок» и «чистых рук» дойдет ;)
При проверке пояснительной записки к курсовому проекту я отмечаю все замеченные ошибки, в том числе и орфографические. У студента всегда есть возможность их исправить. Редко кто способен сделать всё сразу правильно, и если студент исправляет свои ошибки — оценка ни в коем случае не будет занижена.
Что качается оформления — большинство преподавателей кафедры отсылают к методическим указаниям по дипломному проектированию (чтобы делать сразу так, как будет спрашиваться на нормоконтроле).
А студентам Вы такие чек-лист раздаете, или хотя бы говорите что должно быть/не быть в конечной программе?
Конечно, студенты с этой информацией ознакомлены.
Тогда здорово, а то я сначала подумал, что это, так сказать, для собственного использования.
У вас завышено ЧСВ. Не мучайте студентов.
Sign up to leave a comment.

Articles