Ada_Ru форум

Обсуждение языка Ада

Re: Re: [ada_ru] ????????

Оставить новое сообщение

Сообщения

Cyril Sazonov
Re: Re: [ada_ru] ????????
2007-05-18 07:28:10

Hello!

 

Давайте пойдём с самого начала -- с точного определения задачи.

 

1. Чему будем учить?

1.a. Програмированию.

1.b. Языку Ada.

1.с. Программированию на Ada'е под конкретную платформу.

 

Если пункты a и b совершенно нормально совмещаются в пространстве и времени, то к пункту c надо приступать уже после того, как по a и b продвинулись достаточно далеко ( почти до конца !-) ).

 

2. Обучение программированию.

 

Собственно, обучение программированию -- обучение конструированию и структурированию алгоритмов и данных. Делается совершенно платформонезависимо. Язык на данном этапе не слишком важен, хотя инменно язык определяет способ мышления и общие подходы. Здесь, на мой взгляд, лучше Вирта пока ещё никто ничего не написал ( см. его "Алгоритмы и структуры данных" ). Жаль, конечно, что у него не используется Ada, но и Modula-2 достаточно строга, чтоб ориентировать мозги в правильном направлении.

 

В большой степени этот этап похож на подготовку инженера: научить понимать из чего состоит, как разделить на части, как спроектировать отдельные части, чтоб всё это могло работать вместе.

 

3. Изучение Ada'ы.

 

Тоже совершенно платформеннонезависимый этап ( "И это хорошо" (с) Горбачёв ).

В качестве хорошей тренировки: написание, в терминологии Unix'ов, "фильтров" -- программ получающих на вход некий файл/файлы и выдающих как результат файл/файлы. Получаются вполне обозримые по объёму программы с достаточно разветвлённой логикой и использованием разнообразных _языковых_ средств ( анализ строк, поиск в строке, перестановки, обработка исключений, генерация имён выходных файлов на основе имён входных и проч. -- зависит от фантазии и потребностей ).

 

В "Транзасе" в качестве тестовой задачки для принимаемых на работу иногда дают написать программу считающую ворон: на вход подаётся число в цифровой форме, на выходе должна получиться строка на русском языке ( 2_142 -> "Две тысячи сто сорок две вороны" ). !-)

 

В одной из контор, где я работал, один из сотрудников для изучения средств многозадачности в Ada'е писал модель борделя !-) -- случайный поток клиентов, раздача по ограниченному числу девочек и т.д. в меру фантазии и озабоченности.

 

4. Изучение программирования под конкретную платформу.

 

В качестве превого этапа -- написание красивых развесистых интерфейсов для написанного в рамках пункта 3.

 

 

Вот, навскидку, такие мылси. А то как-то пока у нас некоструктивно получается...

 

"Почему мне никто не возражает? Я сморозил какую-то глупость?" ( (c) Фокион Афинский )

 

Sinserely yours Cyril Sazonov

Кирилл Сазонов wrote:

Hello!

 

Давайте пойдём с самого начала -- с точного определения задачи.

 

1. Чему будем учить? 1.a. Програмированию.

1.b. Языку Ada.

1.с. Программированию на Ada'е под конкретную платформу.

 

Программирование Ада под конкретную платформу всего-лишь подразумевает использование платформозависимых библиотек. Этому можно вообще не учить. Когда человек научится использовать платформонезависимые библиотеки, а коих большинство, то с платформозависимыми он как-то сам разберется. Что касается красывых интерфейсов, так проде как gtk и qt кросслатформенные и биндинги к ним надо ожидать тоже.

 

1а и 1б, тут вообще нельзя разделять. Дело в том, что обучать программированию можно только на примере какого-то языка. Ну не с бейсика и лого начинать. Си и ассемблер тоже критикуют как язык для начинающих, т.к. человеку больше приходится вникать в архитектуру. Такие языки Паскаль, Ада наверное для этого подходят очень хорошо (а паскаль и создавался как обучающий). Так что если и учить программированию, то все равно сразу же придется приводить примеры на Ада.

 

С другой стороны, каждый язык навязывает свою парадигму программирования. А ведь обучение программированию и есть обучение определенной парадигме программирования. Обучение программированию, например, на Прологе или Хаскеле это же совершенно разные вещи с разными концепциями. Разве что на С++ можно писать что хочешь и как хочешь, там если все переопределить, то и сам Страуструп не разберется, что и как написанно. А значит если обучать Аде, то все равно придется обучать парадигме программирования под которую она и создавалась, т.е. обучать программированию.

 

-- Olleg Samoylov

Fri, 18 May 2007 13:07:23 +0400, Olleg Samoylov <olleg_s@...> писал(а):

 

 

1а и 1б, тут вообще нельзя разделять. Дело в том, что обучать программированию можно только на примере какого-то языка. Ну не с бейсика и лого начинать. Си и ассемблер тоже критикуют как язык для начинающих, т.к. человеку больше приходится вникать в архитектуру. Такие языки Паскаль, Ада наверное для этого подходят очень хорошо (а паскаль и создавался как обучающий). Так что если и учить программированию, то все равно сразу же придется приводить примеры на Ада.

 

 

Вот с этим не могу полностью согласиться.

Как пример можно посмотреть двухтомник

Маер, Бедуен "Методы программирования"

(авторов написал по памяти, может ошибся в какой-то букве)

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

 

With best regards Sergey Kirkorov

---

Все магазины - ТУТ: http://shop.tut.by

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти