Выскажу свою точку зрения. Поскольку время уже 0:23 — очень конспективно.
1. Учить надо программированию. Не ООП и прочим паттернам, а программированию (построению и реализации алгоритмов). Если только мы не хотим на выходе получить "специалиста", который умеет только методы вызывать и становится в тупик, когда надо самому что-то написать.
2. На каком языке учить — не так уж важно. Можно и с Паскаля начать. ТурбоПаскаль брать не стоит не потому, что он плох, а потому , что нечего им забивать головы проблемами и ограничениями модели памяти реального режима.
3. Научили основам программирования — можно теперь и ООП и прочее.
4. И другие языки теперь изучать можно, но вообще-то лучше, если они сами будут их изучать. По какому учебнику — вопрос не первостепенный.
Ну а что касается этого учебника — господи, что же тут непонятного? Автор когда-то разработал хороший (возможно, учебник я не смотрел) курс по программированию для 90-х годов прошлого века. Современное состояние он не знает, а продолжает читать свой курс. И будет его читать , пока на пенсию не выйдет. А тут подвернулась возможность издать этот курс, ну он и...
With best regards
Pavel Dvorkin
Re[6]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, LaptevVV, Вы писали:
LVV>>Да запросто! E>Это хорошо . А то вот очень многие говорят, что такое невозможно, и программа автоматически становится ООП, если написана на яве, и процедурной, если написана на си .
Что-то ты уж совсем за первокурсника меня принимаешь...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, LaptevVV, Вы писали:
LVV>>
LVV>>// автомат-преобразователь для целых чисел
LVV>>
E>О, господи. Это у Саттера чтоль такой стиль????? Прям прекрасный вопрос на собеседованиях — что вы думаете об этом коде и как его исправить . Я надеюсь это не код полностью готового к практической работе суперспециалиста ?
1. Это не у Саттера, а у меня.
2. Это ПРИМЕР, демонстрирующий реализацию автомата как набора функций.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, Философ, Вы писали:
LVV>>>>1. ООП — он и в Африке ООП. Хоть на Яве, хоть на С++.
Ф>>>о! кстати! Ф>>>а в Smalltalk'e Objective-C как, тоже? LVV>>Да. Семантика — одна и та же.
Ф>гм... смотря что понимать под семантикой... Ф>вы что в данном случае понимаете здесь под этим словом?
Объекты и передача сообщений.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Выскажу свою точку зрения. Поскольку время уже 0:23 — очень конспективно.
PD>1. Учить надо программированию. Не ООП и прочим паттернам, а программированию (построению и реализации алгоритмов). Если только мы не хотим на выходе получить "специалиста", который умеет только методы вызывать и становится в тупик, когда надо самому что-то написать. PD>2. На каком языке учить — не так уж важно. Можно и с Паскаля начать. ТурбоПаскаль брать не стоит не потому, что он плох, а потому , что нечего им забивать головы проблемами и ограничениями модели памяти реального режима. PD>3. Научили основам программирования — можно теперь и ООП и прочее. PD>4. И другие языки теперь изучать можно, но вообще-то лучше, если они сами будут их изучать. По какому учебнику — вопрос не первостепенный.
Ты все правильно написал.
Именно это мы пытаемся делать.
Поэтому мы сделали свою среду.
Чтобы учень не отвлекался на синтаксис ЯП, а выстраивал именно алгоритм решения задачи.
В отличие от вашего универа, к нам приходят иногда не просто с нулевыми знаниями, а даже с отрицательными...
Поэтому в новой среде прога выглядит как последовательный план работы — на русском языке.
И синтаксических ошибок — нет. Только смысловые-семантические.
И учим в этой среде целый семестр.
И только потом переходим на С++.
Повторяем основы, но уже в реальной среде и на реальном языке.
И только потом переходим к ООП.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>1. Это не у Саттера, а у меня. LVV>2. Это ПРИМЕР, демонстрирующий реализацию автомата как набора функций.
То есть это студентам дается в качестве эталона?
Несколько вопросов тогда:
1) Почему функция digit переусложнена? Зачем там отдельные ветки для нижнего и верхнего регистра, в результате 2 цикла. В приличных институтах говорят сразу, что хорошие программисты всегда стараются избегать special cases. В результате при обходе списков, например, слева помещают еще одну ноду, чтоб не делать дополнительный if и тому подобное.
2) string xdigits = "ABCDEF"; // если большая шестнадцатеричная
for(d = 0; d < 6; ++d)
6 — магическое число, в xdigits можно легко ошибиться, будут интересные приколы если не A а S. Смысл константы дублировать? Да и вместо 6 если поставить 8 — будет бяка.
3) На сверхоптимизированную функцию это тоже не тянет, совершенно непонятно зачем там вообще цикл. Будет гонять на одном месте.
4) s1 и s2 — далеко не самое удачное имя функции.
Это что в глаза бросается сразу.
Соответственно непонятно чему именно будет учить этот код. Если это иллюстрация реализации конечного автомата экзотическим способом, то не мешало б эту реализацию вылизать в плане читаемости. Ибо сейчас слишком длинно. Да и иллюстрацию реализации автомата желательно давать более абстрактно, а потом уже при решении задач использовать. Если же это пример как нужно реализовывать преобразование строки в число — тоже куча вопросов как по читаемости, так и по эффективности.
И вот на таких примерах будут воспитываться студенты. И потом ведь привыкнут, и хрен отучишь от такого стиля. Что и наблюдаем, кстати. Именно потому и говорят, что студентов нужно переучивать, что сплошняком в коде у них ужасы творятся. На ровном месте сложности, а где действительно сложно — там полный атас городят.
Re[2]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали:
LVV>От нее же информация, что в одной школе не получили аттестата 12 выпускников, в другой — 17. LVV>Это те, кто не набрал обязательного минимума по обязательным предметам. LVV>Прикинь, какие сейчас выпуски.
Это лишь означает, что коррупции стало меньше . Когда раздолбаям не рисуют тройку при нулевых знаниях, а у них отсутствует и бумажка — это же наоборот хорошо. А то если посмотреть очень многих текущих 50 летних — непонятно вообще как они аттестат получили. Последний раз в жизни читали в школе му му, детям по математике ничем не могут помочь начиная с четвертого класса, по биологии, химии, физике — знаний вообще полный ноль. Зато эксперты в астрологии, фен шуе, уринотерапии и тому подобным вещам.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, LaptevVV, Вы писали:
LVV>>1. Это не у Саттера, а у меня. LVV>>2. Это ПРИМЕР, демонстрирующий реализацию автомата как набора функций. E>То есть это студентам дается в качестве эталона?
Пример — это не эталон. Это — пример.
Поэтому вопросы воспринимаю как риторические...
... E>И вот на таких примерах будут воспитываться студенты. И потом ведь привыкнут, и хрен отучишь от такого стиля. Что и наблюдаем, кстати. Именно потому и говорят, что студентов нужно переучивать, что сплошняком в коде у них ужасы творятся. На ровном месте сложности, а где действительно сложно — там полный атас городят.
Фигня. Один из приемов обучения: поправьте данный код в сторону улучшения ... (читабельности, производительности... и т.п.)
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, LaptevVV, Вы писали:
LVV>>От нее же информация, что в одной школе не получили аттестата 12 выпускников, в другой — 17. LVV>>Это те, кто не набрал обязательного минимума по обязательным предметам. LVV>>Прикинь, какие сейчас выпуски. E>Это лишь означает, что коррупции стало меньше . Когда раздолбаям не рисуют тройку при нулевых знаниях, а у них отсутствует и бумажка — это же наоборот хорошо. А то если посмотреть очень многих текущих 50 летних — непонятно вообще как они аттестат получили. Последний раз в жизни читали в школе му му, детям по математике ничем не могут помочь начиная с четвертого класса, по биологии, химии, физике — знаний вообще полный ноль. Зато эксперты в астрологии, фен шуе, уринотерапии и тому подобным вещам.
Ничего не могу сказать про подобных 50-летних, ибо обретаюсь в университетской среде.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Об обучении программированию в некоторых престижных вузах
Здравствуйте, LaptevVV, Вы писали:
LVV>Ничего не могу сказать про подобных 50-летних, ибо обретаюсь в университетской среде.
Вот именно. Когда окружен достаточно образованными людьми, то возникает иллюзия что и все остальные такие. А на деле людей без среднего образования у нас просто неимоверное количество. И то, что таким сейчас не выдают аттестат — это прекрасное достижение по борьбе с коррупцией. Хоть в школе это значит чуток вытравили. Еще бы и дипломы почаще не выдавали полным нулям — вообще было бы замечательно.
Re: Об обучении программированию в некоторых престижных вуза
Здравствуйте, LaptevVV, Вы писали:
LVV>Так что сядьте там и слушайте сюда: Астраханский государственный технический университет учит реальному программированию. LVV>Серьезно.
Лаптев, вы молодец. Серьезно. Порекламировали свой университет. Это достойно уважения
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, LaptevVV, Вы писали:
LVV>>Ничего не могу сказать про подобных 50-летних, ибо обретаюсь в университетской среде. E>Вот именно. Когда окружен достаточно образованными людьми, то возникает иллюзия что и все остальные такие. А на деле людей без среднего образования у нас просто неимоверное количество. И то, что таким сейчас не выдают аттестат — это прекрасное достижение по борьбе с коррупцией. Хоть в школе это значит чуток вытравили. Еще бы и дипломы почаще не выдавали полным нулям — вообще было бы замечательно.
Ну с дипломами мы стараемся сами — выгоняем на 1-2 курсах.
Бывает, что чел все-таки добрался до выпускного, но диплом не защитил.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, a_g_99, Вы писали:
__>Здравствуйте, LaptevVV, Вы писали:
LVV>>Так что сядьте там и слушайте сюда: Астраханский государственный технический университет учит реальному программированию. LVV>>Серьезно. __>Лаптев, вы молодец. Серьезно. Порекламировали свой университет. Это достойно уважения
__>Но Стэнфорд по моему скромному мнению учит лучше
Наш контингент Стэнфорд учить не сможет...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, a_g_99, Вы писали:
LVV>>Так что сядьте там и слушайте сюда: Астраханский государственный технический университет учит реальному программированию. LVV>>Серьезно. __>Лаптев, вы молодец. Серьезно. Порекламировали свой университет. Это достойно уважения
__>Но Стэнфорд по моему скромному мнению учит лучше
И отмечу — нас уже сравнивают со Стэнфордом...
Большой прогресс!
А раньше считали заборостроительным...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, a_g_99, Вы писали:
__>Но Стэнфорд по моему скромному мнению учит лучше
Какой Стенфорд?!!! Выпускники Стенфорда что нидь о российских ГОСТах, ЕСПД знают? А это же самое основное в работе программиста ! Выпускники Стенфорда сразу по окончанию на позицию CTO претендуют разве ? Так что выпускники Стенфорда по сравнению с выпускниками лучшего в России Вуза по ИТ — полный отстой !
Re[3]: Об обучении программированию в некоторых престижных вуза
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Философ, Вы писали:
LVV>>>>>1. ООП — он и в Африке ООП. Хоть на Яве, хоть на С++.
Ф>>>>о! кстати! Ф>>>>а в Smalltalk'e Objective-C как, тоже? LVV>>>Да. Семантика — одна и та же.
Ф>>гм... смотря что понимать под семантикой... Ф>>вы что в данном случае понимаете здесь под этим словом? LVV>Объекты и передача сообщений.
Объекты в ООП обладают identity. А в плюсах принято почти все на стеке хранить и передавать по значению.
Например, инстанс класса complex<T> — нифига не объект.
Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, LaptevVV, Вы писали:
PD>Выскажу свою точку зрения. Поскольку время уже 0:23 — очень конспективно.
PD>1. Учить надо программированию.
Это всё равно, что учить музыканта играть. Просто играть. На чем -- не важно.
Программирование как и музыка не существует без инструмента.
PD>Не ООП и прочим паттернам, а программированию (построению и реализации алгоритмов).
Это совершенно разные вещи. Программисты в большинстве своём не придумывают алгоритмов. Они их используют.
PD>Если только мы не хотим на выходе получить "специалиста", который умеет только методы вызывать и становится в тупик, когда надо самому что-то написать.
PD>2. На каком языке учить — не так уж важно. Можно и с Паскаля начать. ТурбоПаскаль брать не стоит не потому, что он плох, а потому , что нечего им забивать головы проблемами и ограничениями модели памяти реального режима.
Важно.
PD>3. Научили основам программирования — можно теперь и ООП и прочее.
А ООП и есть основа. Одна из.
PD>4. И другие языки теперь изучать можно, но вообще-то лучше, если они сами будут их изучать. По какому учебнику — вопрос не первостепенный.
Языки не учат по учебнику. Чтобы овладеть языком, его надо использовать. Т.е. писать на нём.
PD>Ну а что касается этого учебника — господи, что же тут непонятного? Автор когда-то разработал хороший (возможно, учебник я не смотрел) курс по программированию для 90-х годов прошлого века. Современное состояние он не знает, а продолжает читать свой курс. И будет его читать , пока на пенсию не выйдет. А тут подвернулась возможность издать этот курс, ну он и...