home Преподавание Информационных Технологий в России
Открытая всероссийская конференция

Конференция

Информационное сообщение

Место проведения

Программа конференции

Участники

Комитеты

Программный комитет

Организационный комитет

Спонсоры

IBM


Intel

Microsoft

Лаборатория Касперского
1C

SAP
Инф. спонсоры

Открытые Системы



PC Week


Орг. поддержка

АПКИТ


ЛАНИТ-ТЕРКОМ


Форт-Росс


Применение рекомендаций Computing Curricula: Software Engineering к российским образовательным стандартам

А.А. Терехов
К.ф.-м.н.
Microsoft Россия

А. Н. Терехов
Проф., д.ф.-м.н.
С.-Петербургский государственный университет, ЛАНИТ-ТЕРКОМ

В 2004 году совместный комитет по образованию сообществ ACM и IEEE Computer Society выпустил очередной документ из серии "Computing Curricula", в котором были изложены рекомендации по преподаванию программной инженерии (software engineering) в высших учебных заведениях.

Интересной особенностью "Computing Curricula: Software Engineering" (далее – ССSE) является наличие рекомендаций по адаптации учебных программ к специфике различных стран. К сожалению, в CC:SE среди множества шаблонов составления учебных программ нет шаблона, учитывающего специфику российского образования.

Занимаясь переводом данного документа на русский язык, мы обратили свое внимание на этот факт и рискнули предложить свое видение этой проблемы. Разумеется, наше предложение ни в коей мере не является обязательным (собственно, как и все остальные шаблоны CC:SE). С другой стороны, нам хотелось проверить, возможно ли наложение требований CC:SE на российские образовательные стандарты, и если это возможно, то предложить вариант готового решения российским преподавателям.

В Санкт-Петербургском государственном университете информационные технологии традиционно преподаются на базе специальности 351500 "Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей". Мы участвовали в создании этой программы обучения, при СПбГУ работает УМО по 351500, которое лицензировало программы обучения более 30 университетов.

К сожалению, у этой программы обучения есть ряд "наследственных" недостатков, в частности, избыток математики на младших курсах. Особенно это сказывается на первых пяти семестрах, где на обучение основной специальности отводится всего 4-6 часов в неделю! По нашему мнению, 351500 плохо согласуется с CC:SE.

Кроме того, мы участвовали в экспертизе проекта стандарта ВШЭ по программной инженерии. Это вполне добротная программа обучения, составленная в соответствии с основными требованиями CC:SE. Однако, на наш взгляд, в проекте ВШЭ наблюдается прекос в другую сторону по сравнению с 351500 – слишком мало математики, зато очень много экономики, маркетинга, менеджмента. Скорее всего, программа ВШЭ будет хороша для экономических факультетов и вузов, а также для вузов, ориентирующихся на МВА с уклоном в информационные технологии. В CC:SE во многих местах подчеркивается важность математического образования, явным образом формулируется связь программной инженерии с различными разделами математики и информатики.

Мы считаем, что наилучшим кандидатом на роль базового стандарта образования в области информатики и программной инженерии является направление подготовки бакалавров и магистров 511900 "Информационные технологии" [Сухомлин]. Рассмотрим это направление подробнее.

Примерный учебный план подготовки бакалавров по направлению 511900 выглядит следующим образом (см. Таблицу 1 в Приложении).

Очевидно, что нагрузка 36 часов в неделю в 3 семестре и особенно 40 часов в неделю в 4 семестре слишком большая. В то же время предусмотрено по 4 часа в неделю физики. Физика – это очень хорошая наука, но весьма далекая от программирования, в 351500 мы много лет обходились без нее. В 3 семестре предусмотрено 4 часа в неделю на курс "Языки программирования". Мы считаем, что рассказывать студентам про конкретные языки в лекционном курсе не стоит, студенты вполне могут сами ознакомиться с любым языком программирования и закрепить эти знания на практикуме на ЭВМ, которому, к счастью, уделено достаточно часов. Наконец, вызвало недоумение включение в обязательную программу курса "Неклассические логики" (4 часа в неделю в 6 семестре). По нашему мнению, такой предмет может быть прочитан в каком-нибудь спецкурсе по выбору студента.

Следующим шагом стала попытка сопоставить предлагаемые в 511900 курсы с рекомендациями документа Computing Curricula: Computer Science (далее – CC:CS). Это оказалось легко сделать, так как авторы стандарта 511900 внимательно изучали СС2001.

Т.к. мы слегка расчистили первоначальную программу 511900, мы сочли возможным добавить наш традиционный и, к тому же, важный с точки зрения CC:SE курс CS103 – Алгоритмы и структуры данных (3 семестр, 2 часа в неделю), а также добавить в 6 семестр незаслуженно забытый курс CS240 – Трансляция языков программирования (см. Таблицу 2 в Приложении).

Существенно более трудной работой оказалось совмещение требований 511900 с CC:SE, что, собственно, и было нашей конечной целью.

CC:SE дает широкий набор вариантов выбора курсов и последовательности их изучения. Здесь мы представили (в основном, в качестве примера) наши предложения с некоторым обоснованием.

  1. В 6 главе CC:SE предлагается альтернатива – сначала информатика, затем программная инженерия или наоборот. Мы, конечно, выбрали первый вариант, все-таки программную инженерию должны осваивать люди, уже умеющие программировать. Таким образом, мы выбрали последовательность
  2. CS101 -> CS102 -> CS103 и, параллельно с CS103, первый курс по программной инженерии SE201. В принципе, возможен и другой предложенный в CC:SE вариант, в котором тройка курсов CS101, CS102, CS103 сжимается в два курса CS111 и CS112, но на наш взгляд, такой подход вредит восприятию студентами этого базового материала.

  3. Можно сначала изучать императивное программирование, затем объектно-ориентированное, а можно наоборот. Мы склоняемся к первому варианту, как более традиционному, т.е. выбираем курсы CS101i и CS102i.
  4. В п. 6.3 CC:SE разработчикам учебной программы предлагается два пакета основных курсов по программной инженерии. Они не слишком различаются, но все-таки, мы выбрали первый пакет, так как, по нашему мнению, лучше иметь отдельный курс по требованиям к ПО, чем отдельный курс по формальным методам. На самом деле, основной материал и по требованиям, и по формальным методам содержится в обоих пакетах, дело только в расстановке акцентов и уровне подробности.
  5. В п. 6.5 CC:SE представлено множество шаблонов разбивки курсов по годам и семестрам. На наш взгляд, российским традициям лучше всего соответствует шаблон N2S-1 (учебный год в Северной Америке), причем его вариант N2S-1с для факультета информатики, а не N2S-1е для инженерных факультетов.

В результате получилось следующее предложение для российских университетов (см. Таблицу 3 в Приложении):

В точном соответствии с рекомендуемым шаблоном в 1 семестре добавился курс по групповой динамике. Умение работать в группе, знание основ психологии программирования необходимо студентам с самого начала обучения. Для курса NT291 по профессиональной деятельности в 511900 нашелся хороший аналог – курс по социальным и этическим вопросам (в 4 семестре).

В соответствии с выбранным шаблоном в 3 семестр добавляются курсы SE201 – начальный курс по программной инженерии и NT272 – по инженерной экономике. В 4 семестре добавляются SE211 – по проектированию нижнего уровня и SE212 – по человеко-машинному взаимодействию. Чтобы уменьшить нагрузку, в 4 семестре вполне можно пожертвовать факультативом (4 часа) или практикумом (4 часа). Мы предпочли аннулировать практикумы в 4-6 семестрах. К этому времени студенты уже должны уметь программировать – в российских реалиях большинство студентов к этому времени уже работают!

В 5 семестр вставили курс SE311 по проектированию распределенных систем, а в 6 семестр – еще 2 курса первого пакета:

  • SE321 – QA и тестирование
  • SE322 – Анализ требований

В 6 семестре для этих курсов удобно использовать единственный курс в 511900 по программной инженерии.

Последний курс первого пакета SE323 – Управление программными проектами, хотя его номер и начинается с 3 (это означает, что он должен читаться на 3 курсе), но у нас, как и в шаблоне N2S-1i, он поместился в 9 семестре.

Наконец, SE400 – дипломный проект завершает программу обучения, мы не стали указывать, сколько часов в неделю нужно ему отводить, подразумевая, что студент будет тратить на диплом все дни и ночи.

Приложение.

Примерный учебный план подготовки бакалавров по направлению 511900 "Информационные технологии"
1 курс 2 курс 3 курс 4 курс
1 семестр 2 семестр 3 семестр 4 семестр 5 семестр 6 семестр 7 семестр 8 семестр
               
Цикл гуманитарных и социально-экономических дисциплин (1800 общ.ч / 770 ауд.ч)
иностранный язык        
4 4 4 4        
история   философия   курсы по выбору студента    
3   4   4 4    
    обязательные курсы по выбору Нац.региональные (вуз) курсы
    2 2 2 2 4 4
               
Цикл математических и общих естественно-научных дисциплин (2532 общ.ч / 1676 ауд. ч)
математический анализ дифф.уравнения теория графов модел. инф.процес. прикл.зад.теорвер. ДИПЛОМ
6 6 6 4 4 2 4  
               
алгебра и геометрия алгор.и анализ сл. матлогика и т. алгор т.авт. и фор.языки неклассичес. логики спец. курсы по выбору студента
6 6 4 6 4 4 6 6
          ?    
дискретная математика языки программир. теорвер и матстат. нац-рег (вуз) с/к   интеллект. системы  
4 4 4 4 6   4  
    ?          
программирование физика базы данных прогр.инженирия нац-рег (вуз) с/к  
4 4 4 4 4 4 6  
    ? ?        
  арх.выч.систем ОС компьютерные сети вычисл.математика оптимиз. и иссл. оп    
  4 4 4 4 4    
         
      комп. графика специальные курсы
      2 4 4 4 4
               
      социал.и этич вопр. факультативы
      2 4 4 2 2
практикум на ЭВМ    
4 4 4 4 2 2    
      факультатив        
      4        
               
количество часов в неделю
31 32 36 40 38 30 30 16

Таблица 1. Расчасовка программы 511900

Примерный учебный план подготовки бакалавров по направлению 511900 "Информационные технологии"
1 курс 2 курс 3 курс 4 курс
1 семестр 2 семестр 3 семестр 4 семестр 5 семестр 6 семестр 7 семестр 8 семестр
               
Цикл гуманитарных и социально-экономических дисциплин (1800 общ.ч / 770 ауд.ч)
иностранный язык        
4 4 4 4        
история   философия   курсы по выбору студента    
3   4   4 4    
    обязательные курсы по выбору Нац.региональные (вуз) курсы
    2 2 2 2 4 4
               
Цикл математических и общих естественно-научных дисциплин (2532 общ.ч / 1676 ауд. ч)
математический анализ дифф.уравнения теория графов модел. инф.процес. прикл.зад.теорвер. ДИПЛОМ
6 6 6 4 4 2 4  
            MA271  
алгебра и геометрия алгор.и анализ сл. матлогика и т. алгор т.авт. и фор.языки трансл.языков прогр спец. курсы по выбору студента
6 6 4 6 4 4 6 6
    CS210   CS311 CS240    
дискретная математика   теорвер и матстат. нац-рег (вуз) с/к   интеллект. системы  
4 4   4 6   4  
CS105 CS106         CS260  
программирование алгор.и стр.дан   базы данных прогр.инженирия нац-рег (вуз) с/к  
4 4 2   4 4 6  
CS101 CS102 CS103   CS270      
  арх.выч.систем ОС компьютерные сети вычисл.математика оптимиз. и иссл. оп    
  4 4 4 4 4    
  CS220 CS225 CS230  
      комп. графика специальные курсы
      2 4 4 4 4
      CS250        
      социал.и этич вопр. факультативы
      2 4 4 2 2
практикум на ЭВМ    
4 4 4 4 2 2    
      факультатив        
      4        
               
количество часов в неделю
31 32 30 36 38 30 30 16

Таблица 2. Привязка курсов 511900 к CC:CS

Примерный учебный план подготовки бакалавров по направлению 511900 "Информационные технологии"
1 курс 2 курс 3 курс 4 курс
1 семестр 2 семестр 3 семестр 4 семестр 5 семестр 6 семестр 7 семестр 8 семестр
               
Цикл гуманитарных и социально-экономических дисциплин (1800 общ.ч / 770 ауд.ч)
иностранный язык        
4 4 4 4        
история   философия   курсы по выбору студента    
3   4   4 4    
    обязательные курсы по выбору Нац.региональные (вуз) курсы
    2 2 2 2 4 4
               
Цикл математических и общих естественно-научных дисциплин (2532 общ.ч / 1676 ауд. ч)
математический анализ дифф.уравнения теория графов модел. инф.процес. прикл.зад.теорвер. ДИПЛОМ
6 6 6 4 4 2 4  
            MA271 SE400
алгебра и геометрия алгор.и анализ сл. матлогика и т. алгор т.авт. и фор.языки трансл.языков прогр    
6 6 4 6 4 4    
    CS210   CS311 CS240    
дискретная математика   теорвер и матстат. QA, тестирование проектирование ПО интеллект. системы  
4 4   4 2 4 4  
CS105 CS106     SE321 SE311 CS260  
программирование алгор.и стр.дан низкоур.проектир.ПО базы данных анализ требований управление проект.  
4 4 2 2 4 2 2  
CS101 CS102 CS103 SE211 CS270 SE322 SE323  
групповая динам. арх.выч.систем ОС чел-маш взаимод. вычисл.математика оптимиз. и иссл. оп    
2 4 4 2 4 4    
NT181 CS220 CS225 SE212        
    введение в SE комп. графика специальные курсы
    4 2 4 4 4 4
    SE201 CS250
    инж.экономика социал.и этич вопр. факультативы
    2 2 4 4 2 2
    NT272 NT291        
практикум на ЭВМ компьютерные сети     спец. курсы по выбору студента
4 4 4 4     6 6
      CS230        
      факультатив нац-рег (вуз) с/к   нац-рег (вуз) с/к  
      4 6   6  
               
количество часов в неделю
33 32 36 36 38 30 32 16

Таблица 3. Окончательная раскладка.


В начало :: О конференции :: Программа :: Доклады :: Контакты

Техническая поддержка сайта:
Copyright © АП КИТ, 2005
hosted by TERCOM
webmasters: perez&helga