Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, martie, Вы писали:
M>>Какие языки, платформы преподавать студентам, что наиболее перспкективно с Вашей точки зрения?
СГ>В университете преподавать языки / платформы? СГ>Ха-ха-ха, вот умора , СГ>а в ПТУ или на курсах повышения квалификации тогда что преподавать прикажете?
СГ>В университете надо давать высшее образование.
Да а потом такие студенты получившие высшее образование не могут найти работу.
Знаете нам один преподователь сказал. Я знаю, что все то, чему я вас учу никому не надо, но у меня УЖЕ есть квартира и машина, а у вас еще нет.
90% студентов должно находить себе работу по специальности, если этого нет, значит специальность не актуальна и программу обучения пора менять.
Аргументы по поводу того, что это не реально. Не интересуют. Придумайте как сделать это реальным и реформируйте систему образования.
Из моей группы 80% устоилось на работу только благодаря дополнительному образованию полученному вне стен ВУЗа.
Re[8]: Какие языки перспективны? Что преподавать студентам?
M>>Эээ. Не надо В итоге в каждой группе весь проект будет делать только один человек, который хоть как-то знает программирование.
PD>Как преподаватель скажу — верно на 150%. Так нельзя делать ни в коем случае, если не хотите давать дипломы тем, кто вообще программировать так и не научился.
студенты не могут найти себе работу? Ха-ха-ха, да это ещё смешнее чем предложение учиться в университетах языкам и платформам вместо получения там высшего образования. Если так дальше дело пойдёт, то я со смеху помру. Помилуйте, ведь сегодня не первое апреля.
Re: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, martie, Вы писали:
M>Добрый день,
M>Сегодня мой научный руководитель (зав. каф. нашего института) M>попросил меня написать что с моей "программистской" точки зрения нужно преподавать M>студентам чтобы повысить общий уровень выпускников, сделать ихболее конкуртноспособными?
M>На данный момент имеем: математическую подготовку — 5+, программисткую же — 3- (здесь все еще паскаль и процедурное программирование) M>Объектное читается всего 1 семестр и на этом все (
M>Так вот вопрос к вам многоуважаемый All: M>Какие языки, платформы преподавать студентам, что наиболее перспкективно с Вашей точки зрения?
M>Сам я склоняюсь что желательн бы смещать акцент на сетевое и web программирование, M>платформы .NET или Java M>кроме того необходимы базовые знания функционального программирования M>Как вы думаете?
Есть такой анекдот:
Заходит программист на ассемблере (A) в кафе.
К нему подходит программист на алгол (B).
Диалог:
A: Можно мне чашечку кофе.
B: Одну минуточку.
Мораль:
Алгол умер как язык, поэтому программист B работает официантом в кафе, т.к больше ни начем
другом он писать не умеет.
Утверждение:
Программист на ассемблере будет нужен ВСЕГДА.
Доказательство:
Языки появляются и умирают, технологии меняются, появляются новые процессоры и т.д.
Ассемблер будет вечно.
Недалекое будущее:
Платформа смениться и Java и .NET отойдут в тень.
В общем, зависит от того, кого, действительно, вуз готовит — формочкоклепателей или Программистов (с большой буквы П).
Если первых, то вопрос смысла не имеет — хоть С++, хоть Яву, хоть С#.
Если, надеюсь, вторых, то функциональные языки (Haskell, раз уж математика на 5) -> C/C++ по примеру SICP. Вполне возможен подход С/С++ -> функциональные языки, но готовьтесь встретиться с "баранами, глядящими на новые ворота".
ОБЯЗАТЕЛЬНО! Дать, например, основы программирования (процедурного) и немного ООП, и параллельно этому — алгоритмы и структуры данных. Потому что ни один язык не поможет, если человек не может понять, как работает ICollectionEnumerator или какой-нибудь std::list.
Почему С++? Потому что извините, но Java/C# — это те же яйца, только в профиль, а знать, как оно там, под капотом, работает, нужно.
Почему алгоритмы? Я думаю, что ответ очевиден.
Почему структуры данных? Потому что у нас в универе на уроке "Analysis of algorithms" половина класса, минимум, не знает, что такое графы, и понятия не имеет, как их имплементировать. При этом знание STL позволяет создать граф на шаблонах за час.
Функциональное программирование — обязательно. Пусть хотя бы знают, что есть _другие_ пути решения задач в программировании, а не только королевство существительных
Кстати, именно поэтому предлагаю С/С++ — потому что pure OOP (или якобы pure, как в Java и C#) — это хорошо, но это и не панацея? а _студенты_ должны иметь представление о _всех_ подходах.
D_A>Умоляю вас, если техническое оснащение позволяет использовать 2003 студию, ее и берите, а язык — C#, не обрекайте студентов с недоуменем смотреть на тупорылый синий экран Паскали или С++. С# — элементарный язык, весьма удобный, есть интеллисенс и все такое.
Ключевые слова — элементарный и интеллисенс. На таких инструментах студент научит клепать формочки в Студии — не более.
Mamut wrote: > _>Ещё важное для студентов (особенно начальных курсов) — научиться > гуглить, т.е. искать инфу в спеках, интернет, форумах, етс. > НИ В КОЕМ СЛУЧАЕ!!!!! На начальных курсах надо учить _думать_
А вы думаете студент, не умеющий думать, сможет достать из спеки нужную
информацию?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[2]: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, 8bit, Вы писали:
8>Утверждение: 8>Программист на ассемблере будет нужен ВСЕГДА.
Угу...
А официанты были нужны и до появления компьютеров
и будут нужны, когда компьютеры исчезнут
Программист на ассемблере в общем тоже не нужен.
Нужны инженеры, умеющие эффективно решать инженерные задачи.
Инженер умеющий решать только одну задачу
только одним средством — это даже в общем и не инженер.
Задач, где требуется только ассемблер, исчезающе мало...
Re[2]: Какие языки перспективны? Что преподавать студентам?
> Есть такой анекдот: > Заходит программист на ассемблере (A) в кафе. > К нему подходит программист на алгол (B). > Диалог: > A: Можно мне чашечку кофе. > B: Одну минуточку.
B: Эй, гарсон, два кофе!.. Ну, рассказывай, как дошёл до такой жизни?
Мораль: поддержка экзотических систем...
Posted via RSDN NNTP Server 2.0
Перекуём баги на фичи!
Re[3]: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, 8bit, Вы писали:
8>>Утверждение: 8>>Программист на ассемблере будет нужен ВСЕГДА.
B>Угу... B>А официанты были нужны и до появления компьютеров B>и будут нужны, когда компьютеры исчезнут
B>Программист на ассемблере в общем тоже не нужен. B>Нужны инженеры, умеющие эффективно решать инженерные задачи. B>Инженер умеющий решать только одну задачу B>только одним средством — это даже в общем и не инженер. B>Задач, где требуется только ассемблер, исчезающе мало...
я не говорил что мол давайте учить студентов только ассемблеру.
Смысл именно в том что бы научить программировать не на конкретном языке, а вообще.
А уж там пусть выбирают.
Хотя считаю что программист на ассемблере сможет решить задачу на другом языке эффективнее.
Так как ассемблер лишает программиста роскоши других языков, мозг у таких парней развит
очень прилично....
Re[3]: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, Кодт, Вы писали:
>> Есть такой анекдот: >> Заходит программист на ассемблере (A) в кафе. >> К нему подходит программист на алгол (B). >> Диалог: >> A: Можно мне чашечку кофе. >> B: Одну минуточку. К>B: Эй, гарсон, два кофе!.. Ну, рассказывай, как дошёл до такой жизни?
К>Мораль: поддержка экзотических систем...
Мораль: заработать можно всегда... было бы желание
Re: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, martie, Вы писали:
M>Сегодня мой научный руководитель (зав. каф. нашего института) M>попросил меня написать что с моей "программистской" точки зрения нужно преподавать M>студентам чтобы повысить общий уровень выпускников, сделать ихболее конкуртноспособными?
Конкурентоспособными с кем? Какую рыночную нишу вы собираетесь рассматривать? Игры? Операционные системы? Серверы баз данных? Искусственный интеллект? Или веб-магазин с бухгалтерией?
M>На данный момент имеем: математическую подготовку — 5+, программисткую же — 3- (здесь все еще паскаль и процедурное программирование)
А чем паскаль плох? Вполне хороший язык для обучения студентов.
Так, ну если с математикой у выпускников всё в порядке, то реляционное исчисление, теорию графов и булеву алгебру упоминать не буду. Скажу только по практике.
Необходимо понимание базовых вещей: алгоритм, процедура, процесс (синхронизация), контекст, замыкание, исключение. Минимум языков: Pascal, C, Smalltalk, C++, Lisp, SQL. Системное программирование и основы сетей (я имею ввиду ТМО, протоколы, надёжность передачи данных и т.п.). Минимум по операционным системам: Unix + X-Window (шоб знали дети, откуда у графических операционных систем ноги растут). Алгоритмы шифрования, защищённая передача данных.
Сортировки, хеширования и прочие структуры данных и управление ими есть альфа и омега, а потому их необходимость полагается очевидной.
Работа с устройствами долговременного хранения данных (вплоть до учёта особеностей геометрии).
Обязательно! Хотя бы один ассемблер (x86, MCxxx, Sparc — по вкусу и аппаратуре). Обязательно! Понимание того, что есть такое когерентность кэшей и зачем нужен барьер памяти.
Естественно — основы построениея трансляторов. Не все будут писать трансляторы, но сталкиваться с разбором текстов и регулярными выражениями придётся почти всем.
Из более общего, естественно, нужно владеть методами разработки и оценки сложности ПО, в том числе, методиками декомпозиции задачи: функциональной, процедурной, объектной.
M>Объектное читается всего 1 семестр и на этом все (
Собственно, ОО — это сугубое ответвление ИИ, так что и преподаваться должно в своей исторической нише — в рамках курса по ИИ. Ну, или, во всяком случае, начинаться именно там. После того, как будет ясно понятие фрейма/слота проще будет объяснить такие фишки, как объект-класс-метакласс-метод-сообщение-наследование и т.п. Дальше должны быть CLOS, Smalltalk и C++, потом ObjectPascal, Java и прочее.
Почти все языки разрабатывались на основе чего-то и для каких-то целей, и, на мой взгляд, глупо отрываться от истории. C++, например, создавался для пропаганды ОО в среде "сишников".
M>Так вот вопрос к вам многоуважаемый All: M>Какие языки, платформы преподавать студентам, что наиболее перспкективно с Вашей точки зрения?
Повторюсь: перспективы чего конкретно мы пытаемся прояснить? Если перспективы ИИ, то здесь будет одна группа языков и средств. Если интерфейс пользователя/эргономика — другие языки. Если же высокопроизводительные параллельные вычисления — третьи и т.п.
А если вы хотите опреться на распространённость тех или иных языков, так тогда VB вам в руки — и полный вперёд.
M>Сам я склоняюсь что желательн бы смещать акцент на сетевое и web программирование, M>платформы .NET или Java
Ширпотреб это, потому и непонятно, куда их воткнуть и как в вузовской программе пользоваться. Индустрия тут обойдётся Гашиш Кумарами. С другой стороны, люди, хорошо закомые с основами быстро вписываются в рабочий контекст на Java/.Net.
С вебом так вообще всё хитро — нужно сначала понимать, что где и почему лежит, и почему нельзя на сервере оперировать теми переменными, которые лежат в браузере. А для того попервоначалу должно понять, чем отличается программирование в распределённой среде от програмирования в общем адресном пространстве. А если ещё не забыть, что веб-сервер — это система массового обслуживания, а http-запрос браузера можно рассматривать как "обращение с терминала к центральной ЭВМ"...
M>кроме того необходимы базовые знания функционального программирования
Главное — не сбить народ с толку, поставив следствие впереди причины.
Короче: побольше цинизма и поменьше реверансов к коммерчески раскрученным платформам. Это не вы за ними, а они за вами должны бегать и упрашивать ввести факультатив по <нужное вписать>. Обратите сначала внимание на то, что раскрутилось без больших маркетинговых вливаний.
А чтобы студентам скучно не было — замутите какой-нибудь большой общий проект, скажем, новый Unix написать. Вот и будет занятие для всех слоёв общества на поколения вперёд. А заодно — практика вполне реального проекта.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[3]: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, Кодт, Вы писали:
>> Есть такой анекдот: >> Заходит программист на ассемблере (A) в кафе. >> К нему подходит программист на алгол (B). >> Диалог: >> A: Можно мне чашечку кофе. >> B: Одну минуточку. К>B: Эй, гарсон, два кофе!.. Ну, рассказывай, как дошёл до такой жизни?
К>Мораль: поддержка экзотических систем...
Не... всё не так было.
Менеджер-официанту: потом сайт долабаешь, у нас клиенты!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Какие языки перспективны? Что преподавать студентам?
Cyberax wrote:
>> _>Ещё важное для студентов (особенно начальных курсов) — научиться >> гуглить, т.е. искать инфу в спеках, интернет, форумах, етс. >> НИ В КОЕМ СЛУЧАЕ!!!!! На начальных курсах надо учить _думать_ > А вы думаете студент, не умеющий думать, сможет достать из спеки нужную > информацию?
Эмм... Вы оба частично правы. Именно надо уметь читать документацию, находить решения подобных задач, но про форумы я
немного загнул, похоже. Я имел в виду именно поиск информации. Часто студенты в форумах выпрашивают готовые решения,
которые используются copy/paste, что тоже не есть хорошо.
Просто если студент, решая задачу, в которой как _часть_ алгоритома требуется отсортированая последовательность, будет
писать свою реализацию сортировки, вместо того, чтобы заюзать std::sort — тоже не сликшом хорошо.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: В университете надо давать высшее образование
студенты не могут найти себе работу? Ха-ха-ха, да это ещё смешнее чем предложение учиться в университетах языкам и платформам вместо получения там высшего образования. Если так дальше дело пойдёт, то я со смеху помру. Помилуйте, ведь сегодня не первое апреля.
Это ж разве работа?! Вот сайт слабать и отчёт нарисовать — это дело! А то — ни одному ж нормальному человеку (TM) не понять, заумь сплошная!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Какие языки перспективны? Что преподавать студентам?
Здравствуйте, Mamut, Вы писали:
M>Эээ. Не надо В итоге в каждой группе весь проект будет делать только один человек, который хоть как-то знает программирование.
У нас в институте был такой проект по БД на FoxPro. Я в группе был самый главный, группа проект успешно сдала на 5. Я не написал ни одной строчки кода и до сих пор FoxPro практически не знаю. Так что всяко бывает.
>> _>Ещё важное для студентов (особенно начальных курсов) — научиться >> гуглить, т.е. искать инфу в спеках, интернет, форумах, етс. >> НИ В КОЕМ СЛУЧАЕ!!!!! На начальных курсах надо учить _думать_ C>А вы думаете студент, не умеющий думать, сможет достать из спеки нужную C>информацию?
Встречный вопрос — зачем тогда такой студент?
Поиск информации по Гуглю _ничем_ не отличается от поиска информации в библиотеке. Если студент не умеет пользоваться ни тем ни другим — гнать его.
Mamut wrote: > C>А вы думаете студент, не умеющий думать, сможет достать из спеки нужную > C>информацию? > Встречный вопрос — зачем тогда такой студент?
А что, лучше если студент этого уметь не будет?
> Поиск информации по Гуглю _ничем_ не отличается от поиска информации в > библиотеке. Если студент не умеет пользоваться ни тем ни другим — гнать его.
Не совсем. Из спеки (обязательно на английском ) надо еще понять что
там написано.