Основы объектного программирования на C# Основы ООП на C#. МГУ, 2008 Владимир Биллиг
О чем пойдет речь Требования к программным системам и технология разработки Проблемы обучения C# и Visual Studio Почему ? Модели обучения и их реализации Классы и модули Классы и объекты Стиль программирования Корректность и устойчивость Отношения между классами Новинки C# 3.0 Будущее C# Итоги
Требования к программным системам Корректность Устойчивость Повторное использование Расширяемость Сроки разработки Технология, отвечающая требованиям ? ООП ОО язык как первый язык программирования ?
Проблемы обучения Алгоритмическое мышление Мир новых понятий Процесс вычислений Выбор Цикл Рекурсия Структуры данных Классические алгоритмы Помогает ли ООП решению проблем ?
C# как претендент Легко поддерживает различные модели программирования, применяемые на начальных этапах обучения. Являясь языком профессионального программирования с большим будущим, обеспечивает легкий переход от обучения к профессиональной работе. Предоставляет большой набор образцов программирования, представленных классами библиотеки Framework.Net. Согласован со средой разработки Visual Studio 2008
Модели обучения Структурное программирование Визуальное, событийно - управляемое программирование Модульное программирование ООП Реализация : -> Консольный проект ! Реализация : -> Windows проект ! Реализация : -> DLL проект ! Реализация : -> Все средства C#!
Демонстрация Модели структурного программирования c:\BookC#30_Projects\SModel\
Классы и модули Модульность Проектирование от данных Две роли класса Класс C# как тип данных Статический класс C# как модуль Статический модуль типа данных Нужны ли модули или достаточно типов данных ?
Демонстрация Модель визуального программирования Класс как модуль c:\BookC#30_Projects\Part1\Ch7\
Развернутые и ссылочные типы Классы и объекты Объекты и память Два вида памяти Развернутый тип Ссылочный тип Классы и структуры C# Строки в C# Класс или структура ?
Стиль программирования Правило « И не вздумайте » Правило «Never, never, never» Правило « Нет литералам » Разное Нужен ли стиль учебным программам ?
Надежность Корректность Отладка Средства отладки в C# Доказательное программирование Метод Флойда и утверждения Assert Устойчивость Исключительные ситуации Охраняемые блоки Проблема обработки ситуаций в C#
Три закона программотехники Первый закон – закон разработчика Второй закон – закон пользователя Третий закон – закон « чечако » Корректность системы – недостижима. Каждая последняя найденная ошибка является предпоследней ? Не бывает некорректных систем. Каждая ошибка – следствие незнания спецификации системы ? Если спецификацию можно нарушить, – она будет нарушена ?
ООП и надежность Что дает надежности отношение вложенности отношение « клиент – поставщик » отношение наследования отношение « родитель – потомок » класс с родовыми параметрами отношение родового порождения статический контроль типов динамическое связывание и полиморфизм автоматическая сборка мусора
Универсальные классы Особенности универсальных классов C# Пример использования библиотечных универсальных классов – транслятор выражений Пример создания сервисных универсальных классов – поиск и сортировка
Наследование Особенности наследования в C# Пример наследования стандартных интерфейсов Пример семейства классов с наследованием
Алгоритмы и программы Классические алгоритмы Вычисление сходящихся рядов. Класс MyMath и калькулятор c:\BookC#30_Projects\Part1\Ch1\ Вычисление выражений Транслятор выражений, регулярные выражения, шкалы c:\C#Projects2008\ExprCalc\ Поиск и сортировка
Новинки C# 3.0 Расширенная архитектура приложений WEB – приложения Приложения, связанные с новыми технологиями – WPF, WCF, WF LINQ и деревья выражений Тренд к функциональному программированию
Будущее C# Тенденции Декларативность Динамичность Параллельность C# 4.0 и новые языки динамические языки IronPython, IronRuby Динамичность dynamic x = 1, y = Привет, z = Math.Abs(x); Упрощенная работа с COM C# 5.0 Компилятор как сервис Программирование на лету
Итоги Язык C# является одним из главных претендентов на роль первого языка программирования. Использование языка C# и среды разработки Visual Studio.NET позволяет поддерживать обучение программированию, начиная с основ программирования, заканчивая уровнем, соответствующим разработке профессиональных программных продуктов.
Мои разработки по C# В. А. Биллиг « Основы программирования на C#», Изд. Интернет – Университет ИТ, БИНОМ, Москва 2006 г. В. А. Биллиг « Основы программирования на C#», Учебный курс на сайте Интернет – Университета ИТ – В. А. Биллиг « Задачник : Алгоритмы и задачи на C#», ( в разделе « Основы программирования »). В. А. Биллиг « Основы объектного программирования на C# 3.0», Новая версия учебника и задачника ( В процессе разработки ).