Здравствуйте, LaptevVV, Вы писали:
LVV>Ого! Круто! Сильно полезно для повышения квалификации программеров... LVV>Только вряд ли найдутся реальные задачи по написанию осей, а вот по использованию АПИ — половина рсдна этим занимается... LVV> LVV>Поэтому я и решил когда-то — лучше апи давать, чем написание оси...
Мне кажется, что маловероятность написания ОС в профессиональной деятельности не должна отменять курс по принципам построения ОС. Т.к. рассматривается круг проблем и их решений, которые уж точно пригодятся в жизни
Хотя все зависит от статуса курса — если ВУЗ, лучше дать основы построения, если проф.курсы — наверняка API.
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании?
Вопрос очень сложный.
1. Я бы начал с того, что студенты после школы обычно не умеют думать. Надо развивать аналитическое, абстрактное мышление, умение решать нестандартные задачи. В этом нам помогут математика, физика, философия и т.п. К сожалению, подходят к этим предметам часто очень формально.
2. Большинство технологий изученных а университете обычно умирают к концу процесса обучения. Следовательно нужно искать относительно стабильные вещи. Основы, так сказать. Тут правда возникают проблемы с литературой и с преподавательскими кадрами...
3. Итак, уже как-то умеем думать, якобы знаем основы. Теперь нужно учиться учиться. Иначе нашим выпускникам придется идти на курсы повышения квалификации сразу после окончания института.Очень полезны крупные, сквозные лабораторные работы и курсовики на целый семестр. Без документации, с плохим ТЗ. Для практики. Чтобы учились учиться на сложных (для уровня студента) практических примерах в РАЗНЫХ областях.
4. Диплом. Неплохо писать его среди специалистов а не в турфирме или в магазине.
Языки и технологии, которые будут проходить студенты вторичны. Первичны фундаментальные основы и обучаемость.
Выпускники, которых готовили по вышеозначенным правилам могут не знать особенностей .NET или C#, зато они могут самостоятельно и в кратчайшие сроки подготовить себя к решению выданной им задачи в рамках заданной технологии.
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
LVV>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика... LVV>Вот как раз о 3 я и хотел поговорить более всего... LVV>С чего начинать, чем продолжать и куда двигать? LVV>Если ориентированться на Дотнет... То как бы это составить целостную картину всего... LVV>Учитывая, что студентов нужно учить конкретике, но не забывать показывать место изучаемого в общей картине... LVV>HTML, XML, VBScript, JScript, ASP... Веб-сервисы... LVV>Java, JSP и все с эттим связанное?... LVV>PHP — ? PERL?
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
А как же процессные веши и управление? Короче, Software Engineering. глянь http://sep.russee.com
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления: LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP... LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
Уважаемый LaptevVV, по моему мнению, я бы не стал завязываться на конкретные языки. Посмотрите, как проводят интервью Гугл или Майкрософт — им нужны алгоритмические знания. Дайте студенту выбор: пусть он решает, что ему по душе. Я, например, не люблю дотНет. Мои интересы лежат около с++/Питона и т.п. Почему я должен изучать Додиез???
Интернет-программирование — зачем нужна конкретика??? Может, студент у вас прирожденный веб-дизайнет, ему нужен Хтмл/ActionScript или ДжаваСкрипт, а вы ему прочтете курс по ASP.
Я противник учить студентов конкретным вещам. Посмотрите, как учат в буржундии. Каждый студент выбирает — то, что ему по душе.
Вот и вы сделайте так: прочтите курс по основным понятиям интернета и дайте задание сделать, что-нибудь на эту тему. Одни захотят сайт сделать, другие игрушку на Flash, третьи — интернет-чат.
Здесь главное не зацикливаться на императивных языках программирования, а рассмотреть ещё декларативные и функциональные. При этом желательно рассмотреть разные языки в каждой категории... там Python, perl, javascript (на самом деле удивительный язык) и т.д..
LVV>2. Базы данных
Зря вы так про теорию... По-хорошему, эту тему надо начинать с реляционной алгебры...
LVV>3. Интернет-программирование...
Посмотреть в сторону Web2, Semantic Web, RDF, OWL, XQuery.
LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы...
Про это ничего не могу сказать...
LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
Здесь тоже желательно не зацикливать на всяком конкретном API, а начинать с общих вещей и теории... Я бы посоветовал построить курс по книге Таненбаума. Если бы я сейчас учился в универе, то был бы рад, если бы вместо виндов и лункса преподование ОС шло на базе MINIX, где можно нормально покапаться во внутренностях (Linux для этих целей не подходит из-за монолитности ядра).
Что касается технической части программы обучения, то все зависит от специализации, по которой готовится выпускник. Все что здесь перечисляли сойдет с несущественными вариациями. Я могу от себя добавить по опыту работы с выпускниками несколько направлений, в которых у большинства пробелы:
1. Интернет-поиск. (проводить на 1 курсе) Как это ни странно, его возможности используются выпускниками вузов хорошо если на 10%. Не все догадываются при получении непонятного сообщения об ошибке, пробить его в инете, а тратят время на ковыряние в коде и самостоятельный поиск (как 10 лет назад). Синтаксис запросов к языковым машинам очень пригодился бы. Да и вообще, на 80% проблем решение можно найти в Инете и этому надо учить на практике, на показательных примерах, сразу же на первом курсе. Это не только в технических, но и в прикладных вопросах пригодится. Давать лабы на поиск нужной информации.
2. Управление качеством. (3 курс). Помимо теории — взять практические работы студентов за прошлые годы, показательно их разобрать, указать на баги, на неоптимальную производительность и т.п. Дать в рамках этого курса несколько задач повышенной сложности, которые кажутся простыми, но с подводными камнями — опять подробно разобрать, дать студентам понять, что не все так просто как кажется на первый взгляд. Дать задачи на постороение GUI, указать на некачественный и "кривой" GUI. После этого курса *обязательно* во всех последующих придерживаться принципов заложенных на этом курсе, чтобы материал закрепился, иначе навык не привьется и работа пойдет прахом. Тут уже общая командная работа преподавателей нужна — договориться, что на первых курсах сильно не придираться, а после курса по качеству — не принимать лабы, не удовлетворяющие доведенным до них требованиям по качеству.
3. Работа со сторонними компонентами и библиотеками. (4-й курс) За время обучения студенты привыкают работать только в рамках определенных IDE, языков и их возможностей. Надо обязательно вводить курс, на котором учить подключать сторонние компоненты (COM,web services, dll, open-source и т.п.) на конкретных примерах — UI библиотеки, платежные системы, Ebay API, GoogleMaps API и т.п. Дать практические работы по выбору сторонних компонент для решения конкретных проблем, нпр. лаба — выбрать библиотеку для реализации почтового клиента по протоколу SuperProtocol. О пользе подобного курса говорить излишне, научиться переиспользовать то, что уже создано другими разработчиками — самый быстрый путь в мир нашей профессии.
Здравствуйте, LaptevVV, Вы писали:
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
Это очень обширная тематика. Определись, что ты хочешь дать студентам.
Все, что связано с C# без предварительных курсов по .Net Framework и самому шарпу
ИМХО безсмысленно. Поэтому лучше чистый API.
Потом, Web-сервисы работают в паре с протоколом HTML и давать их в отрыве от него
тоже малопонятно.
Что остается? Программирование распределенных систем? Но оно тоже далено не всегда
связано с интернетом. Базы данных — также в основном не связаны с интернетом.
Опять-же ASP и PHP куда девать?
Я считаю, что название подразумевает очень широкий курс, который охватит смежные
тематики, что не есть хорошо и потребует времени на четыре семестра.
Поэтому стоит сузить сам предмет до разумных пределов и не кидаться рассказать все
сразу. Можно выбрать или ASP + PHP + Web-сервисы или рассматривать протоколы интернета.
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, LaptevVV, Вы писали:
LVV>1. Информатика, 1 семестр — готовим ГРАМОТНОГО пользователя
В 2000 году слушал лекцию профессора Любимского, в которой он затронул эту тему. Мысль была такова — программисткие факультеты не должны готовить пользователей. Авторитет этого человека на меня действует очень сильно
LVV>3. Языки программирования высокого уровня, 2 семестра — сейчас думаем, чему учить LVV>4. ООП — 2 семестра — тоже думаем, в связи с 3 LVV>5. Организацияч ЭВМ и систем, 1 семестр
Правильно. Чтобы знали, что происходит, когда запускается исполнимый модуль, что такое RISC, CISC и прочее
LVV>6. Операционные системы, 1 семестр LVV>7. Системное ПО, 1 семестр
А это что? Не совсем уверен, но подозреваю, что методы трансляции, у нас пишется компилятор/интерпретатор модельного языка
LVV>8. Технологии программирования, 1 семестр
Software engineering?
LVV>9. Информационные технологии, 2 семестра, но один семестр нужно читать то, что в стандарте записано, зато второй можно сделать каким угодно...
а что здесь читается?
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом...
Ну прям чисто провокатор!
LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
Интернет-программирование — это сугубо коммерческое, сиречь перевёрнутое вверх ногами название. Факультатив, не больше. Если человек умеет писать программы и разбирается в сетях, то в веб-программировании разберётся с полпинка. Вы ещё язык manpages отдельным направлением програмирования назовите!
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам...
А реляционная алгебра? ООБД — это пока ещё не разбери-бери что, так что, и заморачиваться ими стоит после курса ИИ.
LVV>SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
Да ты что?! А кроме ODBC других интерфейсов и нету??? dbLib, OSI — это что?
LVV>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика...
Теория здесь — ТМО + эргономика. Блин, что все с ума посходили с этой разметкой текстов — переростком? Вот, что реклама с людьми делает!
LVV>Вот как раз о 3 я и хотел поговорить более всего... LVV>С чего начинать, чем продолжать и куда двигать? LVV>Если ориентированться на Дотнет... То как бы это составить целостную картину всего... LVV>Учитывая, что студентов нужно учить конкретике, но не забывать показывать место изучаемого в общей картине...
Общая картина: браузер = терминал, сервер = сервер, HTTP-запрос = обращение с терминала к серверу, HTML-страница = ответ сервера.
LVV>HTML, XML, VBScript, JScript, ASP... Веб-сервисы...
Терминологию специально выбрал несколько архаичную:
HTML — разметка текстов, обрабатывается терминалом, генерирующим отображение.
XML — гипертрофированная разметка текстов.
JScript — язык, на котором пишутся программы для терминала. Текст программ передаётся с сервера терминалу.
ASP — сервер выполняет программу, которая описывает генерацию страницы. Программа написана на VBScript.
VBScript — язык, на котором пишутся ASP-программы.
Кроме того, ты ещё про CGI забыл. Common Gateway Interface, однако. Практически, то же самое, что и ASP, но медленнее работает по ряду специфических причин. Каких?
Веб-сервисы, так это вообще — принципиально спецификация для описания HTTP/XML-интерфейса.
LVV>Java, JSP и все с эттим связанное?...
Java — ну, здравствуйте, этот C++-недомерок, всё-таки, как-никак, платформа общего назначения.
JSP — см. ASP, но программа написана на несколько модифицированном Java.
LVV>PHP — ? PERL?
PHP, кажись, тоже метит в языки общего назначения.
PERL — главное, для чего он появился — обрабатывать отчёты. Practcial Extracting Report Language, однако.
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
А не важно, на что именно завязываться. Это всё птицы одного полёта.
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
Как факультатив с автозачётом. Тоже мне, теория нашлась. Факультатив будет пользоваться успехом у студентов ввиду его коммерческой востребованности, но в то же время, будет вполне цинично ими оцениваться, что только прибавит результативности в конечном итоге.
Теперь по делу:
— Структуры, блин, данных и базовые алгоритмы;
— Формальные грамматики, трансляция, оптимизация;
— Системное программирование, операционные системы;
— Параллельные вычисления;
— Долговременное хранение данных;
— Распределённые системы, протоколы обмена данными (сети, то бишь);
— Машинная графика;
— Искусственный интеллект, ООП, семантические сети, Lisp и т.п.;
"И вот теперь, дети, когда вы знаете, что почём, поиграем с вами в MFC, Swing, Web и прочее"
Архитектура — это тоже не совсем теоретическая дисциплина. Слишком уж много двусмысленностей в её терминологии и слишком уж она практична по сути. Парадигмы... Ну это даже не смешно. Есть просто способы записи программ на языках высокого уровня и не более того.
Про математику и "электронные" дисциплины — даже не вспоминаю отдельно. Без булевой алгебры всё равно никуда не денешься.
Прочее сугубо конкретное — в сад, то есть, в практику, на лабы.
Интернет-програмирование — отдельное направление... Ой, я не могу!
... << RSDN@Home 1.2.0 alpha rev. 643>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Ну, опять я пристаю к уважаемому ALL все с тем же вопросом...
Чему и как учиить в программировании?
Глобально мне видятся такие направления:
1. Языки и связанные с ними понятия...
2. Базы данных
3. Интернет-программирование...
4. Взгляд сверху — проектирование, архитектура, парадигмы...
5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика...
Вот как раз о 3 я и хотел поговорить более всего...
С чего начинать, чем продолжать и куда двигать?
Если ориентированться на Дотнет... То как бы это составить целостную картину всего...
Учитывая, что студентов нужно учить конкретике, но не забывать показывать место изучаемого в общей картине...
HTML, XML, VBScript, JScript, ASP... Веб-сервисы...
Java, JSP и все с эттим связанное?...
PHP — ? PERL?
Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
Вообще, каким образом можно постороить этот курс — Интернет программирование?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
LVV>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика... LVV>Вот как раз о 3 я и хотел поговорить более всего... LVV>С чего начинать, чем продолжать и куда двигать? LVV>Если ориентированться на Дотнет... То как бы это составить целостную картину всего... LVV>Учитывая, что студентов нужно учить конкретике, но не забывать показывать место изучаемого в общей картине... LVV>HTML, XML, VBScript, JScript, ASP... Веб-сервисы... LVV>Java, JSP и все с эттим связанное?... LVV>PHP — ? PERL?
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
И кстати... В Осях — естественно учим API...
Но еще, например, для винды — COM — DCOM — изучать ли?
Или сразу ориетироваться в сторону дотнетовских решений?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Опыта преподавания у меня нет, поэтому буду говорить, как человек учащийся, свои пожелания.
LVV>1. Языки и связанные с ними понятия...
Тут я хотел бы, чтобы в курсе были рассмотрены императивное программирование(С или С++), пара функциональных языков(например OCaml, Lisp, Erlang,...) с демонстрацией простых приемов программирования на них и преимуществ каждого вида программирования на примере конкретных классов задач.
LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы...
Тут хотелось бы рассмотрения самых употребительных паттернов из GoF + пара заданий. Задания такие, что каждое из них может быть решено несколькими приемлимыми способами. От студентов требуется не только решить, но и рассказать о преимуществах своего решения.
LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
Тут Windows + Linux.
LVV>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика... LVV>Вот как раз о 3 я и хотел поговорить более всего... LVV>С чего начинать, чем продолжать и куда двигать? LVV>Если ориентированться на Дотнет... То как бы это составить целостную картину всего... LVV>Учитывая, что студентов нужно учить конкретике, но не забывать показывать место изучаемого в общей картине... LVV>HTML, XML, VBScript, JScript, ASP... Веб-сервисы... LVV>Java, JSP и все с эттим связанное?... LVV>PHP — ? PERL?
Забить на это. Когда пойдут работать, сами все изучат. В крайнем случае сделать разделение на специализации на 5-ом курсе.
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
нууу, тут имхо смешались в кучу кони-люди.
sql-ю учи. учи так, чтоб во-всяком случае знали, что такое план запроса.
а ODBC.... сами выучат.
LVV>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика... LVV>Вот как раз о 3 я и хотел поговорить более всего... LVV>С чего начинать, чем продолжать и куда двигать?
начать, как и все начинают, нужно с модели OSI
а дальше.... на HTML, XML (XSL/XPATH/etc) — забивай сразу. до глубинных тонкостей в объяснениях вряд ли успеешь дойти, только время зря потратишь. а самые азы человек, которому это нужно, выучит сам — хотя бы на http://www.w3schools.com/. а которому не нужно — так ему вообще всё равно что рассказывать.
после OSI начинай рассказывать про IP. udp, tcp.
обязательно заставь написАть пару лаб с со старыми добрыми bsd sockets. на С. под *nix. покажи inetd. покажи как хорошо и красиво можно использовать stdio с сокетами. покажи O_NONBLOCK, select/poll. и не просто покажи, заставь сделать. Нельзя дать много заданий — раздели людей на группы и дай каждой группе своё.
у меня вот товарищ в Австралии учится, так у него лабы (по неделям):
1. C/*nix — клиент и сервер(fork), передача файла, tcp протокол.
2. C/*nix — клиент и сервер(1-пользовательский), передача файла, udp, ARQ.
3. java, оч.простой http-прокси (только метод GET)
4. java, CORBA, распределёная система, > 2х частей.
(что дальше будет не знаю, сейчас 4-ая неделя)
к работам 1-3 прилагается отчет — сравнение того что есть в RFC и того что реализовано, плюсы-минусы.
мне кажется — это интересно, полезно.... намного полезней чем рассказ про HTML. и в жизни пригодится.
закончишь с самописными серверами — приступай к уже существующим.
расскажи про апач и APR, заставь написАть модуль — там необычная, всяко заслуживающая внимания архитектура.
заодно и про nsapi расскажи, ещё один plugin... после апача это уже будет просто.
эти знания (если они получатся) и опыт отладки — это опыт надолго.
после этого можно хоть j2ee пробовать, хоть php.
всё будет выглядеть для слушателя _совершенно_иначе_.
зы я сам закончил вуз несколько лет назад. хорошо помню свой курс сетевого программирования. НЕ_О_ЧЁМ. HTML + PERL_или_PHP в крайне малых дозах. так — нельзя.
сейчас наблюдаю современных студентов в виде младших товарищей на работе. неглупые ребята — но не знают как проверить телнетом, поднят ли tcp-сервер на другой машине. и множества прочих элементарных вещей. универ — не научил.
измени ситуацию
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, yacc, Вы писали: Y>...
Извини, но как преподаватель, могу сказать, что ты как-раз намешал в кучу _все_, что можно.
И сетевые технологии и распределенные системы и серверное программирование.
Нельзя давать материал студентам так, как ты написал. Т.к. главное для студента не набраться
понемногу от всего, а упорядочить свои знания.
Поэтому надо разделять мух от котлет.
Во-первых — сетевая архитектура это одно, а программирование под сети — это другое.
Во-вторых — программирование PHP — это вообще недоразумение и учить ему стоит только
в качестве факультатива. Вот чему учить, так это ASP.
В-третьих — HTML + XSL/XPATH — учить нормальному HTML дизайну это дело довольно небыстрое,
другое дело, что для программистов в основном ненужное. А перспектива XSL/XPATH — для меня
довольно туманна.
Ну и последнее — выучить можно все самому, вопрос только в том, сколько на это потребуется
усилий без наставника (преподавателя).
PS
Сам веду курсы про сетевые протоколы и HTML + ASP. Сейчас планирую разработать что-то под .NET.
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании?
Собственно говоря, кого учим? Подготавливаем программистов-пратиков, востребованых на рынке? Или теоретиков, способных двигать IT индустрию, придумывать новые подходы, парадигмы, ..?
Re[2]: Чему сейчас учить в области программирования?
LVV>>1. Языки и связанные с ними понятия...
DB>Здесь главное не зацикливаться на императивных языках программирования, а рассмотреть ещё декларативные и функциональные. При этом желательно рассмотреть разные языки в каждой категории... там Python, perl, javascript (на самом деле удивительный язык) и т.д..
Здесь забыл добавить, что если в Университете нет курса "Тестирование программ", то для императивных и функциональных языков программирования можно сделать несколько лекций о тестировании: критерии тестированности, мутационное тестирование, тестирование методом потока данных, возможности автоматического построения тестов, доказательство корректности программ, пред-условия, пост-условия, инварианты циклов и т.д..
Re[3]: Чему сейчас учить в области программирования?
Здравствуйте, De-Bill, Вы писали:
LVV>>2. Базы данных
DB>Зря вы так про теорию... По-хорошему, эту тему надо начинать с реляционной алгебры...
А еще лучше — с понятия модели данных. И рассмотреть несколько примеров. Чтобы потом не думали,
что базы данных бывают только реляционными (ну и еще иногда ОО).
Ну, чтоб прояснить ситуацию, напишу дисциплины, которые связаны с программированием по моей специальности...
0. Введение в специальность, 1 семестр — думаем в связи с 3 и 4
1. Информатика, 1 семестр — готовим ГРАМОТНОГО пользователя
2. Дополнительные главы информатики, 1 семестр — можем давать все, что угодно... Думаем в связи с 3 и 4...
3. Языки программирования высокого уровня, 2 семестра — сейчас думаем, чему учить
4. ООП — 2 семестра — тоже думаем, в связи с 3
5. Организацияч ЭВМ и систем, 1 семестр
6. Операционные системы, 1 семестр
7. Системное ПО, 1 семестр
8. Технологии программирования, 1 семестр
9. Информационные технологии, 2 семестра, но один семестр нужно читать то, что в стандарте записано, зато второй можно сделать каким угодно...
10. Базы данных, 1 семестр — ну, от стандарта сильно отрываться нельзя, но понятно, что здесь давать. Дейт, или Кренке — самое то...
11. Системы искусственного интеллекта
12. Системы реального времени
13. Сети ЭВМ и телекоммуникации, 2 семестра
Вот что написано в стандарте
ОПД.Ф.11 Сети ЭВМ и телекоммуникации
Классификация информационно-вычислительных сетей. Способы коммутации. Сети одноранговые и “клиент/сервер”. Уровни и протоколы. Эталонная модель взаимосвязи открытых систем. Аналоговые каналы передачи данных. Способы модуляции. Модемы. Цифровые каналы передачи данных. Разделение каналов по времени и частоте. Характеристики проводных линий связи. Спутниковые каналы. Сотовые системы связи. Кодирование информации. Количество информации и энтропия. Самосинхронизирующиеся коды. Способы контроля правильности передачи информации. Алгоритмы сжатия данных. Локальные вычислительные сети. Методы доступа. Множественный доступ с контролем несущей и обнаружением конфликтов. Разновидности сетей Ethernet. Маркерные методы доступа. Сети Token Ring и FDDI. Высокоскоростные локальные сети. Организация корпоративных сетей. Функции сетевого и транспортного уровней. Алгоритмы маршрутизации. Протоколы TCP/IP. Протоколы управления. Адресация в Internet. Особенности технологий Frame Relay, ATM, SDH. Сетевые операционные системы. Технологии распределенных вычислений. Структура и информационные услуги территориальных сетей. Протоколы файлового обмена, электронной почты, дистанционного управления. Виды конференц-связи. Web-технологии. Языки и средства создания Web-приложений.
Но можем договорится с дружественной кафедрой — они нам все программирование прочитают... Вопрос, какое программирование
14. Методы и средства защиты компьютерной информациии
ОПД.Ф.12 Методы и средства защиты компьютерной информации
Основные понятия и определения. Источники, риски и формы атак на информацию. Политика безопасности. Стандарты безопасности. Криптографические модели. Алгоритмы шифрования. Модели безопасности основных ОС. Администрирование сетей. Алгоритмы аутентификации пользователей. Многоуровневая защита корпоративных сетей. Защита информации в сетях. Требования к системам защиты информации.
15. Сетевые технологии, 1 семестр
СД.05 Сетевые технологии
Классификация сетей; интеграция информационного сервиса пользователей; концепция архитектуры открытых систем как основа построения цифровых сетей интегрального обслуживания (ISDN); основные этапы построения сетей; иерархия моделей процессов в сетях; АТМ-технология; анализ и синтез топологической структуры магистральной и локальной сети; административное и оперативное управление сетью; управление режимами коммутации; адаптивная коммутация; управление обменом информации в сетях; адаптивная маршрутизация; архитектура узлов управления и коммутации ISDN; пакеты в ISDN; оценка эффективности сетей; перспективы развития ISDN; широкополосные B-ISDN.
Сейчас на вскидку не вспомню — мож еще чего есть — 1, 2 курса...
Вот и думай тут, что сейчас давать... Тем более — все так стремительно развивается...
ALL — в конспективном плане изложимте, что сейчас ВОСТРЕБОВАНО реально...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, LaptevVV, Вы писали:
LVV>>Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам.
нужно учить проектировать БД, а конкретные вещи — это одна практическая обьясняющая как из явы соединиться с базой и выполнить сиквел.
LVV>И кстати... В Осях — естественно учим API... LVV>Но еще, например, для винды — COM — DCOM — изучать ли?
в курсе ОС учат как они устроены, а приладные интерфесы учить не стоит, сами разберуться
Re[3]: Чему сейчас учить в области программирования?
Здравствуйте, cencio, Вы писали:
C>Здравствуйте, LaptevVV, Вы писали:
LVV>>>Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам. C>нужно учить проектировать БД, а конкретные вещи — это одна практическая обьясняющая как из явы соединиться с базой и выполнить сиквел.
Ну, как проектировать — эт не теория... Эт как раз практика... Этому — учим...
LVV>>И кстати... В Осях — естественно учим API... LVV>>Но еще, например, для винды — COM — DCOM — изучать ли? C>в курсе ОС учат как они устроены, а приладные интерфесы учить не стоит, сами разберуться
Ну, в лекциях — как устроены... А на лабах — программируем же... На АПИ...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Чему сейчас учить в области программирования?
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, cencio, Вы писали:
C>>Здравствуйте, LaptevVV, Вы писали:
LVV>>>И кстати... В Осях — естественно учим API... LVV>>>Но еще, например, для винды — COM — DCOM — изучать ли? C>>в курсе ОС учат как они устроены, а приладные интерфесы учить не стоит, сами разберуться LVV>Ну, в лекциях — как устроены... А на лабах — программируем же... На АПИ...
у нас процесс по другому поставлен — проектрование ОС, т.е. на лекциях разбираем принципы построения, на лаборах — программируем модельную ОС ,желающие могут писать ОС, работающую ан реальном процессоре
memega
Re[5]: Чему сейчас учить в области программирования?
Здравствуйте, Мемега, Вы писали:
LVV>>>>И кстати... В Осях — естественно учим API... LVV>>>>Но еще, например, для винды — COM — DCOM — изучать ли? C>>>в курсе ОС учат как они устроены, а приладные интерфесы учить не стоит, сами разберуться LVV>>Ну, в лекциях — как устроены... А на лабах — программируем же... На АПИ...
М>у нас процесс по другому поставлен — проектрование ОС, т.е. на лекциях разбираем принципы построения, на лаборах — программируем модельную ОС ,желающие могут писать ОС, работающую ан реальном процессоре
Ого! Круто! Сильно полезно для повышения квалификации программеров...
Только вряд ли найдутся реальные задачи по написанию осей, а вот по использованию АПИ — половина рсдна этим занимается...
Поэтому я и решил когда-то — лучше апи давать, чем написание оси...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
Вопрос — а к какой части отнести архитектуру компьютеров?
memega
Re[2]: Чему сейчас учить в области программирования?
навскидку я в институте изучал из прикладных дисциплин относящихся к программированию:
-алгоритмические языки (Фортран, Си). сейчас бы наверное изучали C# или Java
-системное программирование, системы реального времени
-архитектура ЭВМ
-теория СУБД (всякие НФ, реляционные и сетевые модели данных, ЕR-проектирование)
-структуры данных и алгоритмы(курс был прямо по книге Кнута)
-технология программирования
чего у нас не было (и это ОЧЕНЬ большое упущение)
курса по методологии разработки программного обеспечения,
и управлению процессом разработки.
мне кажется такой курс сейчас обязательно должен быть для будущих программистов.
ведь рано или поздно разработчик может/захочет стать ведущим разработчиком, менеджером проекта,
руководителем группы тестирования. и этому нигде не учат.
что там должно быть:
-современные методологии разработки ПО (RUP, XP, и тд). общий обзор.
-фазы развития программного проекта
-цикл жизни ПО
-роли людей в разработке, как строить команды и командную работу.
-тестирование, виды тестирования, роли тестирования на каждой фазе проекта
-понятия об менеджменте (управлении проектами). планирование работ,
методы временных оценок фаз развития проекта.
Re[4]: Чему сейчас учить в области программирования?
C>>нужно учить проектировать БД, а конкретные вещи — это одна практическая обьясняющая как из явы соединиться с базой и выполнить сиквел. LVV>Ну, как проектировать — эт не теория... Эт как раз практика... Этому — учим...
и получаються у вас ремеслиники от IT — индусы славянской внешности
Re[5]: Чему сейчас учить в области программирования?
Здравствуйте, cencio, Вы писали:
C>Здравствуйте, LaptevVV, Вы писали:
C>>>нужно учить проектировать БД, а конкретные вещи — это одна практическая обьясняющая как из явы соединиться с базой и выполнить сиквел. LVV>>Ну, как проектировать — эт не теория... Эт как раз практика... Этому — учим...
C>и получаються у вас ремеслиники от IT — индусы славянской внешности
Ну почему... Моих пацанов в москве с удовольствием берут... И в Питере... Астраханские ребята — по всей россии работают... И никто еще не жаловался...
А в Астрахани так просят хотя б троечника направить...
Ибо наш троечник знает и умеет много больше, чем отличники других учебных заведений...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, Awaken, Вы писали:
A>чего у нас не было (и это ОЧЕНЬ большое упущение) A>курса по методологии разработки программного обеспечения, A>и управлению процессом разработки. A>мне кажется такой курс сейчас обязательно должен быть для будущих программистов. A>ведь рано или поздно разработчик может/захочет стать ведущим разработчиком, менеджером проекта, A>руководителем группы тестирования. и этому нигде не учат.
У нас подобный курс был, назывался "Технология проектирования программ". Но толку от этого не много.
Когда разработчик сможет стать руководителем проекта, к тому времени он будет уже обладать
необходимыми знаниями. А так чтобы из студентов сразу в PM это не нормально.
A>что там должно быть: A>-современные методологии разработки ПО (RUP, XP, и тд). общий обзор. A>-фазы развития программного проекта A>-цикл жизни ПО A>-роли людей в разработке, как строить команды и командную работу. A>-тестирование, виды тестирования, роли тестирования на каждой фазе проекта
Ну дадут тебе общий обзор по этим темам и что? Так же можно книжку почитать.
А практику как проводить? Набрать школьников в подчиненные?
Тут к сожалению только реальная практика на производстве поможет.
A>-понятия об менеджменте (управлении проектами). планирование работ, A>методы временных оценок фаз развития проекта.
А вот кстати эти темы обычно раскрывают в смежных экномических дисциплинах.
Которые собственно так и зовутся "Управление проектами", "Инновационный менеджмент" и т.д.
Re[3]: Чему сейчас учить в области программирования?
N_C>Во-первых — сетевая архитектура это одно, а программирование под сети — это другое.
ИМХО, способ закрепить и более досконально разобраться в сетевой архитектуре. Не стоит, конечно, очень сложным программированием заниматься, в частности поэтому BSD сокеты хороши.
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, LaptevVV, Вы писали:
LVV>ALL — в конспективном плане изложимте, что сейчас ВОСТРЕБОВАНО реально...
Есть риск, что к получению диплома, это уже не будет востребовано реально. То есть, реальные практические для рынка навыки давать надо, но не стоит зацикливаться на этом. Как пример: лет 10 назад на рынке были (и частично остались) востребованы FoxPro/BDE/Clipper (совсем давно)/Delphi(1-2-3), MFC, Win32API и уже не упомню всего. Сейчас в моде .NET и все с ним связанное, но не факт, что через несколько его не забудут ради Singularity, допустим.
Мне думается, что самое лучшее, когда институт делает реальные проекты, к которым под руководством преподавателей для практики привлекаются студенты. А обучение, всё-таки, более нацелено именно на теорию.
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
В этот список можно добавить мобильное программирование и т.п.
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
Совершенно конкретные вещи через пару лет могут устареть.
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
Веб-сервисы и XML не только в дотнете Их и на Java используют, и на PHP, и т.д.
Но еще раз: не надо ни на чем полностью завязываться. Человек должен быть в состоянии освоить ту технологию, которая ему конкретно будет необходима. А для этого нужен пункт 4) в том числе.
Нет, конечно, по крайней мере, один какой-то конкретный язык/технологию (например, С++, Java, .NET) нужно знать в совершенстве. Но не обязательно знать на память все классы/библиотеки
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
1) HTML, JavaScript, CSS, XML/XSLT (языки разметки, клиентские скрипты и т.п.)
2) Apache, PHP, MySQL (на стороне сервера, интерпритируемые языки, дать понимание веб-сервера, взаимодействия с БД и т.п.)
3) J2EE/.NET (все не охватить, выбирайте сами; основы языков Java/C#, представление о платформе, а дальше фреймворки типа JSF/Spring/Hibernate или ASP.NET)
Здравствуйте, LaptevVV, Вы писали:
LVV>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>Чему и как учиить в программировании? LVV>Глобально мне видятся такие направления:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
LVV>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
Вообще довольно странно звучит фраза "теории практически нет"... особенно с учетом того, что библия для разработчиков подобного профиля занимает 400 страниц, а SQL в ней — всего лишь небольшой (относительно) раздел (это я конечно же про Дейта ). Проектирование БД, разумеется, одной нормализацией не заканчивается. Короче, тут все дело в количестве доступных часов. А уж наполнения... реляционные структуры, не реляционные (на практике часто приходится сталкиваться с мета-информацией), нормализация и денормализация, синхронизация (параллельный доступ), всевозможные блокировки, курсоры, собственно запросы (параметризация, прекомпляция), транзакции и процедуры и много-много другого. В идеале, конечно, еще основы организации СУБД на физическом уровне (для понимания), но это уже "углубленный курс".
С уважением. Алик.
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, RI, Вы писали:
RI>В этот список можно добавить мобильное программирование и т.п.
LVV>>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам... RI>Совершенно конкретные вещи через пару лет могут устареть.
Ну, SQL-то не устареет... и Одибиси — тоже... Реляция и ООБД — вряд ли... LVV>>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP... RI>Веб-сервисы и XML не только в дотнете Их и на Java используют, и на PHP, и т.д.
Ну, эт понятно... Но, наш универ купил все лицензионное... RI>Но еще раз: не надо ни на чем полностью завязываться. Человек должен быть в состоянии освоить ту технологию, которая ему конкретно будет необходима. А для этого нужен пункт 4) в том числе.
Эт тоже понятно... Тока не все могут... RI>Нет, конечно, по крайней мере, один какой-то конкретный язык/технологию (например, С++, Java, .NET) нужно знать в совершенстве. Но не обязательно знать на память все классы/библиотеки
Эт тоже понятно... LVV>>Вообще, каким образом можно постороить этот курс — Интернет программирование? RI>1) HTML, JavaScript, CSS, XML/XSLT (языки разметки, клиентские скрипты и т.п.) RI>2) Apache, PHP, MySQL (на стороне сервера, интерпритируемые языки, дать понимание веб-сервера, взаимодействия с БД и т.п.) RI>3) J2EE/.NET (все не охватить, выбирайте сами; основы языков Java/C#, представление о платформе, а дальше фреймворки типа JSF/Spring/Hibernate или ASP.NET)
Спасибо!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, Alik, Вы писали:
A>Здравствуйте, LaptevVV, Вы писали:
LVV>>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>>Чему и как учиить в программировании? LVV>>Глобально мне видятся такие направления:
LVV>>1. Языки и связанные с ними понятия... LVV>>2. Базы данных LVV>>3. Интернет-программирование... LVV>>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
LVV>>Если по поводу 1 — я все знаю, то по поводу 2 — в недоумении... Теории практически нет... Единственное, что нужно там — рассказать об ООП-БД и реляционных... Ну, еще о нормализации... Фактически нужно учить совершенно КОНКРЕТНЫМ вещам... SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам...
A>Вообще довольно странно звучит фраза "теории практически нет"... особенно с учетом того, что библия для разработчиков подобного профиля занимает 400 страниц, а SQL в ней — всего лишь небольшой (относительно) раздел (это я конечно же про Дейта ). Проектирование БД, разумеется, одной нормализацией не заканчивается. Короче, тут все дело в количестве доступных часов. А уж наполнения... реляционные структуры, не реляционные (на практике часто приходится сталкиваться с мета-информацией), нормализация и денормализация, синхронизация (параллельный доступ), всевозможные блокировки, курсоры, собственно запросы (параметризация, прекомпляция), транзакции и процедуры и много-много другого. В идеале, конечно, еще основы организации СУБД на физическом уровне (для понимания), но это уже "углубленный курс".
Дык я это за практику и считаю...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, Геннадий Васильев, Вы писали:
LVV>>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... ГВ>Ну прям чисто провокатор!
Дык — Змей жиж по гороскопу... LVV>>Чему и как учиить в программировании?
ГВ>Интернет-программирование — это сугубо коммерческое, сиречь перевёрнутое вверх ногами название. Факультатив, не больше. Если человек умеет писать программы и разбирается в сетях, то в веб-программировании разберётся с полпинка. Вы ещё язык manpages отдельным направлением програмирования назовите! Ну, отношение понятно... ГВ>А реляционная алгебра? ООБД — это пока ещё не разбери-бери что, так что, и заморачиваться ими стоит после курса ИИ.
Ну, Илья Труб книжку по Каше издал уже... LVV>>SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам... ГВ>Да ты что?! А кроме ODBC других интерфейсов и нету??? dbLib, OSI — это что?
Ага! Ратуете за конкретику... LVV>>По поводу 3 — я вообще в шоке... Настолько здесь много всего... Причем, опять же теории никакой, а все сплошь практика... ГВ>Теория здесь — ТМО + эргономика. Блин, что все с ума посходили с этой разметкой текстов — переростком? Вот, что реклама с людьми делает! ГВ>Общая картина: браузер = терминал, сервер = сервер, HTTP-запрос = обращение с терминала к серверу, HTML-страница = ответ сервера.
LVV>>HTML, XML, VBScript, JScript, ASP... Веб-сервисы... ГВ>Терминологию специально выбрал несколько архаичную: ГВ>HTML — разметка текстов, обрабатывается терминалом, генерирующим отображение. ГВ>XML — гипертрофированная разметка текстов. ГВ>JScript — язык, на котором пишутся программы для терминала. Текст программ передаётся с сервера терминалу. ГВ>ASP — сервер выполняет программу, которая описывает генерацию страницы. Программа написана на VBScript. ГВ>VBScript — язык, на котором пишутся ASP-программы.
Ну, эт я и сам знаю... ГВ>Кроме того, ты ещё про CGI забыл. Common Gateway Interface, однако. Практически, то же самое, что и ASP, но медленнее работает по ряду специфических причин. Каких?
На каждый скрипт — отдельный процесс... Потому и не назвал, что думал — совсем уже не пользуется... ГВ>Веб-сервисы, так это вообще — принципиально спецификация для описания HTTP/XML-интерфейса. LVV>>Вообще, каким образом можно постороить этот курс — Интернет программирование? ГВ>Как факультатив с автозачётом. Тоже мне, теория нашлась. Факультатив будет пользоваться успехом у студентов ввиду его коммерческой востребованности, но в то же время, будет вполне цинично ими оцениваться, что только прибавит результативности в конечном итоге.
Ну, подумаю, между прочим... ГВ>Теперь по делу:
ГВ>- Структуры, блин, данных и базовые алгоритмы; ГВ>- Формальные грамматики, трансляция, оптимизация; ГВ>- Системное программирование, операционные системы; ГВ>- Параллельные вычисления; ГВ>- Долговременное хранение данных; ГВ>- Распределённые системы, протоколы обмена данными (сети, то бишь); ГВ>- Машинная графика; ГВ>- Искусственный интеллект, ООП, семантические сети, Lisp и т.п.;
Все это и так преподается... Стандарт и план все это включает... Еще б преподов набрать квалифицированных... ГВ>"И вот теперь, дети, когда вы знаете, что почём, поиграем с вами в MFC, Swing, Web и прочее"
ГВ>Архитектура — это тоже не совсем теоретическая дисциплина. Слишком уж много двусмысленностей в её терминологии и слишком уж она практична по сути. Парадигмы... Ну это даже не смешно. Есть просто способы записи программ на языках высокого уровня и не более того.
Технология программирования и Проектирование АСОИУ — курсы есть... ГВ>Про математику и "электронные" дисциплины — даже не вспоминаю отдельно. Без булевой алгебры всё равно никуда не денешься.
Дискретная математика... ГВ>Интернет-програмирование — отдельное направление... Ой, я не могу!
Лан, понятно...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Чему сейчас учить в области программирования?
Здравствуйте, LaptevVV, Вы писали:
ГВ>>Интернет-программирование — это сугубо коммерческое, сиречь перевёрнутое вверх ногами название. Факультатив, не больше. Если человек умеет писать программы и разбирается в сетях, то в веб-программировании разберётся с полпинка. Вы ещё язык manpages отдельным направлением програмирования назовите! LVV> Ну, отношение понятно...
Отношение — как к перегретому утюгу: ни погладить что-то, ни в руки взять, ни погреться. Но внимание к себе привлекает!
ГВ>>А реляционная алгебра? ООБД — это пока ещё не разбери-бери что, так что, и заморачиваться ими стоит после курса ИИ. LVV>Ну, Илья Труб книжку по Каше издал уже...
Да мало ли книжек? Тем более, что это книга по конкретной Cache... Дело в том, что не так уж и понятно, что делать с самим понятием "объект": куда девать наследование, как выражать агрегацию и т.п. На "бытовом" уровне всё ясно, разумеется, ну а как пытаешься объяснить более точно... кхм. Потому и теория буксует.
LVV>>>SQL... и как через ODBC связаться с базой на сервере... И тоому подобным вещам... ГВ>>Да ты что?! А кроме ODBC других интерфейсов и нету??? dbLib, OSI — это что? LVV>Ага! Ратуете за конкретику...
Атож! Но тольки в контексте практического применения теории.
[...] ГВ>>Кроме того, ты ещё про CGI забыл. Common Gateway Interface, однако. Практически, то же самое, что и ASP, но медленнее работает по ряду специфических причин. Каких? LVV>На каждый скрипт — отдельный процесс... Потому и не назвал, что думал — совсем уже не пользуется...
Сейчас уже редко где встречается, но в CGI есть важный момент: выводимая веб-страница, это ни что иное, как стандартный вывод вызванного процесса. Дальше подставляем вместо "стандартного вывода" какой-нибудь GeneratedPageContent и — то же самое. То есть, дальнейший переход от CGI к xSP выглядит вполне мотивированным — просто убраны издержки, связанные с вызовом процесса и перенаправлением вывода. Кстати, есть ещё и "С++ Server Pages".
LVV>>>Вообще, каким образом можно постороить этот курс — Интернет программирование? ГВ>>Как факультатив с автозачётом. Тоже мне, теория нашлась. Факультатив будет пользоваться успехом у студентов ввиду его коммерческой востребованности, но в то же время, будет вполне цинично ими оцениваться, что только прибавит результативности в конечном итоге. LVV>Ну, подумаю, между прочим...
Поскольку у такого курса не будет "харизмы" теоретической дисциплины, народ посвободнее будет себя чувствовать.
ГВ>>Теперь по делу: ГВ>>- Структуры, блин, данных и базовые алгоритмы;
[...] ГВ>>- Искусственный интеллект, ООП, семантические сети, Lisp и т.п.; LVV>Все это и так преподается... Стандарт и план все это включает... Еще б преподов набрать квалифицированных...
Ну дык, аспирантов надобно готовить, видимо...
ГВ>>Архитектура — это тоже не совсем теоретическая дисциплина. Слишком уж много двусмысленностей в её терминологии и слишком уж она практична по сути. Парадигмы... Ну это даже не смешно. Есть просто способы записи программ на языках высокого уровня и не более того. LVV>Технология программирования и Проектирование АСОИУ — курсы есть...
Мне сдаётся, что как раз там таким дисциплинам и место — на вспомогательных курсах (если я правильно понял употребление слова "курсы"). Может быть, где-то и есть надёжный теоретический базис, не знаю. Пока что наша "теория архитектуры" больше смахивает на набор эмпирик и best practices.
... << RSDN@Home 1.2.0 alpha rev. 643>>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, ptolemy, Вы писали:
P>Здравствуйте, LaptevVV, Вы писали:
LVV>>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом... LVV>>Чему и как учиить в программировании?
P>Вопрос очень сложный.
........
Скучно. Ни че из такого подхода не выйдет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Чему сейчас учить в области программирования?
От:
Аноним
Дата:
08.06.06 09:50
Оценка:
Здравствуйте, Glоbus, Вы писали:
G>Здравствуйте, LaptevVV, Вы писали:
LVV>>Ну, опять я пристаю к уважаемому ALL все с тем же вопросом...
G>Ну например можно посмотреть, чему учат "конкуренты" G>здесь
Сорри, был занят. Посмотрел, но это немного другой уровень. Плюс, это outside, а я говорил по образованию здесь, в СНГ. "Морковь" разводить не буду:
1) Это другая цена
2) Это специфика, через опыт инструткоров
3) Это relations — очень важное.
Я, разумеется, лицо заинтересованное, но отзывы из компаний + корпоративыне треннинги просто так не дают/заказывают. Есть резон?
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
По мне, так лучше вообще в другом порядке:
1. LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... Только не "взгляд сверху", а серьезное обучение с примерами на нескольких языках программировнаия.
2. LVV>1. Языки и связанные с ними понятия... Причем с объяснением особенностей нескольких типов языков.
3. LVV>2. Базы данных именно базы данных, принципы проектирования и т.д.
3. Ну, а потом уже конкретные темы, как-то LVV>3. Интернет-программирование...б LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
и т.д.
Здравствуйте, LaptevVV, Вы писали:
LVV>1. Языки и связанные с ними понятия... LVV>2. Базы данных LVV>3. Интернет-программирование... LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
LVV>Вообще, каким образом можно постороить этот курс — Интернет программирование?
Добрый день.
Я — студент. Я надеюсь мой ответ будет Вам полезен как обратная связь от нашего брата. Для начала несколько наводящих вопросов
Какими вы хотите видеть ваших студентов через 5 лет?
Если вы хотите вырастить просто программистов им нужны одни знания. Если вы хотите, чтоб их имена встречались в ростерах известных продуктов, то наверное совсем другие...
Итак:
LVV>1. Языки и связанные с ними понятия...
согласен с StatujaLeha — пара функциональных языков. Примеры где они эффективно используются сейчас.
Скриптовые языки. Как создать свой скриптовый язык. Ведь серьёзный продукт без промежуточного скриптового уровня сейчс редкость. LVV>2. Базы данных
Мало теории? Try пост-реляционные БД. Тут и теории хватает и пространства для исследования. Объектные замашки есть в Оракле. LVV>3. Интернет-программирование...
Интеллектуальный интерфейс пользователя. Подходы и алгоритмы к разработке веб — компонент ориентированных на пользователя, интелектуальные системы автоматического формирования контента (ТИПА google-ads и вообще любые методы угадывания потребностей пользователя и подстройки системы под них) LVV>4. Взгляд сверху — проектирование, архитектура, парадигмы...
Представьте себе что студенту придет в голову гениальная идея!!!! 80% при попытке реализации этой идеи она завалится по техническим причинам отсюда вывод — неплохо было бы изучить методы тестирования архитектуры(без написания по ней программы) и оценки качества архитектуры. Интересно а есть ли критерии оценивания качества архитектуры, кроме экспертной оценки?
Кроме того фреймы, паттерны, ХР и РУП. Особенно интересно было бы в рамках одного курса изучить ХР и РУП. Говорят между двумя крайностями находится истина... LVV>5. Да, еще ОСи... Поскольку в 3 — сетевое программирование...
А через 5 лет это будет актуально?
LVV>Или завязаться полностью на Додиез? Тем более, что там же и Веб-сервисы и ХМЛ и ASP...
До диез или кофе. По моему не важно. Я лично предпочитаю те языки под которые есть удобные платформы разработки. Чтоб не отвлекаться на мелочи.
Re[2]: Чему сейчас учить в области программирования?
Здравствуйте, __00100101, Вы писали:
__>Скриптовые языки. Как создать свой скриптовый язык. Ведь серьёзный продукт без промежуточного скриптового уровня сейчс редкость.
+1!
Курс по компиляторам и интерпретаторам и по семантике языков высокого уровня — обязателен для КАЖДОГО, кто хочет быть программистом!
__>Представьте себе что студенту придет в голову гениальная идея!!!! 80% при попытке реализации этой идеи она завалится по техническим причинам отсюда вывод — неплохо было бы изучить методы тестирования архитектуры(без написания по ней программы) и оценки качества архитектуры. Интересно а есть ли критерии оценивания качества архитектуры, кроме экспертной оценки?
Есть. Метрика адекватности семантики архитектуры семантике предметной области. Только никогда не рассказывайте об этом критерии фанатикам ООП — они вас за одно его упоминание зароют заживо.
Re[3]: Чему сейчас учить в области программирования?
Здравствуйте, Kolhoz, Вы писали:
K> Есть. Метрика адекватности семантики архитектуры семантике предметной области. Только никогда не рассказывайте об этом критерии фанатикам ООП — они вас за одно его упоминание зароют заживо.
Надо будет почитать.... А её реально применять в жизни... то есть насколько соизмеримо время изучения всех этих непонятных слов (Метрика, адекватность, семантика, архитектура, предметная, область) со временем разработки программ как попало . Шучу. Можешь дать ссылочку на материалы по этому чуду? И если знаешь реальные методики "тестирования" архтиектуры. Что то вроде мысленного моделирования работы продукта еще в состоянии зародыша.
Re[4]: Чему сейчас учить в области программирования?
Здравствуйте, __00100101, Вы писали:
__> Можешь дать ссылочку на материалы по этому чуду? И если знаешь реальные методики "тестирования" архтиектуры. Что то вроде мысленного моделирования работы продукта еще в состоянии зародыша.
Ну, для самого совсем-совсем начала стоит почитать здесь же, на RSDN, статьи про Language Oriented Programming. Собственно, эта метрика к нему и относится — показывает численно, насколько архитектура системы повторяет структуру предметной области и постановки задачи. Это не тестирование, собственно, а очень простая (но эффективная) численная оценка. Для более качественной оценки потребуется уже эксперт.
Выгода по скорости и качеству разработки с применением семантической декомпозиции (вместо объектной, каковая является лишь жалким частным случаем семантической) — весьма и весьма значительная, но, в то же время, требует от архитекта и разработчиков более высокой и редкой квалификации. Хотите быть редким и высокооплачиваемым специалистом — обязательно изучите эту тему!!!