Основы программирования

Содержание

Слайд 2

Т.А. Павловская (СПбГУ ИТМО)

Задача курса - обучение основам создания коммерческих программных продуктов:

разработка

Т.А. Павловская (СПбГУ ИТМО) Задача курса - обучение основам создания коммерческих программных
эффективных алгоритмов
выбор наиболее подходящих языковых средств
выбор оптимальных или близких к ним структур данных
профессиональное кодирование и тестирование
введение в технологии разработки ПО

Слайд 3

Т.А. Павловская (НИУ ИТМО)

Содержание курса

Парадигмы программирования
Типы данных и управляющие конструкции языка высокого

Т.А. Павловская (НИУ ИТМО) Содержание курса Парадигмы программирования Типы данных и управляющие
уровня
Структуры данных
массивы, стеки, очереди, списки, деревья
Объектно-ориентированное программирование
теория ООП
основы программирования под Windows
библиотеки классов

Слайд 4

Т.А. Павловская (НИУ ИТМО)

Программист должен обладать способностью первоклассного математика к абстракции и

Т.А. Павловская (НИУ ИТМО) Программист должен обладать способностью первоклассного математика к абстракции
логическому мышлению в сочетании с эдисоновским талантом сооружать всё, что угодно, из нуля и единиц.
Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста, сочетать в себе лёгкость и полет таланта Моцарта с усидчивостью и скрупулёзностью Сальери.
Академик Андрей Петрович Ершов

Слайд 5

TIOBE Programming Community Index for August 2012

Indicator of the popularity of

TIOBE Programming Community Index for August 2012 Indicator of the popularity of
programming languages.
The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, Bing, Yahoo!, Wikipedia, YouTube and Baidu are used to calculate the ratings.

www.tiobe.com

Слайд 6

Т.А. Павловская (НИУ ИТМО)

Т.А. Павловская (НИУ ИТМО)

Слайд 7

Т.А. Павловская (НИУ ИТМО)

Парадигмы (категории языков)

Т.А. Павловская (НИУ ИТМО) Парадигмы (категории языков)

Слайд 8

Т.А. Павловская (НИУ ИТМО)

Виды учебной нагрузки

Лекции
Модули I-II (осень) - 1 пара по

Т.А. Павловская (НИУ ИТМО) Виды учебной нагрузки Лекции Модули I-II (осень) -
нечет, 2 пары по чет.
Модули III-IV (весна) - 1 пара 1 раз в 2 недели
Лаб. работы - 1 пара 1 раз в неделю
Самостоятельная работа - круглосуточно
Тестирование в ЦДО – 1 в каждом модуле (ауд. 101)
Рубежный контроль – 1 в каждом модуле, состоит из теор. и практич. части
Экзамены (1 осень, 1 весна = тестирование + решение задачи, письменно, ручкой на бумаге)

Слайд 9

Т.А. Павловская (НИУ ИТМО)

БАРС: расчет рейтинга для модуля I (9 недель)

Т.А. Павловская (НИУ ИТМО) БАРС: расчет рейтинга для модуля I (9 недель)

Слайд 10

Т.А. Павловская (НИУ ИТМО)

Т.А. Павловская (НИУ ИТМО)

Слайд 11

Т.А. Павловская (НИУ ИТМО)

Темы лабораторных работ

Линейные программы (вычисление по двум формулам)
Константы
Типы данных
Переменные
Операции
Выражения
Исключительные ситуации
Простейший

Т.А. Павловская (НИУ ИТМО) Темы лабораторных работ Линейные программы (вычисление по двум
ввод-вывод
Разветвляющиеся программы (2 задания)
Циклические программы (3 задания)

Слайд 12

Т.А. Павловская (НИУ ИТМО)

Художественная литература по программированию (must read)

Брукс Ф. Мифический человеко-месяц,

Т.А. Павловская (НИУ ИТМО) Художественная литература по программированию (must read) Брукс Ф.
или как создаются программные комплексы.
Макконнелл С. Совершенный код (есть на моем сайте в разделе «Технологии программирования»).
Спольски Дж. Джоэл о программировании (www. joelonsoftware.com).

Слайд 13

Т.А. Павловская (НИУ ИТМО)

«Программист, подобно поэту, работает почти непосредственно с чистой мыслью.

Т.А. Павловская (НИУ ИТМО) «Программист, подобно поэту, работает почти непосредственно с чистой
Он строит свои замки в воздухе и из воздуха, творя силой воображения. <...> Однако программная конструкция, в отличие от поэтических творений, реальна, в том смысле, что она движется и работает, производя видимые результаты, которые отделимы от самой конструкции. Она печатает результаты, рисует картинки, производит звуки, приводит в движение рычаги. В наше время осуществилось волшебство мифа и легенды. С клавиатуры вводится верное заклинание, и экран монитора оживает, показывая то, чего никогда не было и не могло быть».
Ф. Брукс

Слайд 14

Т.А. Павловская (НИУ ИТМО)

«Чтобы стать специалистом, настоящим экспертом лишь в одной области

Т.А. Павловская (НИУ ИТМО) «Чтобы стать специалистом, настоящим экспертом лишь в одной
программирования, нужны годы. Конечно, есть масса толковых подростков, которые за неделю осваивают Delphi, еще за неделю Python, еще за неделю Perl, после чего они считают себя знатоками. При этом у них нет даже самого отдаленного представления о том, сколь многого они не знают.»
"… изучить 90% необходимого в работе материала можно за неделю. Но на освоение оставшихся 10% может уйти пара лет. Вот тут-то и проявляется во всем блеске превосходство действительно опытных программистов над теми, кто говорит, что если он чего-то не знает, то возьмет книжку и прочтет".
Дж. Спольски

Слайд 15

Т.А. Павловская (НИУ ИТМО)

Общеобразовательная литература

Вирт Н. Алгоритмы + структуры данных = программы
Кнут

Т.А. Павловская (НИУ ИТМО) Общеобразовательная литература Вирт Н. Алгоритмы + структуры данных
Д. Искусство программирования, том 1. Основные алгоритмы, 3-е изд. – М.: Издательский дом "Вильямс", 2000.
Кнут Д. Искусство программирования, том 3. Сортировка и поиск, 2-е изд. – М.: Издательский дом "Вильямс", 2000 (есть на моем сайте в разделе «Комбинаторные алгоритмы»).
Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. – М.: МЦНМО, 1999 (есть на моем сайте в разделе «Комбинаторные алгоритмы»).
Фаулер М. Рефакторинг: улучшение существующего кода. СПб: Символ-Плюс, 2007. 432 с.

Слайд 16

Т.А. Павловская (НИУ ИТМО)

Литература - моя

Павловская Т.А. C#. Программирование на языке высокого

Т.А. Павловская (НИУ ИТМО) Литература - моя Павловская Т.А. C#. Программирование на
уровня. Учебник — СПб.: ПИТЕР, 2010. — 432 с.
Павловская Т.А. «Основы языка С#. Учебно-методическое пособие» — РИО СПбГУИТМО, 2008.
Павловская Т.А. «Программирование на языке С#. Методические рекомендации по лабораторному практикуму» — РИО СПбГУИТМО, 2008.
Павловская Т.А. «Программирование на языке С#. Методические рекомендации по выполнению самостоятельной работы студентов» — РИО СПбГУИТМО, 2008.

Слайд 17

Литература

Стандарт языка: http: http://: http://www: http://www.: http://www.ecma: http://www.ecma-: http://www.ecma-international: http://www.ecma-international.: http://www.ecma-international.org: http://www.ecma-international.org/:

Литература Стандарт языка: http: http://: http://www: http://www.: http://www.ecma: http://www.ecma-: http://www.ecma-international: http://www.ecma-international.: http://www.ecma-international.org:
http://www.ecma-international.org/publications: http://www.ecma-international.org/publications/: http://www.ecma-international.org/publications/standards: http://www.ecma-international.org/publications/standards/: http://www.ecma-international.org/publications/standards/Ecma: http://www.ecma-international.org/publications/standards/Ecma-334.: http://www.ecma-international.org/publications/standards/Ecma-334.htm (версия 1.0 в удобном формате есть на моем сайте)
Хейлсберг А. и др. Язык программирования C#. — СПб.: Питер, 2012. — 784 с.
Троелсен Э. C# и платформа .NET. Библиотека программиста. — СПб.: Питер, 2008. — 796 с.
Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. — М.: «Символ+», 2011. — 768 с.
Нэш Т. C# 2008: ускоренный курс для профессионалов. — М.: «Вильямс», 2008. — 576 с.
Нейгел К., Ивьен Б., Глинн Д., Уотсон К. , Скиннер М. C# 2008 и платформа .NET 3.5 для профессионалов — М.: «Вильямс», 2008. — 1376+416 (на CD) с.
Любые другие книги с символами "С#" на обложке!
Скачать Microsoft Visual С# Express 2010: http://www.softtime.ru/cpp_info/vs_net.php

Слайд 18

Т.А. Павловская (НИУ ИТМО)

Электронные источники

httphttp://http://ptahttp://pta-http://pta-ipmhttp://pta-ipm.http://pta-ipm.narodhttp://pta-ipm.narod.http://pta-ipm.narod.ru — презентации лекций, текущие объявления
httphttp://http://dehttp://de.http://de.ifmohttp://de.ifmo.http://de.ifmo.ru — электронные

Т.А. Павловская (НИУ ИТМО) Электронные источники httphttp://http://ptahttp://pta-http://pta-ipmhttp://pta-ipm.http://pta-ipm.narodhttp://pta-ipm.narod.http://pta-ipm.narod.ru — презентации лекций, текущие объявления
тесты, программа курса
http://www.intuit.ru/department/pl/phlcsharp/ — учебный курс (по моему учебнику)
httphttp://http://ipshttp://ips.http://ips.ifmohttp://ips.ifmo.http://ips.ifmo.ru — конспекты лекций, автоматическая проверка программ
http://msdn.microsoft.com/ru-ru/library/ — библиотека MSDN
...

Слайд 19

Т.А. Павловская (НИУ ИТМО)

И еще литература

Эдвард де Боно. Почему мы такие тупые?.

Т.А. Павловская (НИУ ИТМО) И еще литература Эдвард де Боно. Почему мы
— СПб: ПИТЕР, 2009. — 128 с.

Слайд 20

Т.А. Павловская (НИУ ИТМО)

Анкета

Фамилия, имя, номер группы
Опыт программирования (языки, уровень, стаж, достижения)
Есть

Т.А. Павловская (НИУ ИТМО) Анкета Фамилия, имя, номер группы Опыт программирования (языки,
ли у Вас возможность работать на компьютере вне вуза?
Есть ли у Вас возможность приносить на занятия ноутбук?
Напишите программу, соответствующую приведенной схеме алгоритма, на любом языке программирования. Все переменные – вещественные, блоки в программе не дублировать.
Если у Вас есть ко мне вопросы, можно их задать, отвечу на следующей лекции.

Слайд 21

Т.А. Павловская (НИУ ИТМО)

Т.А. Павловская (НИУ ИТМО)

Слайд 22

Т.А. Павловская (НИУ ИТМО)

Для достижения этих целей программа должна иметь простую структуру,

Т.А. Павловская (НИУ ИТМО) Для достижения этих целей программа должна иметь простую
чтобы
быть читабельной
быть легко модифицируемой

Основные критерии качества программы

надежность
возможность точно планировать производство и сопровождение

Слайд 23

Т.А. Павловская (НИУ ИТМО)

Характеристики качества ПО

Внешние
корректность
практичность
эффективность
надежность
целостность
адаптируемость
правильность
живучесть

Внутренние
удобство сопровождения
тестируемость
удобочитаемость
гибкость
портируемость
возможность повторного использования
понятность

Внешние характеристики
корректность
наличие/отсутствие дефектов в

Т.А. Павловская (НИУ ИТМО) Характеристики качества ПО Внешние корректность практичность эффективность надежность
спецификации, проекте и реализации
практичность
легкость изучения и использования
эффективность
степень использования системных ресурсов
надежность
способность системы выполнять необходимые функции; интервал между отказами
целостность
способность предотвращать неавторизованный или некорректный доступ
адаптируемость
возможность использования в других областях и средах
правильность
степень безошибочности данных, выдаваемых системой
живучесть
способность продолжать работу при недопустимых данных или в напряженных условиях

Слайд 24

Т.А. Павловская (НИУ ИТМО)

Взаимосвязь наиболее признанных и применяемых в мире стандартов в

Т.А. Павловская (НИУ ИТМО) Взаимосвязь наиболее признанных и применяемых в мире стандартов
области разработки программного обеспечения

Слайд 25

Т.А. Павловская (НИУ ИТМО)

Парадигмы программирования

Парадигма — способ организации программы, то есть

Т.А. Павловская (НИУ ИТМО) Парадигмы программирования Парадигма — способ организации программы, то
принцип ее построения. Наиболее распространенными являются процедурная и объектно-ориентированная парадигмы. Они различаются способом декомпозиции, положенным в основу при создании программы.

Процедурная декомпозиция состоит в том, что задача, реализуемая программой, делится на подзадачи, а они, в свою очередь — на более мелкие этапы, то есть выполняется пошаговая детализация алгоритма решения задачи.
Объектно-ориентированная декомпозиция предполагает разбиение предметной области на объекты и реализацию этих объектов и их взаимосвязей в виде программы.
Кроме того, существуют функциональная и логическая парадигмы.

Слайд 26

Т.А. Павловская (НИУ ИТМО)

Платформа .NET

Средства разработки:
набор языков программирования
набор средств разработки, в т.ч.

Т.А. Павловская (НИУ ИТМО) Платформа .NET Средства разработки: набор языков программирования набор
среда VisualStudio.NET;
КАРКАС .NET FRAMEWORK:
библиотека классов
исполняющая система (виртуальная машина) СLR
Cпециализированные серверы:
механизмы поддержки баз данных, электронной почты и коммерции
Веб-сервисы
Устройства
устройства, поддерживающие .NET – игровые приставки и пр.

Слайд 27

Т.А. Павловская (НИУ ИТМО)

Среда разработки Visual Studio.NET

текстовый редактор с IntelliSense;
компиляторы;
средства отладки и

Т.А. Павловская (НИУ ИТМО) Среда разработки Visual Studio.NET текстовый редактор с IntelliSense;
запуска программ;
справочная система;
редактор форм, веб-редактор, дизайнер классов, дизайнер схемы базы данных…
Visual Studio Express – «облегченная версия» для студентов и любителей

Слайд 28

Т.А. Павловская (НИУ ИТМО)

Структура .NET

Библиотека классов

Т.А. Павловская (НИУ ИТМО) Структура .NET Библиотека классов

Слайд 29

Т.А. Павловская (НИУ ИТМО)

Первый взгляд на классы

Понятие класс аналогично обыденному смыслу

Т.А. Павловская (НИУ ИТМО) Первый взгляд на классы Понятие класс аналогично обыденному
этого слова в контексте «класс членистоногих», «класс задач».
Класс является обобщенным понятием, определяющим характеристики и поведение некоторого множества конкретных объектов этого класса, называемых экземплярами класса (объектами).

Все классы .NET имеют одного общего предка — класс object, и организованы в единую иерархическую структуру.
Классы логически сгруппированы в так называемые пространства имен, которые служат для упорядочивания имен классов и предотвращения их конфликтов: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными.

Класс содержит данные, задающие свойства объектов класса, и функции (методы), определяющие их поведение.

Слайд 30

Т.А. Павловская (НИУ ИТМО)

Трансляция

Компиляция Интерпретация

Исходный текст программы

Компилятор,
компоновщик

Программа на машинном языке

Выполнение
программы

Оператор на исходном

Т.А. Павловская (НИУ ИТМО) Трансляция Компиляция Интерпретация Исходный текст программы Компилятор, компоновщик
языке

Интерпре-
татор

Команды на машинном языке

Выполнение
команд

Слайд 31

Т.А. Павловская (НИУ ИТМО)

Гибридная схема трансляции

Исходный текст программы

Компилятор

Программа на промежуточном языке

Исполняющая
система

Т.А. Павловская (НИУ ИТМО) Гибридная схема трансляции Исходный текст программы Компилятор Программа

Слайд 32

Т.А. Павловская (НИУ ИТМО)

Схема выполнения программы в .NET

Т.А. Павловская (НИУ ИТМО) Схема выполнения программы в .NET
Имя файла: Основы-программирования.pptx
Количество просмотров: 118
Количество скачиваний: 0