260 likes | 422 Views
Губанов Юрий Санкт-Петербургский государственный университет Математико-механический факультет. Опыт преподавания технологий Microsoft.NET. Содержание. Читаемые курсы Программа курсов Основные идеи Небольшое упражнение. О факультете.
E N D
Губанов Юрий Санкт-Петербургский государственный университет Математико-механический факультет Опыт преподавания технологий Microsoft.NET
Содержание • Читаемые курсы • Программа курсов • Основные идеи • Небольшое упражнение
О факультете • Матмех СПбГУ – победитель многих соревнований по программированию (ACM, единственная команда, два года подряд бравшая первое место) • Первое в России прочтение курса по Microsoft.NET (А.А. Терехов) • Старейший курс в России • Более двухсот слушателей
О докладчике • Профессиональный программист >10 лет • Образование – матмех СПбГУ • Опыт в коммерческом применении преподаваемых технологий • Опыт руководства коммерческими проектами по разработке ПО >8 лет • Опыт преподавания с 2003-го года • Опыт работы пионервожатым и учителем в музыкальной школе
Читаемые курсы • Спецкурс "Введение в Microsoft.NET" • + Спецсеминар (практикум) "Введение в Microsoft.NET" • Спецкурс "Разработка бизнес-приложений на Microsoft.NET" • Спецкурс "Перспективные технологии Microsoft.NET"
Основные наработки • Программа курсов • Презентации курсов • Примеры к презентациям • Задачи для семинаров с "проверочными списками” • Методика приёма экзамена,практических работ
Введение в Microsoft.NET • Базовый курс, рассчитанный на студентов 2-4 курсов • Рассматриваются основные понятия и технологии Microsoft.NET • Не требуется знакомства с .NET, желательно знакомство с С++ или Java • Одна пара в неделю • Идёт с обязательной практикой • Презентации этого курса (2005-го года) доступны на сайте Microsoft
Программа курса • Немного истории • Обзорплатформы Microsoft.NET • Основы платформы Microsoft.NET • Сборки (assemblies) • Обзор C# (2-3 лекции) • Windows Forms (1-2 лекции) • ADO.NET • ASP.NET • SOA и веб-сервисы • Будущее Microsoft.NET
Что не входит в курс и почему • Последнее время – обзор предыдущих технологий (COM ииже с ним) • Сборка мусора • Рефлексия (атрибуты входят в лекцию по C#) • .NET Remoting • Безопасность CAS • Взаимодействие .NET и COM и прочий InteropServices • Работа с XML
Практика • Одна пара в неделю • Практическое задание даётся к каждой лекции • Выполнение всех без исключения задач – необходимое условие допуска к экзамену за спецкурс
Разработка бизнес-приложений на Microsoft.NET • "Продвинутый" курс для уже знакомых с Microsoft.NET • Рассчитан на студентов 3-5 курсов • Рассматривает прикладные вопросы, встречающиеся в профессиональном программировании • Желательно прослушать первый курс
Программа курса • Как увеличить свою зарплату на собеседовании на $1000 • Экскурсия по возможностям студии • Тонкости C# • FxCop – инструмент правильных пацанов • Понятие стиля кодирования. Стиль C# • Принципы защищённого программированияи C# • Коллекции в C# • Отладка в Visual Studio • Модульное тестирование • Работа со строчками. Регулярные выражения • Исключения • Домены приложений. Как поймать все-все исключения • Работа с системными объектами • XML, XSD, XSLT, XPath • Многопоточность и синхронизация • Создание профессионального GUI
Что ещё можно включить в курс, если есть время • Работа с неуправляемыми ресурсами. IDisposable • Работа с неуправляемым кодом. Тонкости взаимодействия • Продвинутая работа с конфигурационными файлами • Профессиональный рефакторинг • Рефлектор (.NET Reflector) • Программирование и отладка с SQL Server • Аспектно-ориентированное программирование
Практика • Формат экзамена – задача, охватывающая все обсуждавшиеся аспекты • Выдаётся за 2 дня до сдачи • Во время сдачи слушатель должен дореализовать один из аспектов задачи, выданные непосредственно в классе • Требуется также следование стилю кодирования, отсутствие предупреждений FxCop и наличие unit-тестов • В конце этого процесса слушателю ставится оценка "отлично", если он успел сделать всё перечисленное в отведённое ему время.
Перспективные технологии Microsoft.NET • Самый "продвинутый" курс • Рассчитан на студентов 4-5 курсов • Аудитория твёрдо владеет основами Microsoft.NET • Рассматривает свежие технологии Microsoft.NET • Самый "нестабильный" курс • Желательно прослушать первый курс • Презентации этого курса (2007-го года) доступны на сайте Microsoft
Программа курса • Windows Communication Foundation • Введение в SOA и WCF • Архитектура WCF • Контракты данных в WCF. Управление временем жизни • Безопасность в WCF • Транзакции в WCF • Windows Presentation Foundation • Введение в WPF • XAML • Элементы управления и раскладки • Ресурсы и стили • Связывание данных • C# 3.0. LINQ и его разновидности • Знакомство с Team Foundation Server
Чтонасчёт других технологий? • Silverlight • WWF • ADO.NET Data Services • ADO.NET Entities Framework
Рекомендуемая литература • Programming WCF Services, Juval Lowy
Рекомендуемая литература • Windows Presentation Foundation Unleashed, Adam Nathan
Практика • Пока не проводилась • См. далее "сложности практики"
Основные наблюдения • Практика должна быть всегда! • Пример начального курса и курса по WPF/WCF • Приглашай специалистов! • Сотрудничество с компаниями Ланит-Терком, Digital Design, Murano Software • …и даже Microsoft! • Не стоит погружаться в детали – не поймут • Погрузился в детали – дай на это задачу
Сложности практики • Админские права • ADO.NET, ASP.NET,WCF – как правило, не хватает • Наличие установленного ПО (Visual Studio, add-ons, Framework 3.5, etc) • Часто IT отделения университетов очень неохотно содействуют в решении проблем и установке нужного ПО • Мало времени (реально успеть человек 10-12) • Сдача по выдаваемому результату – читерство • Сдача по почте – читерство • Кроме того, это просто менее полезно • Только личная проверка + вопросы
Практика • Противодействие манипуляции "ну это же легко сделать!" • Пример кода и советов • Палиндром • Бог • Сдача как правило после 3-5 подходов • Рассчитывайте время
Практика – практические вопросы • Не только проверка результатов • Обучение навыкам профессионального программирования • Правила именования и стиль кодирования • XML comments • Приёмы хорошего дизайна и исправление плохого • Инкапсуляция • Разбиение ответственностей между классами • FxCop • Проверка корректности ввода • Валидация параметров • Usability • Accessibility • Обработка исключений • Вплоть до орфографических ошибок, терминов и английского языка • Проблемы многопоточности • Надо быть занудой!
Сложности лекций • Использование видео • Успеть показать примеры • Надо иметь готовые и проверенные под рукой • Проверенные в классе (проблема прав) • Уметь быстро печатать • Показывать пример из файла – плохо: не нагляднои непонятно • естественное ограничение на размер примеров
Приём экзамена • Посещение – 50% • Пятиминутный экзамен без подготовки и билетов • Сдача всех задач спецсеминара