[facepalm, СЗМ, геофак] "баловство"
Геофа-а-а-а-а-а-а-а-а-ак!
- программирование снизу вверх
- программирование сверху вниз
- объектно-ориентированное программирование и
- программирование в открытых исходных кодах.
Руководство геофака успешно решило вопрос перепрофилирования своих студентов в программеры.
Лобзиком.
который курс?
2й
1. методом "а просуммируем-ка мы три площади и сравним сумму с площадью треугольника"Чем не метод? Работает в общем-то.
2. площадь считается через что-то неведомое мне доселе (там есть синусы, квадратные корни и прочая)Это ложь, стандартно через полупериметры всегда считали.
3. Равенство, конечно же, проверяется точное и поэтому почти никакие точки треугольникам не принадлежат согласно проге.Это ложь, но бывало, что из жалости принимал задачу и при точном равенстве (точнее неравенстве до какого-то знака без вариантов точка на стороне треугольника.
Вот, а нормальную работающую прогу с одним классом "точка" и чуть более многословной функцией Main отвергают со словами "это баловство".Есть такое, так как для него, в рамках твоего обучения, чем больше классов, тем лучше. Показатель, так сказать, того, что ты начинаешь мыслить ООП и понимаешь такое понятие как class. Т.е. если ты создашь класс "Треугольник" в котором будут поля класса "Точка", то приведёшь его в восторг и услышишь одобрительное: "Тита-а-а-н!"
А зачем? Если известны декартовы координаты точек, то формулой Герона пользоваться медленно и противоестественно.
> Показатель, так сказать, того, что ты начинаешь мыслить ООП и понимаешь
> такое понятие как class. Т.е. если ты создашь класс "Треугольник" в котором
> будут поля класса "Точка", то приведёшь его в восторг и услышишь одобрительное: "Тита-а-а-н!"
Может, меня здесь заклюют, но имхо пока нет полиморфизма, никаким ООП тут не пахнет.
> Чем не метод? Работает в общем-то.
Метод, конечно, но он приучает к подходу "сделать, чтобы абы как — но работало". С учетом того, что более удачный метод барицентрических координат очень прост и дидактичен. Плюс для этого способа очень изящно решается вопрос точности в определении, попала ли точка на сторону. Правда, возникает отдельная проблема с вырожденным треугольником.
А зачем? Если известны декартовы координаты точек, то формулой Герона пользоваться медленно и противоестественно.
В общем ему не важно как ты будешь считать. Главное чтобы была применена конструкция класс. Эти задачи на освоение этой конструкции, как и то что квадратное уравнение надо было решить используя КЛАСС, хотя и ежу понятно что можно обойти и без него в маине в несколько строчек.
Может, меня здесь заклюют, но имхо пока нет полиморфизма, никаким ООП тут не пахнет.Без класса в общем-то тоже. Препод нестандартный и очень своеобразный. Всю жизнь писал на С++, пока не познакомился с С# и теперь он его ярый фанат и пропагандист. Эти задачи направлены, по его мнению, на то, чтобы студенты умели создавать и использовать классы. В принципе, можно ему прийти и принести вообще свою задачу, где ты всё это реализуешь. Подходишь и говоришь: "Ваши задачи мне не очень, я принёс свою". Дальше садишься рядом и он начинает гонять тебя по коду и на понимание. Если всё успешно, то вообще можно избавиться от практикума.
Т.е. если ты создашь класс "Треугольник" в котором будут поля класса "Точка", то приведёшь его в восторг и услышишь одобрительное: "Тита-а-а-н!"Надо так:
class treugolnik: public virtual to4ka, public virtual to4ka, public virtual to4ka {};
Попросили тут помочь с праком немного. Любуйтесь:
Надо так:
class treugolnik: public virtual to4ka, public virtual to4ka, public virtual to4ka {};
Судя по первому посту, этот вариант не канает, так как чел, для которого делается (помогается прак просто не объяснит что к чему и сразу уйдёт на второй круг. А объяснить попросит, и первым вопросом будет: "Что означает virtual?" Так что лучше не выделяться, если не шаришь, будь как все и тогда пролезешь. А вообще прецедентов вроде не было, чтобы из-за него кто-то уходил.
Думаю, первым вопросом будет: "почему не компилируется?" предпочитает писать на том языке, на котором ему проще продемонстрировать концепцию, а не на том, который нужен топикстартеру.
class treugolnik: public virtual to4ka, public virtual to4ka, public virtual to4ka {};Ну так допустим конечно нельзя.
Но вот так ...
template<int>
class point {};
class triangle: public virtual point<1>, public virtual point<2>, public virtual point<3> {};
Чем не метод? Работает в общем-то.Тем, что заведомо численно менее устойчив, чем просто взять скалярные и косые произведения и посмотреть знаки.
Да и вообще, тем методом через площади и формулу герона мы решали в шестом классе на городское олимпиаде школьников. Студент геофака после года линала может уже и что-нибудь более нормальное придумать.
Это ложь, стандартно через полупериметры всегда считали.Что значит «это ложь»?
Я видел программу, которую приняли, там используются синусы и квадратные корни. Я реально представить себе не могу, где там можно засунуть синус. Нет, меня посещяет одна мысль, но мне кажется, что этот угол еще найти надо будет и мне становится страшно
кто всегда считал через полупериметры? Я всегда считал через косое/векторное произведение.
Это ложь, но бывало, что из жалости принимал задачу и при точном равенстве (точнее неравенстве до какого-то знака без вариантов точка на стороне треугольника.что значит ложь? Вот именно, что надо с точностью до eps делать. А там написано double.Equals (тоже блин какое-то новое веяние, наверное в угоду любви препода к КЛАССАМ). И оно не работает даже если точка хорошо так внутри треугольника лежит, причем тут стороны вообще?
В общем ему не важно как ты будешь считать. Главное чтобы была применена конструкция класс. Эти задачи на освоение этой конструкции, как и то что квадратное уравнение надо было решить используя КЛАСС, хотя и ежу понятно что можно обойти и без него в маине в несколько строчек.Ну вот в этом и есть смысл моего рассказа, которое озаглавлено «баловство». Если тебе не ясно, то могу разжевать: вся эта дрочь с «классами» — это и есть баловство. Он дорвался до концепции, сам не понимает, как ее применять, где она уместна, а где — нет, но требует от студентов ее пихать куда ни попадя, чтобы якобы «научиться». Вот оно баловство.
Может, меня здесь заклюют, но имхо пока нет полиморфизма, никаким ООП тут не пахнет.кто заклюет? Правильно, нет бы придумал нормальную задачу, где нужен полиморфизм, так нет, он заставляет впихивать все, о чем он слышал (да и не слышал походу, просто любит удивляться новым конструкциям в коде) в неподходящие задачи.
Вот оно баловство.Это не баловство, это саботаж против собственных студентов
вряд ли он это делает осознанно. Просто нет утвержденной программы, а сам он некомпетентен: берет задачи из задачника «начинаем изучать паскаль». А надо бы из «начинаем изучать ООП». Вот и все, а внушение провести там походу некому, студенты просто ходят в темном лесу, не понимая, что происходит.
А че такого то? Это же геофак, зачем им уметь программировать?
А че такого то? Это же геофак, зачем им уметь программировать?лучше вообще не учить ООП, чем учить его так
Но, за деревьями надо не забывать видеть лес (добило-то то, что принимают неработающую программу, но зато с классами, что симптоматично).
лучше вообще не учить ООП, чем учить его такдык там все всё забудут после окончания курса, можно сказать, что ООП никто и не учит
Нельзя так не уважать студентов. Они все-таки могут понять вещи, если им их объяснить. Но тут никаких объяснений не проводится, просто с чуваков спрашивают, пока они не понадобавляют достаточно мути, чтобы у препода сложилось впечатление, что баланс баловства и небаловства в программе достиг необходимого ему значения (а не получена хотя бы работающая прога, заметьте).
давай так, ты знаешь хорошую задачу на понимание ООП для студентов, у которых программирование - не профильный предмет?
Надо открыть каких-нибудь Дейтелов, там дофига упражнений, не то, что для студентов, а для школьников. Там есть и большие и малые упражнения. Но это другой вопрос, если искать, всегда можно найти, тут же явно сделано на отмашь, да еще и с претензией. Это вредительство какое-то.
Ы-ы-ы-ы-ы-ы-ы-ы-ы-ы-ы-ы!Вы, кстати, зря смеетесь над геофаком.
Геофа-а-а-а-а-а-а-а-а-ак!
Вот взять студентов ВМК. 1-й курс паскаль и асм. 2-й курс си и с++.
В итоге в первом семестре 3-го курса ко мне приходят студенты, которые пишут программы на смеси си и паскаля например вот так:
if (бла бла бла) then m++;
Объявляют циклы вот так (цитирую посимвольно):
for (i=0, i++, i <= n)
И делают вот такие шедевры:
void swap(int a, int b) {int c = a; a = b; b = c;}
Так что на геофике еще не все так плохо, как может показаться.
ЗЫ Правда это 2-й поток...
Таких как бэ не проймешь
Тем, что заведомо численно менее устойчив, чем просто взять скалярные и косые произведения и посмотреть знакиесли есть координаты, для вычисления площади не обязательно использовать герона, можно теми же косыми произведениями - ими сравнить сумму площадей [точка * ребро] с площадью треугольника. Геометрично, обобщается на многоугольники неплохо
ну дааа, но все равно при сложении наращивается ошибка в координатах. А если проверять каждую сторону независимо, то нет. На многоугольники выпуклые обобщается? На выпуклые и обычный метод элементарно обобщается.
Не, ну я не спорю, в умелых руках тут все заработает. Просто это странности, идущие по возрастанию удивительности, трейтий пункт просто получает драматичность именно в виду первых двух, а именно дурацкого метода подсчета площади, а подсчет площади берется из-за того, что вообще такой подход выбрали. Так что тут все в целом плохо, а не конкретно первый пункт.
Таких как бэ не проймешьОтчисление всех проймет.
Так что на геофике еще не все так плохо, как может показаться.Это всего лишь значит, что на вмк все еще хуже, чем может показаться
это ничего не значит, потому что я когда в школе еще изучал языки, я тоже по началу путал немного. На ВМК все печально, но проблемы все-таки стоят более высокого уровня: там плохо учат прогать вообще, но подобного трэшака нет, ибо есть программа.
но да, погрешности складываются
УПД:
ОЙ, нихрена оно не обобщается) такая ориентированная площадь всегда равна площади "основания". Был невнимателен. А жаль)
пост про студентов третьего курса - придирки сплошные, про синтаксис так ппц вообще
понятно, что промышленному программированию не учат, но оно и не надо особо имхо.
я когда поступил прогать не умел вообще, на третьем курсе устроился программистом. без каких-либо проблем. И таких в общем-то много было
Но это ничего не доказывает, в нормальных западных вузах ребята с нуля и не тому учатся.
в целом не могу сказать, что они меня чем-то сильно впечатляют
вообще говоря на западе скорее обратное мнение - что русские очень хороши во всяких программированиях и смежных областях
Вопросы, которые поднимаются в трэде касательно 3го курса вмк (типа знания синтаксиса) - это очень прикладные знания, такое можно ожидать от выпускника училища. Да, эти знания могли бы давать в вузе тоже, но мне кажется это совсем не главное.
ахуеть, т.е. третьекурсник вмк не обязан знать синтаксиса хотя бы одного ЯП? тогда логично предположить, третьекурсники физфака не должны знать, как пользоваться динамометром, а третьекурсники химфака не обязаны хоть раз в живую видеть, как выглядит пробирка, достаточно картинок в учебнике.
ВМК же не исключительно программистов готовит, на первых двух потоках основной упор идет на прикладную математику.
Ну вообще, опыт показывает, что нормальные студенты, которые знают математику, и программку могут написать вполне уверенно. Там могут быть неточности, которые заметит программист, но это вообще не главное.
третьекурсники физфака не должны знать, как пользоваться динамометромЩа нагуглил что такое динамометр, смутно вспомнил что чем то подобным приходилось пользоваться на праках на 1-м курсе, и уж точно уже к концу второго курса я бы не ответил на вопрос "что такое динамометр". Не говоря уж о том, как им пользоваться.
Я знаю почему-то. Наверное, потому что не на физфаке учился.
Потом в сунце на более приличном физпраке вроде не юзали.
Оставить комментарий
Serab
Попросили тут помочь с праком немного. Любуйтесь:препод прака на геофаке:
"правильно выводить площать треугольника в задаче "посчитать площадь треугольника" надо через ToString: добавить туда, в тустринг инфу о площади".
"ввод с клавиатуры осуществляется в конструкторе по умолчанию".
"У класса треугольник есть свойство answer, которое говорит мол "точка лежит внутри треугольника" или "точка не лежит внутри треугольника"
При этом в задачке принадлежность точки треугольнику считается (набрали воздуха в легкие )
1. методом "а просуммируем-ка мы три площади и сравним сумму с площадью треугольника"
2. площадь считается через что-то неведомое мне доселе (там есть синусы, квадратные корни и прочая)
Но это еще не все.
3. Равенство, конечно же, проверяется точное и поэтому почти никакие точки треугольникам не принадлежат согласно проге.
Вот, а нормальную работающую прогу с одним классом "точка" и чуть более многословной функцией Main отвергают со словами "это баловство".