Реферат: Курс "Основы алгоритмизации и программирования" 1 год обучения Язык программирования Pascal
Курс "Основы алгоритмизации и программирования"
1 год обучения
Язык программирования Pascal
Современный специалист в области компьютерных технологий должен владеть фундаментальными знаниями в области алгоритмизации и программирования. Под этим мы понимаем и системный подход к решению информационных задач, алгоритмическое мышление, знание терминологии и современных средств разработки программного обеспечения.
В настоящее время существует большое количество разнообразных языков программирования, с помощью которых можно эффективно решать широкий круг задач. Но залогом успешной разработки программного обеспечения на любом языке программирования было и остается знание основных принципов алгоритмизации, понимание процесса работы программы, обработки компьютером данных. Это является базисом для программиста любого профиля и поэтому изучается на данном курсе. Отдельное внимание на занятиях уделяется различным способам организации данных в программе, решению стандартных алгоритмических задач.
В прежнее время программирование было уделом математиков и системных инженеров. В настоящее время темы, рассматриваемые в курсе нужны компьютерным специалистам разного профиля: начиная от пользователей офисных пакетов, которые пишут макросы для автоматизации своей работы или WEB-дизайнеров и заканчивая системными программистами. Курс ориентирован на тех пользователей, кто не имеет никаких знаний по алгоритмизации и программированию или является начинающим программистом.
Даже если Вы не собираетесь работать программистом, данный курс научит Вас системно подходит к решению задач, научит грамотно формулировать техническое задание и описывать способы решения при составлении технического задания программистам.
Примеры и упражнения приводятся с применением языка программирования Pascal, но все изучаемые темы распространяются на любые средства программирования высокого уровня. Курс будет полезен не только будущим программистам, но и желающим освоить такие специальности как разработчик WEB-узлов, администратор баз данных, разработчик макросов для различных пакетов. Также данный курс можно рассматривать как подготовительный для поступающих в высшие учебные заведения на соответствующие специальности.
На данном курсе применяется три формы проведения занятий:
Лекции, на которых излагается теоретический материал, рассматриваются общие вопросы решения алгоритмических задач, приводятся многочисленные примеры, советы и рекомендации.
Упражнения – слушатели самостоятельно или совместно с преподавателем решают разнообразные задачи по алгоритмизации и программированию. Часть заданий слушатели курса должны решить дома. Проверенные задания обсуждаются в классе. Всего разбирается более 70 примеров.
Практика – занятия в компьютерном классе, на которых слушатели закрепляют пройденный материал, реализуют на компьютере рассмотренные ранее задачи.
Знания и умения, полученные в результате обучения
В данном курсе рассматриваются общие вопросы, касающиеся двух фундаментальных понятий: алгоритмизации и программирования. Под алгоритмизацией понимается умение свои идеи представлять в формализованном виде, воплощать в форму, доступную для автоматизации, например на компьютере, умение логически мыслить, формализовать постановку задачи и цели алгоритмов, решать типовые алгоритмические задачи. Программирование подразумевает практическую реализацию алгоритмов на определенном языке программирования, знание конструкций языка, технологии программирования.
Слушатель познакомится с основополагающими понятиями: оператор, переменная, процедура, функция, тип данных и т.д. Научится применять основные операторы языка программирования высокого уровня: условие, различные виды циклов, выбор. Научится строить блок-схемы алгоритмов и производить по ним разработку программ. Сможет грамотно проектировать и реализовывать подпрограммы (процедуры и функции). На курсе рассматриваются основные формы представления данных: строки, структуры (пользовательские типы данных), массивы (одномерные и многомерные), списки. Отдельные темы посвящены созданию широко распространенных алгоритмов сортировки, поиска минимального, максимального значения в массиве, реализации задач по обработке строк. Рассматриваются итерационные и рекурсивные алгоритмы. Объясняются основные принципы объектно-ориентированного программирования.
^ Требования к начальному уровню знаний
Данный курс предназначен для слушателей, которые либо не имели совсем, либо имели небольшой опыт программирования. Курс ориентирован на квалифицированных пользователей, имеющих опыт работы в MS Windows, практические навыки работы в Microsoft Word. Знание английского языка облегчает усвоения материала курса.
Предварительное тестирование
1. Тест по операционной системе MS Windows XP
1. Понятие об операционных системах. Функции и классификация операционных систем.
2. Состав MS Windows. Требования к аппаратной части.
3.Понятие об оригинальной и локализованной версиях программы.
4. Раскладка клавиатуры. Переключение языка.
5. Работа с мышью в MS Windows: указатели и типы операций.
6. Интерфейс MS Windows. Основные элементы.
7. Элементы окон в MS Windows. Режимы отображения окна, операции с окнами. Виды окон.
8. Запуск, завершение приложений, переключение между ними.
9. Элементы диалоговых окон, заполнение полей в диалоговых окнах.
10. Операции с пиктограммами. Виды пиктограмм.
11. Типы меню и команд. Способы выполнения команд.
12. Главное меню. Разделы Главного меню.
13. Завершение работы с MS Windows. Перезагрузка системы.
14. Стандартные приложения MS Windows: графический редактор Paint, текстовый редактор WordPad, Калькулятор.
15. Стандартные кнопки в приложениях.
16. Открытие и сохранение документов
17. Буфер Обмена. Копирование и перемещение данных через Буфер Обмена.
18. Ярлыки: определение, виды, способы создания, операции.
19. Файловая система. Пространство имен.
20. Приложение "Мой компьютер": переход на нужный диск и в нужную папку; режимы просмотра; создание и переименование папок; выделение, копирование, перемещение и удаление объектов; отмена последнего действия; изменение свойств и установка параметров.
21. Поиск файлов и папок.
22. Панель задач: назначение, настройка
23. Рабочий стол: назначение, настройка. Упорядочение окон и пиктограмм.
24. Настройка Главного меню.
25. Настройка Панели Управления: Дата/время, Клавиатура, Мышь, Принтеры, Шрифты, Экран.
^ 2. Тест Выполнение практического задания по Microsoft Word 2007
1. Знание основных элементов интерфейса.
2. Операции с документами: сохранение, открытие, закрытие.
3. Многооконный режим работы; упорядочение окон, переключение между окнами.
4. Управление курсором и простейшие операции по редактированию текста.
5. Выделение фрагментов, операции с фрагментами.
6. Сервисные действия: проверка орфографии и грамматики, установка языка и переносов, автозамена, поиск и замена.
7. Форматирование символов.
8. Форматирование абзацев.
9. Обрамление и заливка.
10. Табуляция.
11. Стили.
12. Режимы работы с документом.
13. Вставка иллюстраций. Операции с рисунками. Установка обтекания рисунка текстом.
14. Колонтитулы. Сноски.
15. Списки.
16. Буквица.
17. Параметры страницы.
18. Предварительный просмотр, печать документа.
19. Работа с таблицами.
20. Работа со справочной системой.
Программа курса
Лекции
Раздел 1. Вводная часть.
Программное и аппаратное обеспечение. Языки программирования: уровень и тип языка программирования, характеристики. Краткий обзор парадигм программирования: процедурные языки, объектно-ориентированные языки.
Этапы разработки программного обеспечения. Жизненный цикл программного продукта.
Характеристики разрабатываемой программы.
Основные принципы обработки команд программы исполнителем (компьютером).
Организация ЭВМ. Принципы построения ЭВМ, машина Фон Неймана.
Раздел 2. Понятие Данные.
Понятие данные, информация. Свойства информации.
Представление данных разного типа в компьютере: целочисленные данные и числа с плавающей точкой, строки фиксированной и переменной длины, символы, логические значения, даты. Различные варианты кодировки символов. Сравнение данных разных типов.
Системы счисления. Общие понятия и конкретные системы: десятичная, двоичная, шестнадцатеричная, восьмеричная. Правила перевода числа из одной системы в другую.
Устройство памяти. Адресация. Понятие переменная. Объявление (декларация) и инициализация переменных. Правила именования.
Раздел 3. Понятие Программа.
Понятие программа, алгоритм, исполнитель.
Типы программного обеспечения: системное, прикладное, инструментальное (средства разработчика).
Трехуровневая модель программного продукта.
Свойства алгоритмов. Формы представления алгоритмов: естественный язык, блок-схема, формальный язык. Составление блок-схем алгоритмов.
Иерархическая организация программы, модульность. Область видимости и время жизни. Секции программного модуля.
Понятия транслятор, компилятор, интерпретатор. Статическая и динамическая компиляция.
Раздел 4. Понятие Интерфейс.
Варианты интерфейсов: UI, GUI и др. Важность правильной разработки интерфейса.
Различные методы построения диалога с пользователем.
Раздел 5. Язык программирования. Переменные.
Состав и структура языка программирования. Понятия алфавита, синтаксиса и семантики.
Комментарии.
Переменные. Определение имени переменной. Объявление переменной. Инициализация переменной по умолчанию и из кода.
Область видимости и время жизни переменных.
Оператор присваивания.
Типы переменных. Преобразование типов явное и неявное. Стандартные операции с переменными.
Константы.
Указатель или ссылка на переменную.
Раздел 6. Язык программирования. Операторы.
Понятие оператора. Запись операторов. Многострочные операторы, понятие блока.
Оператор условия. Составления условия: сравнение числовых значений, дат, строковых и логических значения. Составление сложных условий: использование логических операций OR, AND, XOR, NOT. Приоритет операций. Вложенные операторы. Оптимизация условий.
Оператор выбора. Оптимизация оператора выбора.
Оператор цикла: циклы с предусловием, с постусловием, с параметром. Цикл для обхода элементов группы. Понятия: тело цикла, условие цикла, счетчик, итерация. Использование счетчика цикла. Оператор досрочного выхода из цикла.
Раздел 7. Процедуры и функции.
Декомпозиция задачи на подзадачи. Программирование сверху вниз и снизу вверх. Парадигма черного ящика. Входные и выходные данные подпрограммы.
Понятия подпрограмма, процедура, функция. Процедуры стандартные, пользовательские. Описание, объявление, вызов процедуры.
Вызов процедуры и функции.
Аргументы формальные и фактические. Тип аргумента. Передача аргументов по значению и по ссылке. Значение, возвращаемой функцией.
Способы взаимодействия различных фрагментов программы. Структурная декомпозиция.
Раздел 8. Способы организации данных.
Роль организации данных в программе.
Понятие массива. Массивы одномерные и многомерные. Понятие индекса и элемента массива. Подсчет объема памяти занимаемой массивом. Типовые задачи с массивами: доступ к элементу, обход элементов, инициализация элементов.
Представление текстовой информации. Понятие строка. Различные способы организации строковых данных. Работа с отдельными символами. Наиболее употребительные функции для работы со строками.
Пользовательский тип данных (структура). Объявление и использование пользовательского типа. Совместное использование пользовательских типов данных и массивов.
Применение списков и файлов.
Раздел 9. Решение общих алгоритмических задач.
Поиск элемента в массиве: линейный, двоичный и интерполяционные алгоритмы. Поиск наибольшего и наименьшего элемента в массиве. Различные способы сортировки элементов массива: метод прямого выбора, метод вставки, пузырьковая сортировка. Оценка сложности алгоритма и сравнение алгоритмов.
Алгоритмы работы со строками. Разбиение и объединение строк, поиск и извлечение подстроки, удаление подстроки, синтаксический анализ текста.
Рекурсивные и итерационные алгоритмы. Рекурсивные математические функции на примере вычисления факториала.
Раздел 10. Объектно-ориентированное программирование.
Преимущества применения объектно-ориентированного подхода в программировании. Понятия класс, объект, свойство, метод, событие. Основные характерные черты объектно-ориентированного подхода (обзорно): инкапсуляция, наследование, полиморфизм.
^ Практические работы
Практика 1. Знакомство со средой программирования.
Знакомство со средой программирования PascalABC. Основные типы файлов. Понятие решения, проекта, модуля. Создание нового проекта, присвоение имен. Основные операции в проекте, навигация.
Основные необходимые понятия для начала работы с объектами и классами.
Проектирование пользовательского графического интерфейса. Работа в Form Designer.
Написание кода. Создание обработчиков событий, реагирование на действия пользователя.
Решение простейших алгоритмических задач:
- ввод, вывод данных,
- использование подпрограмм,
- проверка правильности ввода, реагирование на ошибки,
- обмен значений двух переменных,
- определение четности числа.
Компиляция проекта. Подготовка и запуск исполняемого файла.
Работа со справочной системой.
Практика 2. Работа с массивом
Создание проекта, добавление, удаление, переименование модулей.
Проектирование приложения, двухуровневая модель. Реализация независимости пользовательского интерфейса от логики.
Реализация подпрограмм для работы с массивом: добавление элемента, удаление, очистка массива, выбор элемента, сортировка элементов. Контроль входных данных.
Разработка пользовательской формы. Проектирование интерфейса. Организация ввода и вывода данных, реакция на ошибки.
Практика 3. Работа со строками
Решение следующих задач:
- переворот строки,
- отображение кодов символов,
- получение случайного слова,
- подсчет и вывод отдельных слов в строке.
Реализация рекурсивного алгоритма
Реализация рекурсивного алгоритма на примере факториала.
Дополнительные темы.
Итерационный алгоритм. Работа с объектами: методы, свойства, события.
Экзамен