Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 12.10.04 10:22
Оценка:
Цель:
Систематизация современных концепций программирования (языковых возможностей), с иллюстрацией на C++/C#

Исходная посылка:
На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.

TODO
Не мог бы кто-либо привести ( как-нибудь структрурировано) основные концепции "современных" языков программирования, и дать основные примеры — параллели в C++ ( c всевозможными довесками), и шарпе.

Что есть

Мне в голову приходит сумбурно следующее
1. templates / generic
2. алгоритмы использования памяти + (переписываем new + советы по Мейерсу, то же самое но завернутое в std::allocator, boost) + на примере как в LOKI переписано для маленьких объектов / описание GC (например по Рихтеру)

Функторы, итераторы, диспетчиризация, процессы ( особенно в CLI )

итд
Re: Преподавание основ на примере С++/С#
От: Хитрик Денис Россия RSDN
Дата: 12.10.04 13:06
Оценка:
Вопрос 1: для кого предназначается курс?

Вопрос 2: что подразумевается под "концепцией программирования"?
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[2]: Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 12.10.04 14:56
Оценка:
Здравствуйте, Хитрик Денис, Вы писали:

ХД>Вопрос 1: для кого предназначается курс?

2 Цели:
1) Хочется самому уложить все в голове
2) Возможно(??) как спецкурс в Университете, т.е. for Advanced Students who concentrate to Design,C#, C++


ХД>Вопрос 2: что подразумевается под "концепцией программирования"?

Некоторые понятия и приемы организации программного кода — взятые не абстрактно ( напр. инкапсуляция, наследование — как философские понятия ), а в применении к современному процессу разработки.

Как это сказать?! Шаблоны, интерфесы, перегрузка, функторы, GC .... — они есть (классически реализуются/ны) в разных языках, но сравнения не проводились.(в том числе по сильным и слабым сторонам)

>В чём состоит проблема?

Выяснить параллели + выделить такие основные концепции
Re: Преподавание основ на примере С++/С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.10.04 15:26
Оценка: -2
Здравствуйте, flax, Вы писали:

F>Исходная посылка:

F>На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.

Тут рядом есть разгвор как раз на тему обучения программирования на С++. Я там уже высказывал мнение, что начинать учить писать на С++ не только не нужно, но и вредно.

С++ конечно интересен многими возможностями, но для начинающего он может сослужить плохую службу. Это верное средство запутать человека и навсегда испорить ему понятиях об ОО и струтурном программировании.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Преподавание основ на примере С++/С#
От: LaptevVV Россия  
Дата: 12.10.04 15:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, flax, Вы писали:


F>>Исходная посылка:

F>>На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.

VD>Тут рядом есть разгвор как раз на тему обучения программирования на С++. Я там уже высказывал мнение, что начинать учить писать на С++ не только не нужно, но и вредно.


VD>С++ конечно интересен многими возможностями, но для начинающего он может сослужить плохую службу. Это верное средство запутать человека и навсегда испорить ему понятиях об ОО и струтурном программировании.

Да, С++ — это язык, конечно, не для начинающего. Но и Дейкстра не мог его освоить — я тут уже приводил ссылку на Вирта, где сей факт отмечен. С точки зрения классики — С++ это гадкий утенок. Но работает, блин!!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Преподавание основ на примере С++/С#
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 12.10.04 16:16
Оценка:
Здравствуйте, flax, Вы писали:

F>На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.


Ну... пока что все перечисленное мне кажеться достаточно специфичным для C++ и/или C#. Мне кажеться, что идеи, заложеный в STL, с большим трудом поддаются миграции в другие языки программирования. Перечисленое я бы озаглавил скорее как "специфика разработки на C++", но не "внеязыковые концепции"
Re: Преподавание основ на примере С++/С#
От: Quintanar Россия  
Дата: 12.10.04 16:28
Оценка: 1 (1) +1
Здравствуйте, flax, Вы писали:

F>Цель:

F> Систематизация современных концепций программирования (языковых возможностей), с иллюстрацией на C++/C#

F>Исходная посылка:

F>На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.

F>TODO

F>Не мог бы кто-либо привести ( как-нибудь структрурировано) основные концепции "современных" языков программирования, и дать основные примеры — параллели в C++ ( c всевозможными довесками), и шарпе.

F>Что есть


F>Мне в голову приходит сумбурно следующее

F>1. templates / generic
F>2. алгоритмы использования памяти + (переписываем new + советы по Мейерсу, то же самое но завернутое в std::allocator, boost) + на примере как в LOKI переписано для маленьких объектов / описание GC (например по Рихтеру)

F>Функторы, итераторы, диспетчиризация, процессы ( особенно в CLI )


Некоторые утверждают, что все нужно было изобретено еще при создании Лиспа. И, действительно, почти все, что здесь перечисленно, там есть, а остальное не имеет в его рамках значения. Так что не стоит бросаться громкими словами типа Систематизация современных концепций, поскольку во-первых то, что есть в С++ и С# далеко не современно, а во-вторых, есть множество полезных концепций, которые там отсутствуют. Если называть, так поскромнее — Продвинутые приемы программирования на С++ и C# или типа того.
Re[3]: Преподавание основ на примере С++/С#
От: Хитрик Денис Россия RSDN
Дата: 12.10.04 19:40
Оценка: 74 (4) +2
Здравствуйте, flax.

Везде моё скромное и не очень мнение. Могу ошибаться.

ХД>>Вопрос 1: для кого предназначается курс?

F>2 Цели:
F>1) Хочется самому уложить все в голове
F>2) Возможно(??) как спецкурс в Университете, т.е. for Advanced Students who concentrate to Design,C#, C++

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

ХД>>Вопрос 2: что подразумевается под "концепцией программирования"?

F>Некоторые понятия и приемы организации программного кода — взятые не абстрактно ( напр. инкапсуляция, наследование — как философские понятия ), а в применении к современному процессу разработки.
F>Как это сказать?! Шаблоны, интерфесы, перегрузка, функторы, GC .... — они есть (классически реализуются/ны) в разных языках, но сравнения не проводились.(в том числе по сильным и слабым сторонам)

Позволю себе замечание по второму абзацу: вы перечислили множество понятий. Но ваш список несвязан. Нет контекста, объединяющего все его элементы, который задаёт им всем смысл. Поэтому...
Что, если подойти к обзорному курсу по концепциям с другой точки зрения. Шагать не от имеющихся средств и решений (как вы пытаетесь, по-моему) к истинным (классическим), а наоборот. Выявить прежде всего проблемы, которые появлялись перед поколениями программистов, обрисовать задачи, к которым приводил анализ проблемы, и уже потом познакомиться с существующими на сегодня (просто других нет, а не потому, что это классика или окончательное решение) решениями возникших задач.

Ведь геометрия возникла не от того, что Евклид придумал точку и прямую. Геометрия возникла, когда понадобилось делить землю на части. Так и с ООП — возникло-то и живёт оно не потому, что кто-то подумал и решил "Так будет хорошо". А просто возникли вполне определённые трудности с возросшим объемом программного кода и с отражением в этом самом коде модели внешнего мира. ООП стало временным ответом на возникшие задачи. Придёт время и возникнут задачи, которые потребуют нового подхода и оно отойдёт.

Это я к тому, что стоит идти от проблем, от их истории и причин, от возникающих задач к решениям.
И если вам нужен обзорный широкий курс, вы уже не обойдётесь плюсами и шарпом — придётся смотреть и принципиально иные языки: функциональные, логические и т. д. У них своя определённая ниша, с которой их пока никто сдвинуть не может.

Удачи!
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 02:00
Оценка: 6 (2)
Здравствуйте, flax, Вы писали:

F> Систематизация современных концепций программирования (языковых возможностей), с иллюстрацией на C++/C#


F>Не мог бы кто-либо привести ( как-нибудь структрурировано) основные концепции "современных" языков программирования, и дать основные примеры — параллели в C++ ( c всевозможными довесками), и шарпе.


Для начала прочитай Основные концепции языков программирования Роберта Себесты. Для преподавания твоей дисциплины — must have.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[2]: Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 13.10.04 06:45
Оценка:
Здравствуйте, Aquary, Вы писали:

A> Основные концепции языков программирования Роберта Себесты. Для преподавания твоей дисциплины — must have.


Cпасибо огромное, просмотрел оглавление — очень привлекательно!


Re[3]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 06:54
Оценка:
Здравствуйте, flax, Вы писали:

F>Cпасибо огромное, просмотрел оглавление — очень привлекательно!


вот и я про то же

очень хорошая структура материала, нет никакого фанатизма или предвзятого сравнения — рассматриваются именно концепции, языки же даются в качестве иллюстраций.

особо понравилась глава про шаблоны — оказалось, что они поддерживаются только в С++ и в Аде
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re: Преподавание основ на примере С++/С#
От: LaptevVV Россия  
Дата: 13.10.04 06:58
Оценка:
Здравствуйте, flax, Вы писали:

F>Цель:

F> Систематизация современных концепций программирования (языковых возможностей), с иллюстрацией на C++/C#

F>Исходная посылка:

F>На мой вгляд, на основе C++ (c STL, BOOST, LOKI) и С# можно продемонстрировать основные "Внеязыковые" концепции программирования.

F>TODO

F>Не мог бы кто-либо привести ( как-нибудь структрурировано) основные концепции "современных" языков программирования, и дать основные примеры — параллели в C++ ( c всевозможными довесками), и шарпе.

F>Что есть


F>Мне в голову приходит сумбурно следующее

F>1. templates / generic
F>2. алгоритмы использования памяти + (переписываем new + советы по Мейерсу, то же самое но завернутое в std::allocator, boost) + на примере как в LOKI переписано для маленьких объектов / описание GC (например по Рихтеру)

F>Функторы, итераторы, диспетчиризация, процессы ( особенно в CLI )


Не, тут как раз больше перечислена специфика С++. Где еще функторы в таком виде есть? Или темплейты !!!!!
А вот контейнеры — это общее. И — различные варианты реализации с разными дисциплинами выделения памяти. Это общее.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Преподавание основ на примере С++/С#
От: LaptevVV Россия  
Дата: 13.10.04 06:59
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Здравствуйте, flax, Вы писали:


F>> Систематизация современных концепций программирования (языковых возможностей), с иллюстрацией на C++/C#


F>>Не мог бы кто-либо привести ( как-нибудь структрурировано) основные концепции "современных" языков программирования, и дать основные примеры — параллели в C++ ( c всевозможными довесками), и шарпе.


A>Для начала прочитай Основные концепции языков программирования Роберта Себесты. Для преподавания твоей дисциплины — must have.

Есть еще БЛЕСТЯЩАЯ книга Бен Ари из той же серии. на год-два раньше вышла.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 13.10.04 07:03
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>VD>>Тут рядом есть разгвор как раз на тему обучения программирования на С++. Я там уже высказывал мнение, что начинать учить писать на С++ не только не нужно, но и вредно.


VD>>С++ конечно интересен многими возможностями, но для начинающего он может сослужить плохую службу. Это верное средство запутать человека и навсегда испорить ему понятиях об ОО и струтурном программировании.

LVV>Да, С++ — это язык, конечно, не для начинающего. Но и Дейкстра не мог его освоить — я тут уже приводил ссылку на Вирта, где сей факт отмечен. С точки зрения классики — С++ это гадкий утенок. Но работает, блин!!!!!

for Advanced Students that have already concentrated on Design,C#, C++

Т.е. я НЕ собираюсь учить C++, или рассказывать дотнет. Только акцентировать на взаимосвязь Design — концепции и обеспечить более глубокое понимание. Если хотите, заинтересовать в более глубоком изучении того, что люди УЖЕ в некоторой степени учили..

PS Если найдется, кому это будет интересно.

PPS Но самому интересно.
Re[3]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 07:12
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Есть еще БЛЕСТЯЩАЯ книга Бен Ари из той же серии. на год-два раньше вышла.


ссылочку кинете?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[4]: Преподавание основ на примере С++/С#
От: LaptevVV Россия  
Дата: 13.10.04 07:31
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Здравствуйте, LaptevVV, Вы писали:


LVV>>Есть еще БЛЕСТЯЩАЯ книга Бен Ари из той же серии. на год-два раньше вышла.


A>ссылочку кинете?

Вот эта
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 13.10.04 07:39
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>F>>1. templates / generic

F>>2. алгоритмы использования памяти + (переписываем new + советы по Мейерсу, то же самое но завернутое в std::allocator, boost) + на примере как в LOKI переписано для маленьких объектов / описание GC (например по Рихтеру)

F>>Функторы, итераторы, диспетчиризация, процессы ( особенно в CLI )


LVV>Не, тут как раз больше перечислена специфика С++. Где еще функторы в таком виде есть? Или темплейты !!!!!

LVV>А вот контейнеры — это общее. И — различные варианты реализации с разными дисциплинами выделения памяти. Это общее.

В таком нету. Но может интересно показать
Functor
-------------------------------------
Семантика функторов,
Функторы
STL (
bool operator () (Thing* obj) { return /*вычисляем*/; }
+ про предикаты )

Loki ( Functor + BindFirst + Chain)

Loki functor vs Boost.function (differences)

C# delegate ( и проводим сравнением Operator+ делегатов с Loki:Chain )




Semantic Pointer
--------------------------------
C++ ( роняем слезу)
STL ( auto_ptr )
Loki ( smart_ptr <storage, ownership, conversion, cheaking>)
?? C# reference types
Re[5]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 08:15
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>Есть еще БЛЕСТЯЩАЯ книга Бен Ари из той же серии. на год-два раньше вышла.

A>>ссылочку кинете?
LVV>Вот эта

"...В книге рассматриваются базовые понятия языков программирования: среды программирования,...."
хм... среда программирования — это ведь не язык

"..Основное внимание уделяется языкам C++ и Ada 95, однако не остаются забытыми Pascal, Fortran, PL/I, Lisp и другие.."
"...Отдельная глава посвящена модели и языку Java..."
Языково-ориентированный подход получается То есть сильная привязка к конкретике, имхо...
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[6]: Преподавание основ на примере С++/С#
От: LaptevVV Россия  
Дата: 13.10.04 08:37
Оценка: 5 (1)
Здравствуйте, Aquary, Вы писали:

A>Здравствуйте, LaptevVV, Вы писали:


LVV>>>>Есть еще БЛЕСТЯЩАЯ книга Бен Ари из той же серии. на год-два раньше вышла.

A>>>ссылочку кинете?
LVV>>Вот эта

A>"...В книге рассматриваются базовые понятия языков программирования: среды программирования,...."

A>хм... среда программирования — это ведь не язык

A>"..Основное внимание уделяется языкам C++ и Ada 95, однако не остаются забытыми Pascal, Fortran, PL/I, Lisp и другие.."

A>"...Отдельная глава посвящена модели и языку Java..."
A>Языково-ориентированный подход получается То есть сильная привязка к конкретике,
имхо...
Если б я обращал внимание на аннотации интернет-магазинов...
Методический совет МГУ принял ее в качестве основного учебника по тематике языков программирования. Язык — блестящий. А потом, я например, в ней прочитал про модель параллельных процессор Linda. Как-то мне раньше не попадалось ... Хотя я много книжек разных читаю.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Преподавание основ на примере С++/С#
От: Quintanar Россия  
Дата: 13.10.04 09:07
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Не, тут как раз больше перечислена специфика С++. Где еще функторы в таком виде есть? Или темплейты !!!!!


А что в С++ понимается под функторами?
Re[7]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 09:48
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Если б я обращал внимание на аннотации интернет-магазинов...



LVV>Методический совет МГУ принял ее в качестве основного учебника по тематике языков программирования. Язык — блестящий. А потом, я например, в ней прочитал про модель параллельных процессор Linda. Как-то мне раньше не попадалось ... Хотя я много книжек разных читаю.


в любом случае, если попадется у нас в магазинах — куплю
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[7]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 09:56
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Если б я обращал внимание на аннотации интернет-магазинов...


к слову сказать, вспомнилась книга "С# в науке и технике" за авторством некоего Жаркова (доктора т.н.)....
сказать, что книга — это спрошное очковтирательство, наливание воды и просто полная чушь — не сказать ничего

Недели две всем отделом читали выдержки как анекдоты
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[8]: Преподавание основ на примере С++/С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.10.04 21:33
Оценка:
Здравствуйте, Aquary, Вы писали:

A>Недели две всем отделом читали выдержки как анекдоты


Запостил бы в "Коллег"!
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Преподавание основ на примере С++/С#
От: Aquary Россия https://wmspanel.com/
Дата: 13.10.04 23:13
Оценка:
Здравствуйте, VladD2, Вы писали:

A>>Недели две всем отделом читали выдержки как анекдоты

VD>Запостил бы в "Коллег"!

да я оттуда давно уволился, а книжку на контору покупали...

самое смешное там — библиография... список из 200 или 300 источников, 90% из которых там даже близко не упоминаются и не используются

в общем, если захочет кто посмеяться — рекомендую
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[3]: Преподавание основ на примере С++/С#
От: flax Беларусь  
Дата: 14.10.04 13:18
Оценка:
Здравствуйте, Quintanar, Вы писали:

Q>А что в С++ понимается под функторами?


http://rsdn.ru/Forum/Message.aspx?mid=604913&amp;only=1
Автор: Кодт
Дата: 13.04.04
Re[4]: Преподавание основ на примере С++/С#
От: Хитрик Денис Россия RSDN
Дата: 15.10.04 19:55
Оценка:
Не совсем в тему, может быть, но вот нашёл у себя книжку:

Отзыв: http://www.osp.ru/os/2004/02/077.htm
Домашняя страница автора + сама книга: http://ulm.uni.udm.ru/~nnn/

Вот про современные концепции программирования там обзорно и для начинающих (и не только) написано
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
Re[5]: Преподавание основ на примере С++/С#
От: Дед Пихто  
Дата: 26.10.04 13:37
Оценка:
Здравствуйте, Хитрик Денис, Вы писали:
ХД>Не совсем в тему, может быть, но вот нашёл у себя книжку:
ХД>Отзыв: http://www.osp.ru/os/2004/02/077.htm
ХД>Домашняя страница автора + сама книга: http://ulm.uni.udm.ru/~nnn/
ХД>Вот про современные концепции программирования там обзорно и для начинающих (и не только) написано
Спасибо за ссылку на книгу. Также мне понравилось философски анимированное фото Н.Н.Непейводы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.