Учитель требует чрезмерного /необоснованного использования шаблонов проектирования [закрыто]

Я изучаю информатику, и у меня есть класс под названием «Методы программирования». Его цель - научить (нас) хорошим объектно-ориентированным принципам проектирования. В течение семестра у нас есть домашние задания, программы, которые мы должны написать, чтобы продемонстрировать, что мы узнали.

Лаборант требует для каждой из этих домашних заданий использовать конкретные шаблоны проектирования. Например, текущая домашняя работа - это приложение, используемое для обработки заказов клиентов. Для этого нам требуется использовать шаблоны проектирования «Factory Method» или «Abstract Factory». Это становится еще хуже: в конце семестра мы должны написать программу (что-то более сложное), которое должно использовать по крайней мере один шаблон создания, по крайней мере один структурный шаблон и по крайней мере один поведенческий шаблон.

Нормально ли это требовать? Я имею в виду, заставляя нас разрабатывать наши программы таким образом, что конкретный шаблон дизайна имеет смысл, просто выходит за рамки того, что я считаю ок. Если я автомеханик и имею огромную ящик для инструментов, тогда я буду использовать определенный инструмент из этой коробки, если и когда ситуация этого потребует. Не больше, не меньше. Если мой дизайн приложения вообще не требует использования «Абстрактной фабрики» (например), то зачем мне его реализовывать?

Я еще не уверен, если старший преподаватель согласен с тем, что требует лаборант, но Я хочу поговорить с ним об этом, и мне нужны веские аргументы. Как мне подойти к этой проблеме с ним?

PS: Я уверен, что должен быть лучший способ научить нас этим. Возможно, мы каждую неделю читаем о трех шаблонах проектирования, а на следующей неделе даем нам тест с небольшими, но конкретными проблемами программирования или архитектуры или проблемами. Целью этого теста было бы определить, какие шаблоны проектирования будут иметь смысл и как они могут быть реализованы. Таким образом, он может понять, понимаем ли мы их.

EDIT: Эти домашние задания - это не просто программы на 100 строк, они имеют довольно много требований и довольно сложны. Именно по этой причине у нас есть около 2 - 3 недель для каждого из них.

Я согласен, что практиковать это - лучший способ учиться. Но для этого не должны использоваться более мелкие программы /приложения? Что-то просто для демонстрации целей. Не большие программы с большим количеством требований /классов и т. Д.

6 голосов | спросил Radu Murzea 23 MarpmFri, 23 Mar 2012 17:26:47 +04002012-03-23T17:26:47+04:0005 2012, 17:26:47

8 ответов


32

Если вы чувствуете, что ваш учитель делает что-то неправильно, обсудите его с ним или ей.

Наложение конкретных практик на домашнюю работу очень распространено. Это помогает вам лучше понять эту вещь, чем просто читать об этом. Короче говоря, практика - важный шаг в обучении.

  

Я слышу и забываю. Я вижу и помню. Я понимаю и понимаю. [Конфуций]

ответил 23 MarpmFri, 23 Mar 2012 17:32:13 +04002012-03-23T17:32:13+04:0005 2012, 17:32:13
8

вы использовали пример механика, поэтому попробуйте остаться с этим. Когда механик тренировался, и они участвовали в замене шин, они сказали ему использовать гаечный ключ, они не вручили ему ящик для инструментов и не сказали. То же самое с вами, вы участвуете в классах, чтобы научиться применять эти методы, поэтому, когда назначение программирования предназначено для использования определенного инструмента, который они вам скажут. Эта проблема не является проблемой, если только они не говорят вам использовать молоток на этих винтах.

ответил Ryathal 23 MarpmFri, 23 Mar 2012 17:42:28 +04002012-03-23T17:42:28+04:0005 2012, 17:42:28
6

Является ли точка класса /упражнений изучать шаблоны проектирования? Если да, то делайте то, что он говорит, и работайте над изучением шаблонов дизайна. Не сосредотачивайтесь на том факте, что шаблон не подходит для образца проекта.

Если класс /упражнение касается выбора правильного шаблона проектирования для правильной ситуации, тогда у вас может быть приемлемая жалоба и вы можете поговорить с вашим учителем об этом. Было бы еще лучше, если бы вы предложили несколько хороших примеров проектов, которые выиграют от шаблона проектирования, который вы пытаетесь изучить.

Просто не забудьте проявить уважение и принять тот факт, что ваш учитель не сможет изменить программу.

ответил Rachel 23 MarpmFri, 23 Mar 2012 17:43:10 +04002012-03-23T17:43:10+04:0005 2012, 17:43:10
2

Вы в университете? Я почти не вижу проблемы. Я заканчиваю свой последний год в средней школе, и мой учитель CS всегда давал нам такие задания на протяжении всего семестра каждый год, когда я учился на его курсе. Даже сейчас, он дал нам 2 недели, чтобы закончить задание oop, с чем я работаю впервые. Точно так же, как и в вашем случае, это не 100-строчная программа, но не сложность на основе строк кода. Иногда это просто сложная задача, иногда это низкая эффективность. Не поймите меня неправильно, я был невежественным и несчастным на первой неделе, но как только я понял самые основы, разветвление для развития фундаментальных требований стало очень полезным. Ваш учитель не дает вам лучших инструментов, потому что это одна из вещей, которые полностью убивают творчество и понимание. Зачем беспокоиться об ошибках с помощью операторов switch или if, когда вы можете просто использовать блоки try-catch? Почему вы должны анализировать переменную компонента списка переменной вместо использования функции, которая делает это для вас? Ответ, который вы ищете, не всегда будет самым простым способом, но это станет легче, когда вы поймете, когда и почему использовать предоставленные вам инструменты.

ответил Alex 15 AMpSun, 15 Apr 2012 11:54:39 +040054Sunday 2012, 11:54:39
1

Кажется странным, что вы создаете свои собственные задания для создания определенных шаблонов, однако, если вы можете это сделать, я бы рекомендовал вам принять класс и сделать это. Это будет отличный учебный опыт и чрезвычайно полезная вещь для вашего резюме. Будучи колледжским градом в реальном мире, я могу сказать вам, что последний пункт, который я сделал, делает всю разницу в мире, если вы когда-нибудь захотите получить работу в этой области. Сама степень не означает ничего без работы по ее поддержке.

ответил Akromyk 23 MarpmFri, 23 Mar 2012 19:30:33 +04002012-03-23T19:30:33+04:0007 2012, 19:30:33
1
  

Я согласен, что практиковать это - лучший способ учиться. Но не следует   для этого используются более мелкие программы /приложения? Что-то только для   демонстрируя цели. Не большие программы с большим количеством   Требования /классы /и т.д.

Дизайн шаблонов действительно не интересен в очень маленькой программе. Любой может реализовать фабрику или наблюдателя для класса, который не делает ничего полезного. Сила шаблонов исходит из их способности помочь вам организовать более крупные программы - как только вы узнаете, что шаблон используется, вам не нужно читать всю реализацию, чтобы иметь довольно хорошее представление о том, что делает код. Шаблоны - это инструменты, которые вы используете для перевода «множества требований» в разумные классы. Поэтому просить вас использовать шаблоны, которые вы изучаете, в контексте программы, которая делает что-то интересное, кажется довольно хорошей идеей.

Кроме того, если вы пишете эти программы в качестве домашней работы в течение 2-3 недель, вы определенно все еще пишете небольшие программы.

ответил Caleb 23 MarpmFri, 23 Mar 2012 19:51:29 +04002012-03-23T19:51:29+04:0007 2012, 19:51:29
0

Печально, если университет собирается передать тему в эти дни независимо от того, что и как вы учите. Я чувствую к вам, потому что несколько лет назад я был в аналогичной ситуации, но мне был дан конкретный проект по внедрению, когда фабрика была совершенно неактуальна, но тем не менее нам пришлось ее загнать. Проблема с таким обучением заключается в том, что это очень вводит в заблуждение впечатлительных учеников. Если учения укладываются из контекста, учителя должны сделать это ясно. Любой хороший студент должен поднять свои заботы учителю ... это то, чему должно быть обучение.

ответил Jack 24 MarpmSat, 24 Mar 2012 14:13:48 +04002012-03-24T14:13:48+04:0002 2012, 14:13:48
0

Один навык, который вам нужно изучить, чтобы выжить в школе, работе и даже в жизни, - это научиться выбирать свои битвы. В этом случае, если люди, проводящие курс, не нарушают закон или не ведут себя неэтично, тогда обычно вы не можете сделать ничего подобного. Это даже не случай, правильны вы или нет. Вам нужно научиться, когда задавать вопросы, затем, когда нужно задать вопрос, или просто пойти с потоком.

Университет - это действительно средство для достижения цели. Это несколько лет обучения тому, как справляться со стрессом и как воспитывать себя. В ИТ вас редко преподают в ваших лекциях, которые продлится вам больше нескольких лет, и к тому времени, когда вы покинете школу, единственные реальные навыки, которые у вас будут, будут касаться стресса, соблюдения сроков и, самое главное, о том, как продвигать свое образование самостоятельно, пока вы работаете.

Пока я понимаю, что это специально не удовлетворяет ваш вопрос, мой совет - просто сыграть. К концу всего этого вы либо научитесь принимать то, чему вас научили, либо научились учиться из разных источников и в конечном итоге составлять свой собственный разум. В любом случае, вы сэкономите много стресса, если просто выполните работу, а затем перейдите за ее пределы. Это само по себе является очень полезным социальным навыком, чтобы узнать, когда вы оказываетесь с потенциально неприятным боссом, и работа, которая не делает того, что вы сделали бы это самостоятельно.

ответил S.Robins 15 PMpSun, 15 Apr 2012 12:30:04 +040030Sunday 2012, 12:30:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132