Для какого курса смотря. Если не первый, то ебаш патерны.
На то они и "новые"=D Хотя в принципе можно основные патерны давать, или теорию для чего они нужны.
doniv, херня, в худшем случае каждый год немного добавлять. Ничего тотально не меняется. Развитие происходит эволюционно, так что нормуль.
Паттерны принял к сведению. Предлагайте, чо ещё вам не хватало в универе в рамках темы "новых технологий программирования".
warnes: А что в патернах нового? Если взять основные и для всех ЯП более менее применениые, то их там десятка два будет и все
akinfold: мне что-то кажется что ничего именно нового нет. Erlang с концепцией легковысных нитей уже 20 лет существует. популярное ФП со
старого доброго Lisp'а тянется. И не только. Императивное программирования - Fortran. Сборка мусора и система сообщений между обьектами
и вообще многие элементы ООП пришли из Small Talk, которому уже 30 годков. Для первого курса вообще новые технологии преподавать сложно
Как можно рассказать о более менее новых достижениях в программировании, о каких-то концепциях и зачем они придуманы, если они и старых то
не знают. Нужно начинать с фундаментальных процдурно-структурного, ООП, ФП и ЛП, а потому на них уже навешивать.
Причем тоже ООП может быть проявлено как оно есть в Java, как оно есть в List, как оно есть в JavaScript и как оно есть в SmallTalk
ну а есть еще немного свои подходы у Python'а, Scala. А вон для ФП и ленивых вычислений тоже своих прелестей хвататет. Например, монады.
grandse, вот я и спрашиваю, чего вам не хватало в стандартном курсе в универе?
Я, в рамках этого курса, могу, в принципе, чо угодно читать...
Да, надо сказать, что первый курс - это первый курс магистратуры...
Не хотел говорить, чтоб не портить сюрприз
warnes'у на первой ленте...
akinfold: А что у вас в универе читается вообще? Расскажи
тогда смогу сказать, чего бы мне не хватало в этой программе, и что бы я на твоем месте студентам давал
Т.е. ты хочешь сказать что я увижу тебя помолодевшего с этой прической в роли преподавателя?=) Ыыыы.... Прикольно=)
grandse я как тока закончивший 4х летний курс бакалавриата скажу что нихрена хорошего. Все чтобы не продолжил скорей всего не читалось.
Ну тогда я бы начал с краткого экскурса в разнообразие ООП:
- возвращение к истокам от инкусуляции, наследования и полиморфизма к концепции программа есть обьекты обмненивающиеся сообщениями
ООП было.... Вот тока все что мы разбирали это что есть объект и наследования. Инкапсуляция, абстракция и полиморфизм
для 90% наших это набор букв и не более...
Хотя поверь, даже если бы мы разобрали, то 90% в лучшем случае превратилось бы в 75%....
Кстати,
Akinfold, я бы на твоем месте прочитал бы принципы SOLID, имхо это не изменится никогда, тока обертка может поменяться.
Хотя как я и сказал, что если даже основные понятия типа абстракция это магические буквы, то тот же "принцип единственной обязанности"
звучать как просто матерное непонятное выражение...
warnes: Я не знаю, что Вам за ООП читали, но то, что читали нам это фигня.
Ага, небось "Представьте что объект это...." и понеслось объяснения для детей дошкольного возраста.
Нужно окунуться в мир реально ООП языков, а не Pascal и C++. Взять например тот же Ruby или Python и показать, какая польза от обьектов
Что классы тоже есть обьекты, с которыми можно работать. Начиная от проверки типа обьекта, его предков, полей и т.д.
Интроспекция и рефлексия. Перейти к изменению структуры класса во время выполнения, т.е. к метапрограммированию.
Я ща буду вести ООП на Delphi... ООП на Delphi.... Я даже не буду придумывать сравнения как это.... Точнее ЧТО ВООБЩЕ ЭТО...
Потом можно заняться основными патернами: компонентная модель, МВЦ, слушатель, наблюдатель, коллекции, фабрики, синглтоны
После этого в продолжение обьяснения всей гибкости ООП можно перейти к прототипному ООП на примере javascript. Заодно и каллбеки копнуть
Потом можно шагнуть в ФП на примере ленивых вычислений. Как пример применения ленивых вычеслений, интроспекции и метапрограммирования можно
Ага, мечты.... И тогда реально начнут выпускать программистов.... Но видать это никому не надо. Ведь для этого придется урезать
экологию, правоведение, социологию и множество просто необходимых предметов...дофига сарказм
сварганить какую-нибудь ORM, или там еще какой-нибудь DSL, например для шаблонизатора или еще чего
Может где-нибудь в Оксфорде так и учат...
Ну потом можно заглянуть на огенек к логическому программированию и наиболее популярному его проявлению сейчас - сопоставление по шаблону
берем пролог с предикатами и сопоставлением, и показываем как те некоторые принципы проявились в Erlang и Haskell, как живых языках
Можно показать как синтаксис языка может быть использован для построения DSL - взять несколько глав из Practical Common Lisp
Ну и окунуться в реальный мир: сервис-ориентированные системы, кеширование, многопоточные и асинхронные системы, системы с невесомыми нитями
Ну здесь правда семестра на 3-4 программы