Язык С# как современная альтернатива Паскалю и С++ для обучения основам алгоритмизации и программирования

Содержание

Слайд 2

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

План лекции

Критерии выбора языка для обучения программированию в вузе.
Основные

©Павловская Т.А. (СПбГУ ИТМО) План лекции Критерии выбора языка для обучения программированию
характеристики и особенности C#.
План курса и состав учебно-методического комплекса: учебник, тесты, задания, презентации лекций.
Балльно-рейтинговая система оценки результатов обучения.
Краткий обзор языка С# (по презентациям лекций для направления 230100 – Информатика и выч. техника, дисциплина «Программирование на языке высокого уровня»)

Слайд 3

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

Учебники и учебные пособия

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

©Павловская Т.А. (СПбГУ ИТМО) Учебники и учебные пособия Павловская Т.А. C/C++. Программирование
высокого уровня. — CПб.: Питер, 2001-2006. — 461 с.
Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум. — СПб: ПИТЕР, 2002-2006. — 240 с.
Павловская Т.А., Щупак Ю.А. С++. Объектно-ориентированное программирование: Практикум. — СПб: ПИТЕР, 2004-2006. — 265 с.
Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник — СПб.: ПИТЕР, 2003. — 384 с.
Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Практикум — СПб.: ПИТЕР, 2005. — 317 с.
Павловская Т.А. C#. Программирование на языке высокого уровня. — СПб.: ПИТЕР, 2006. — 432 с.
http://pta-ipm.narod.ru http://ips.ifmo.ru,
http://de.ifmo.ruhttp://de.ifmo.ru, http://cis.ifmo.ru

Слайд 4

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

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

Слайд 5

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

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

Слайд 6

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

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

Слайд 7

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

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

Слайд 8

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

Последовательность изучения основ программирования

Введение: цели обучения, критерии качества ПО,

©Павловская Т.А. (СПбГУ ИТМО) Последовательность изучения основ программирования Введение: цели обучения, критерии
парадигмы и технологии программирования, обоснование выбора языка*
Состав языка (лексемы): константы, имена, ключевые слова, знаки операций, разделители
Концепция типа данных. Классификации типов. Встроенные типы.
Переменные, операции, выражения. Организация программы
Операторы языка
Составные типы данных (массивы, записи/структуры, …)
Подпрограммы, модули
Стиль программирования и технологии разработки программ
Динамические структуры данных: стек, очередь, список, дерево
Классы/объекты: описание, наследование, вложение
Применение библиотек объектов

* для ОО: понятие класса

Слайд 9

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

Выбор языка для обучения программированию

BASIC
Паскаль
Fortran
С
C++
Java
С#
Delphi
Oberon
...

?

Критерии выбора:

Эффективность обучения общим

©Павловская Т.А. (СПбГУ ИТМО) Выбор языка для обучения программированию BASIC Паскаль Fortran
основам программирования
Современный уровень языка
Простота обучения
Простота оболочки
Удобство оболочки
Необходимые аппаратные ресурсы
Доступность дистрибутивов
Распространенность
Лицензионная чистота
Объем первоначальных знаний для простейшей программы
Личные предпочтения

Значимость критериев зависит от цели обучения и имеющихся ресурсов

Слайд 10

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

Отслеживает популярность языков программирования. Данные обновляются раз в месяц.

©Павловская Т.А. (СПбГУ ИТМО) Отслеживает популярность языков программирования. Данные обновляются раз в

Рейтинг языка вычисляется исходя из количества квалифицированных кадров по всему миру, курсов и third party производителей. Для вычисления рейтинга языков программирования используются поисковые системы Google, MSN, Yahoo!
Рейтинг может использоваться для проверки, что ваши навыки соответствуют требованиям индустрии ПО или для принятия решения, какой язык выбрать для разработки новой системы.
Для каждого языка программирования вычисляются рейтинг и статус. Рейтинг указывается в процентах.
У каждого языка может быть статус "B", "A--", "A-" или "A". Языки, имеющие статус "A", считаются основными. Если в течение как минимум 3 месяцев рейтинг языка держится выше 0.7%, то он получает статус "A".
Для разработки рекомендуется использовать основные языки программирования по трем причинам:
для неосновных языков гораздо меньше квалифицированных кадров
производители инструментов не занимаются разработкой инструментов для неосновных языков
как правило, для неосновных языков существует меньшее количество библиотек
Конечно, это всего лишь один из критериев использования того или иного языка. Нужно учитывать также применимость языка к предметной области, производительность, масштабируемость.

TIOBE Programming Community Index

Слайд 11

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

TIOBE Programming Community Index for August 2009

www.tiobe.com

©Павловская Т.А. (СПбГУ ИТМО) TIOBE Programming Community Index for August 2009 www.tiobe.com

Слайд 12

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

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

Слайд 13

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

Популярность языков с langpop.com

©Павловская Т.А. (СПбГУ ИТМО) Популярность языков с langpop.com

Слайд 14

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

Другой срез

©Павловская Т.А. (СПбГУ ИТМО) Другой срез

Слайд 15

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

how much it costs you, the advertiser, per click

©Павловская Т.А. (СПбГУ ИТМО) how much it costs you, the advertiser, per
for ads placed with search terms such as “java consulting” or “perl training”
We can see which languages are generating the most commercial interest in terms of ad sales.

Слайд 16

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

Основные черты Оберона

Простой и ясный синтаксис, похожий на синтаксис

©Павловская Т.А. (СПбГУ ИТМО) Основные черты Оберона Простой и ясный синтаксис, похожий
Паскаля (не путать с Турбо Паскалем) и Модулы-2.
Набор структурных управляющих конструкций (IF-ELSIF-...-ELSE-END, CASE, WHILE, REPEAT, LOOP)
Удобный и простой набор базовых типов (символы и строки, короткие и длинные целые и вещественные, логический тип, множества, процедурный тип)
Простые и удобные правила совместимости числовых типов (SHORTINT<=INTEGER<=LONGINT<=REAL<=LONGREAL)
Массивы (в том числе открытые и динамические), записи (расширяемые) и указатели на массивы и записи
Полный (но не избыточный) набор средств поддержки наследования и полиморфизма: проверка и охрана (динамического) типа, региональная охрана типа
Встроенный сборщик мусора
Простое модульное строение со строгим (в том числе межмодульным) контролем и динамической загрузкой модулей
Простой и строгий экспорт и импорт
Автоматическое формирование модулей определений (интерфейсов модулей)

Слайд 17

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

Состав учебно-методического комплекса

рабочая программа
учебник
учебное пособие
методические указания по выполнению лаб.

©Павловская Т.А. (СПбГУ ИТМО) Состав учебно-методического комплекса рабочая программа учебник учебное пособие
работ
методические указания по самост. работе
электронные средства обучения и контроля:
конспект лекций
набор тестов
набор заданий
презентации
справочные материалы

Слайд 18

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

БаРС

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

Слайд 19

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

 

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

Слайд 20

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

58

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

Слайд 21

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

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

Линейные программы
Разветвляющиеся вычислительные процессы
Организация циклов
Простейшие классы
Одномерные массивы
Двумерные

©Павловская Т.А. (СПбГУ ИТМО) Темы лабораторных работ Линейные программы Разветвляющиеся вычислительные процессы
массивы
Строки
Стандартные контейнеры
Классы
Наследование
Создание Windows-приложений

Слайд 22

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

Примеры заданий на лабораторные работы

№1 «Линейные программы»
Напишите программу для

©Павловская Т.А. (СПбГУ ИТМО) Примеры заданий на лабораторные работы №1 «Линейные программы»
расчета по двум формулам. Предварительно подготовьте тестовые примеры для второй формулы с помощью калькулятора (результаты вычисления по обеим формулам должны совпадать). Отсутствующие в языке функции выразите через имеющиеся.

Слайд 23

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

Примеры заданий на лабораторные работы

№2 «Разветвляющиеся вычислительные процессы»
Задание 1
Написать

©Павловская Т.А. (СПбГУ ИТМО) Примеры заданий на лабораторные работы №2 «Разветвляющиеся вычислительные
программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R вводится с клавиатуры.

Слайд 24

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

Примеры заданий на лабораторные работы

Задание 2
Написать программу, которая определяет,

©Павловская Т.А. (СПбГУ ИТМО) Примеры заданий на лабораторные работы Задание 2 Написать
попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. Результат работы программы вывести в виде текстового сообщения.

Слайд 25

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

№3 «Организация циклов»
Задание 3
Вычислить и вывести на экран

©Павловская Т.А. (СПбГУ ИТМО) №3 «Организация циклов» Задание 3 Вычислить и вывести
в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xнач до xкон с шагом dx с точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.

Примеры заданий на лабораторные работы

Слайд 26

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

№4 «Одномерные массивы»
В одномерном массиве, состоящем из n вещественных

©Павловская Т.А. (СПбГУ ИТМО) №4 «Одномерные массивы» В одномерном массиве, состоящем из
элементов, вычислить:
Сумму отрицательных элементов массива.
Произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.

Примеры заданий на лабораторные работы

№5 «Двумерные массивы и подпрограммы»
Дана целочисленная прямоугольная матрица. Определить:
1. Количество строк, не содержащих ни одного нулевого элемента (оформить в виде функции).
2. Максимальное из чисел, встpечающихся в заданной матpице более одного pаза (оформить в виде процедуры).

Слайд 27

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

Выберите допустимые константы.
259
0,01
'ф'
1.2*e1
$EEE
'\\\'
$FFH0
^C
'вася''

Примеры тестовых вопросов

Выберите все правильные

©Павловская Т.А. (СПбГУ ИТМО) Выберите допустимые константы. 259 0,01 'ф' 1.2*e1 $EEE
ответы.
В переменной типа byte можно хранить число
13;
213;
–13;
–213;
1213.

Слайд 28

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

Чему равно числовое значение приведенного ниже выражения при e

©Павловская Т.А. (СПбГУ ИТМО) Чему равно числовое значение приведенного ниже выражения при
= 4, a = 3?
e + sqrt(e) * 1e1 / 2 * a

Примеры тестовых вопросов

Чему равно значение выражения
(a and not b or c),
где a, b и с — величины типа boolean, имеющие значения true, false и false соответственно?

Чему равно числовое значение приведенного ниже выражения при e = 4, a = 3?
e+Math.Sqrt(e)*1e1/2*a

Чему равно значение выражения
(! ( a && b ) || c),
где a, b и с — величины типа bool, имеющие значения true, false и false соответственно?

Слайд 29

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

Какие выражения не содержат синтаксических ошибок?
sin(abs(0.6e3 * y_t))
a div

©Павловская Т.А. (СПбГУ ИТМО) Какие выражения не содержат синтаксических ошибок? sin(abs(0.6e3 *
b / c * mod
$EF01 * 1.34E–02 /_i7_17
1_2i – exp(y) / 2 * t
cos(3 * x) + 0,2

Примеры тестовых вопросов

Выберите правильные ответы. Можно ли присвоить:
целую переменную — вещественной переменной;
вещественную переменную — целой переменной;
символьную переменную — целой переменной;
целую переменную — булевской переменной;
целой переменной — целую константу.

Какие выражения не содержат синтаксических ошибок?
-0.18*a/r-0.2*t
(-0.18)*a)/(r-0.2*t)
Math.Cos/^2*x+0,2
(-0.18)*a)\\(r-0.2*t))

Слайд 30

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

Что из перечисленных ниже вариантов будет выведено на экран

©Павловская Т.А. (СПбГУ ИТМО) Что из перечисленных ниже вариантов будет выведено на
в результате работы программы?
var k : byte; x :real;
begin
k := 2; x := 1;
write ('*', '*', x:3:1, k:k, '* *');
end.
**1.0 2* *
* * 1.0 2**
** 1.02* *
**1.02**
** 1.0 2* *

Примеры тестовых вопросов

Чему будет равно значение переменной А после выполнения фрагмента программы, если В = 3?
A := 2; if В <= 4 then
C := 1 else C := 0; A := C;

Слайд 31

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

Чему будет равно значение переменной m после выполнения программы?
var

©Павловская Т.А. (СПбГУ ИТМО) Чему будет равно значение переменной m после выполнения
k, m : word;
begin
m := 1;
for k := 3 downto 1 do;
inc(m);
end;

Примеры тестовых вопросов

Чему будет равно значение переменной m после выполнения фрагмента программы?
{
int k;
int m;
k = 0; m = 0;
while (k < 3)
++k;
++m;
}

Слайд 32

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

Что будет выведено на экран в результате выполнения фрагмента

©Павловская Т.А. (СПбГУ ИТМО) Что будет выведено на экран в результате выполнения
программы?
{
char[] a = {'a', 'b', 'c', 'r', 'c', 'a', 'a', 'b'};
char k = 'b';
for (int i = 0; i < 8; i++)
if (a[i] > k) k = a[i];
Console.Write(k);
}

Что будет выведено на экран в результате работы программы?
const a : array[1 .. 8] of char = 'abcrcaab';
var i : integer; k : string;
begin
k := '';
for i := 8 downto 2 do
if a[i] < 'c' then k := k + a[i];
write(k)
end.

Примеры тестовых вопросов

Слайд 33

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

Заголовок подпрограммы имеет вид:
Procedure P(a : integer; var b,

©Павловская Т.А. (СПбГУ ИТМО) Заголовок подпрограммы имеет вид: Procedure P(a : integer;
c : word; d : real);
Укажите правильные варианты вызова подпрограммы, если переменные в вызывающей программе описаны так:
var a : integer; b, k : word; e : integer; d, x : real;
P(a, b, k, d);
P(a, b, e, d);
P(k, b, k, x);
P(a + e div 2, b, k, d – x/2);
P(a, d, k, b);

Примеры тестовых вопросов

Слайд 34

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

Примеры тестовых вопросов

Какие из следующих утверждений являются НЕПРАВИЛЬНЫМИ?
class

©Павловская Т.А. (СПбГУ ИТМО) Примеры тестовых вопросов Какие из следующих утверждений являются
Base{};
class Derived: protected Base{};
1 Base является закрытым потомком Derived.
2 Base является суперклассом для Derived.
3 Derived является дочерним классом Base.
4 Derived является закрытым потомком Base.

Операция static_cast используется для преобразования типа между:
1 целыми типами
2 объектами, входящими в разные иерархии
3 целыми и перечисляемыми типами
4 целыми и вещественными типами

Имя файла: Язык-С#-как-современная-альтернатива-Паскалю-и-С++-для-обучения-основам-алгоритмизации-и-программирования.pptx
Количество просмотров: 297
Количество скачиваний: 0