Курс «Основы программирования» на базе системы PascalABC.NET IV Международная научно-практическая конференция «Современные информационные технологии и.

Презентация:



Advertisements
Похожие презентации
Обучение современному программированию Материалы семинара для учителей информатики (Пермский государственный педагогический университет, ) С.С.Михалкович.
Advertisements

САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
класс-ПОВТОРЕНИЕ ОСНОВНЫХ ПОНЯТИЙ ТЕМЫ « ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ » 8 КЛАСС.
Подпрограммы 1.Принцип модульности 2.Область действия переменных 3.Параметры подпрограмм 4.Модули.
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
Указатели Динамические структуры данных. 2 Статические данные переменная (массив) имеет имя, по которому к ней можно обращаться размер заранее известен.
Электронный задачник по программированию для системы 1С:Предприятие М. Э. Абрамян, М. Ю. Беренкеева Южный федеральный университет, факультет математики,
1 Записи 2 Запись – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Свойства:
Основы программирования Цыбикова Т.Р.2.
ПРОЕКТ НА ТЕМУ: «РЕАЛИЗАЦИЯ АЛГОРИТМОВ В СРЕДЕ ПРОГРАММИРОВАНИЯ.» ИСПОЛНИТЕЛИ: ГЛУЩЕНКО Ю. В. учитель информатики, высшая категория. МОУ Одинцовская гимназия.
Подпрограмма – это самостоятельная часть программы, реализующая определенный алгоритм.
Массивы Материалы к урокам по программированию. МАССИВ это УПОРЯДОЧЕННАЯ последовательность данных ОДНОГО ТИПА. Массивы относятся к структурированным.
Рекурсивная обработка списков1 Структуры и алгоритмы обработки данных, 1 Лекция 3 Рекурсивная обработка списков 1.Представление и реализация.
Например: семейство бабочек; Понятие одномерного массива поле цветов;
Программирование на языке Паскаль Тема 13. Процедуры Тема 14. Функции.
Урок информатики 9 физико-математический класс.
Составление программ Разработка программ в среде Турбо- Паскаль.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Транксрипт:

Курс «Основы программирования» на базе системы PascalABC.NET IV Международная научно-практическая конференция «Современные информационные технологии и ИТ-образование» ( ) С.С.Михалкович Факультет математики, механики и компьютерных наук Южный федеральный университет

Вопросы, затрагиваемые в докладе Один из вариантов проведения курса «Основы программирования» для студентов классического университета Выбор первого языка и первой среды программирования Современные средства программирования, вводимые на ранних этапах обучения 2

Почему PascalABC.NET ? Современная среда программирования, нацеленная на обучение (мощная и простая) Современный язык программирования Delphi Pascal Дополнительные конструкции, облегчающие обучение Полноценный язык для платформы Microsoft.NET, позволяющий использовать все конструкции и библиотеки.NET. Основная идея: от языка, известного в школе, до современных средств промышленной платформы Microsoft.NET 3

Среда программирования Microsoft Visual Studio Проект на C# При создании проекта: 6 файлов и 6 папок После первого запуска: 11 файлов и 6 папок 4

Среда программирования Microsoft Visual Studio Проект на Visual Basic При создании проекта: 12 файлов и 6 папок После первого запуска: 21 файл и 6 папок 5

Среда PascalABC.NET Одна программа – один файл Окно вывода, интегрированное в оболочку 6

Курс «Основы программирования» Мехмат ЮФУ, 1 курс, 2 семестра, направление «Информационные технологии». Лекции: 3 часа в неделю, практика: 4 часа в неделю. Основные цели: алгоритмизация, изучение современных конструкций и технологий программирования На входе: некоторые знания языка Pascal (реже – Basic ) На выходе: владение основными алгоритмами и структурами данных, знание основных приемов программирования, умение применять объектно- ориентированное программирование. Готовность быстро осваивать новые языки программирования 7

Программа курса. Семестр 1 Начальный этап Разработка подпрограмм. Процедурные переменные Модули и библиотеки Массивы Записи и объектное программирование Символы и строки 8

Программа курса. Семестр 2 Файлы Рекурсия Динамические структуры данных: списки Динамические структуры данных: деревья Классы: основные понятия Стандартные библиотеки.NET Наследование и иерархия исключений Полиморфизм и интерфейсы 9

Начальный этап 10 var n: integer; begin write('Введите n: '); readln(n); var sum := 0; for var i := 1 to n do begin var x: integer; read(x); sum := sum + x; end; writeln(sum); end. Внутриблочные описания Описание параметра цикла в заголовке цикла Принцип локальности описания Автоопределение типа при описании

Разработка подпрограмм 11 /// Процедура обмена местами значений a и b procedure Swap (var a,b: T); begin var t := a; a := b; b := t; end;... type Fun = function(x: real): real; function Integral(a,b: real; f: Fun): real;... Обобщенные подпрограммы Документирующие комментарии Процедурные переменные

Модульное программирование Упрощенная структура модуля Механизм утверждений и тестирование 12 unit MyUnit; function Add(a,b: integer): integer; begin Result := a + b; end; end. uses MyUnit; begin Assert(Add(2,3) = 5); Assert(Add(7,5) = 12); end. Модуль MyUnit.pas Основная программа

Библиотеки.dll Легкость создания и использования.dll Синтаксическое сходство библиотек и модулей Совместимость библиотек, написанных на разных.NET- языках 13 library MyLib; procedure HelloWorld; begin writeln('Hello, world'); end; end. {$reference 'MyLib.dll'} begin HelloWorld; end. Библиотека MyLib.pas Основная программа

Массивы 14 Статические и динамические массивы Структурная эквивалентность типов динамических массивов Ссылочная модель данных для динамических массивов Оформление модулей и библиотек с обобщенными подпрограммами для работы с динамическими массивами /// Возвращает индекс найденного элемента или -1 function IndexOf (x: T; a: array of T): integer; begin Result := -1; for var i:=0 to a.Length – 1 do if a[i]=x then begin Result := i; exit; end;

Записи и объектное программирование 15 Определение методов внутри записей Размерная модель записей Новый стиль описания и вызова конструктора type Person = record name: string; age: integer; constructor (n: string; a: integer); begin name := n; age := a; end; procedure IncAge; begin age += 1; end;... var p := new Person('Иванов',20); p.IncAge;

Методы внутри стандартных типов 16 Цель: увидеть новое в давно известном Все типы – классы. Статические и экземплярные методы Рассмотрение методов классов integer, string Использование.NET- методов класса string для решения задач на строки var s: string; begin var i: integer := integer.MaxValue; s := i.ToString; i := integer.Parse(s); end.

Динамические структуры данных 17 Ссылочная модель хранения объектов классов Ссылки вместо традиционных указателей Сборка мусора вместо явного освобождения памяти type Node = class data: T; next: Node ; constructor (d: T; n: Node ); begin data := d; next := n; end; end;

Динамические структуры данных 18 Ссылочная модель хранения объектов классов Ссылки вместо традиционных указателей Сборка мусора вместо явного освобождения памяти var p: Node := nil; for var i := 1 to 10 do p := new Node (i,p); while pnil do begin write(p.data,' '); p := p.next; end; p := nil;

Использование стандартных.NET- библиотек 19 Высокоуровневые стандартные классы структур данных Использование интерфейса класса, реализация скрыта Понятие пространства имен.NET uses System.Collections.Generic; var l := new LinkedList ; begin l.AddLast(3); l.AddLast(5); l.AddLast(7); foreach x: integer in l do write(x,' '); end.

Наследование, полиморфизм, интерфейсы 20 Более простой синтаксис интерфейсов по сравнению с Delphi type IFly = interface procedure Fly; end; ISwim = interface procedure Swim; end; FlyingFish = class(IFly,ISwim) public procedure Fly; begin write('Fly'); end; procedure Swim; begin write('Swim'); end; end;... var f: IFly := new FlyingFish; f.Fly;

После курса «Основы программирования» Курс «Языки программирования» – 2 курс, 1 семестр: языки Java и C++, представление о функциональной парадигме программирования ( Haskell ) Легкость изучения Java – одна и та же модель объектов (ссылочная), похожие библиотеки C++ – выяснение различий за счет размерной объектной модели. C# – специально изучать не надо: синтаксис C++ и библиотеки.NET уже изучены. Можно начинать его использование в любом спецкурсе 21

Выводы Рассмотрен один из вариантов построения курса «Основы программирования» Приведены наиболее значимые нововведения при обучении на Паскале, которые стали возможны благодаря средствам, предоставляемым языком PascalABC.NET 22

Страница курса «Основы программирования» 23

Сайт системы PascalABC.NET: 24

25 Михалкович Станислав Станиславович Факультет математики, механики и компьютерных наук Южный федеральный университет