|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
С++ для начинающих. Мысли вслух04.01.2013, 14:11. Показов 3399. Ответов 40
Метки нет (Все метки)
Доброго времени суток.
В конце ноября регистрировался на форуме с простой целью: хотелось посмотреть какие вопросы и проблемы возникают у студентов при изучении языка С++. Не ради исследований, статистики и прочего. Просто хотелось оценить "на глаз" и, возможно, отметить для себя какие-то моменты, на которые следует обратить внимание, если самому придется работать со студентами. Форум известный, поток вопросов имеется. Предположил, что студенты ориентировочно первого курса в основном будут писать в разделе "С++ для начинающих", там и решил обосноваться. На данный момент я несколько разочарован и хочу поделиться своими мыслями и вопросами по поводу того, что бросается в глаза. Дисклеймер Пост вероятно получится относительно длинным, при этом в нем не будет ничего нового, только очевидные вещи, находящиеся на поверхности. Все высказывания субъективны. Ссылки с конкретными примерами не приводятся намеренно, чтобы не задеть чувства авторов. Орфография и пунктуация никогда не были моей сильной стороной. Не страшно? Поехали! Ctrl+C, Ctrl+V Очень много тем с банально скопированым текстом задания. Пожалуй, по этому пункту сказать решительно нечего. Такие студенты всегда были и еще будут. И дипломы защищали на "отл" люди, не способные написать ни строчки кода. Иногда накатывает и хочется послать их подальше со специальности (о профессии пока и речи нет), но потом становится все равно - они сами решили потратить время обучения впустую. cout, следовательно, C++ Часто приходится наблюдать откровенную кашу в голове студентов в виде неспособности отличить C от C++. Ребят, подскажите: почему так происходит и откуда у этой проблемы ноги растут? Не могу придумать на кого свалить, кроме как на преподавателей. Сам наблюдал, как в очень уважаемом ВУЗе нашего города студенты-математики писали в каком-то древнем билдере на языке Си, но при этом для вывода использовали cout, выделяли память для массивов с помощью new и очень удивлялись вызовам malloc. Зачем сознательно создавать путаницу в головах студентов? Слишком страшен синтаксис, используемый в printf? Слишком сложно использовать malloc? Лично я не считаю это вескими причинами. Вспоминая свой первый курс, у нас такой проблемы не было. Дали Linux, gcc. Что, какой g++? Забыли, пишем на Pure C. Да, проблемы были. Кто-то терялся в командной строке, кому-то было сложно поставить себе дистрибутив для работы, а когда программы стали состоять из нескольких файлов, пришлось еще учиться писать Makefile. Тем не менее, справились. Кто-то сам, кому-то помогли. Но работа в таком режиме помогла понять, что за IDE не стоит никакой магии. У меня возникает вопрос. Может, я ошибаюсь, и в других учебных заведениях сразу говорят, что будем изучать С++, но начнем с его сишной части, не углубляясь пока в классы? Но для простоты пока будем использовать некоторые возможности С++. Если кто-нибудь в курсе, проясните, пожалуйста, этот момент. Случается, что за помощью обращается человек с заданием явно академического плана, где стандартные вещи необходимо реализовать вручную. В итоге получает решение с использованием STL. Да, это лаконично и аккуратно. Да, я понимаю, что мы находимся в разделе С++ и хотим по максимуму использовать возможности языка и стандартной библиотеки для написания красивых решений. Но от нас ждали другого, и часто это можно понять по уровню сложности задания и формулировкам. Вопрос: можно и нужно ли бороться с проблемой смешения двух языков студентами? Горшочек, вари! Еще раз о каше, дамы и господа. В этот раз - об оформлении исходого кода. Случалось видеть и полное отсутствие какого-либо форматирования, и просто бессистемное оформление кода. Есть примеры, в которых я прослеживаю логику оформления, но читать такой код не становится проще. Да, какое-то выравнивание есть. Но я не привык к такому его виду. И все вокруг меня не привыкли. Я сейчас не говорю о том, где расставлять фигурные скобки и сколько пробелов использовать для отступов. Но оформление элементарно должно быть. Отделить операторы пробелами, расположить по одной инструкции на строку, добавить пустые строки для разбиения кода на логические блоки - это все не так сложно, но сэкономит время-нервы и тем, кто желает помочь, и самому автору (хотя, наверное, сам он может этого и не осознавать). Вопрос: как можно приучить к оформлению исходного кода? Вспоминая практику своих преподавателей, код, в котором отсутствует форматирование не принимается. Без вопросов. В учебной практике можно продолжать придерживаться этого правила, в этом проблем не вижу. Можно ли что-нибудь поделать в рамках форума? Игнорировать темы, авторы которых не постарались придать коду аккуратный вид, наверное, не стоит. В конце концов, на форум обращаются с другими вопросами. Конечно, можно скопировать себе код, отформатировать одной из доступных утилит, но вы же понимаете, что лень. Иногда не приходится компилировать и запускать код, чтобы найти в нем ошибки. Можно прикрепить тему со списком соответствующих утилит. Но очень сомневаюсь, что кто-то будет заглядывать в нее. Вместо заключения Были и еще какие-то мысли о наболевшем, но они либо забылись, либо показались несущественными. Спасибо всем, кто дочитал.
0
|
|
| 04.01.2013, 14:11 | |
|
Ответы с готовыми решениями:
40
Мысли вслух мысли вслух Аварийное питание (мысли вслух) |
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 10.01.2013, 12:36 | |
|
asidorchenko, открой для себя интернет-магазины.
И да, совсем забыл, по многим темам существует хорошая свободная (и бесплатная) литература.
0
|
|
|
844 / 353 / 68
Регистрация: 20.11.2012
Сообщений: 852
|
||
| 10.01.2013, 19:50 | ||
|
Я с 11 года регулярно приобретаю интересующие меня книги в интернет-магазинах. Можно даже наложенным платежом на дом. Да даже в обычных магазинах можно заказать доставку книги по предоплате. Тот кто интересуется - всегда найдет информацию тем или иным способом. Даже методом тыка при необходимости. Главная цель преподавателей - заинтересовать, а там студент уже сам все найдет. p.s. "Компиляторы" издания 2012...
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 12.01.2014, 21:51 | |
|
А вот вам и исчерпывающий ответ.
Вычислить сумму элементов последовательности, расположенных между первым и вторым отрицательными элементами Вялая такая темка была, хотел уже отписаться, но вот ТС подарил. ![]() Добавлено через 16 минут Не по теме: А все свои спасибки и оплеушки я на сегодня раздал... :)
0
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 13.01.2014, 05:09 [ТС] | |
|
Байт, могу, кстати, привести и обратный пример) Вычислить значение y в зависимости от выбранной функции f(x), аргумент которой определяется из поставленного условия.
Тема началась с того, что автор, как и многие, скопипастил задание, но в итоге из него получилось выжать код. Не знаю, сам ли он его писал, и удалось ли ему отладиться до конца, но если все так, то это круто. (Еж - птица гордая, пока не пнешь - не полетит). Еще вспомнилось. В первом посте я ныл о том, что студенты путают С и С++. Есть еще высший пилотаж - некоторые путают С и C#. Предполагаю, логика примерно такая: есть язык программирования С. Но это же как-то совсем несолидно - обозначать язык одной буквой. Никто не поймет. Вдруг подразумевается нота До. А может быть витамин С? Или вообще углерод? Писать по-русски "Си" тоже странно. Выход - добавить какую-нибудь программерскую закорючку, чтобы сразу было понятно, что это о программировании. Решетка (#) вполне подойдет.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 13.01.2014, 11:12 | ||
|
0
|
||
|
5 / 5 / 1
Регистрация: 05.11.2011
Сообщений: 17
|
|
| 13.01.2014, 17:02 | |
|
У меня в группе до третьего курса был популярным вопрос "У тебя где написана программа? В студии или билдере?". Считалось, что там чуть ли не на разных языках пишут. Да и курсовые работы по ООП и БД были самыми проблемными -- вся группа сдавала их во время сессии, а кто-то и после.
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 13.01.2014, 21:35 | ||
|
В своем продвижении политики чистого кода и разделения языков, я заставлял людей нормально оформлять код и хоть немного шевелить мозгами, продумывая алгоритм, когда они обращались ко мне за помощью в программе. Пожалуй, временами они меня просто ненавидели, но деваться то было некуда - я всегда шел впереди группы и программы обучения.
Типичный разговор того времени:
А с форумчанами я так иногда - пну, да фыркну и не более. Это своих то, родных товарищей, я заставлял код вылизывать и писать правильно. Но изматывает это все на самом деле сильно. Хотя бы приятно, когда спустя несколько лет они ко мне подходят и говорят спасибо за набивание шишек.
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 14.01.2014, 01:08 | |
|
0x10, Это вам для коллекции
Вычислить сумму элементов последовательности, расположенных между первым и вторым отрицательными элементами Причем рассердился я именно благодаря вам.
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 14.01.2014, 01:37 | |
|
Я планирую под старость уйти в преподы. Ради идеи, ради того, чтобы прогеров нормальных учить. Надеюсь, я не превращусь в маразматика
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 14.01.2014, 02:18 | ||
0
|
||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 14.01.2014, 06:38 [ТС] | ||
|
Байт, предлагаю все-таки притормозить с приведением ссылок в теме. Еще в первом посте писал
Но если есть что-нибудь интересное, забавное и показательное - можно писать в личку)
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||
| 15.01.2014, 20:19 | |||||||
|
Добавлено через 6 минут Добавлено через 2 минуты Добавлено через 31 секунду Если учить одновременно два, то будут спикать по-китайски и шпрехать по-корейски. Добавлено через 2 минуты Добавлено через 2 минуты Добавлено через 44 секунды
0
|
|||||||
|
|
||
| 15.01.2014, 22:33 | ||
|
Серьезные вопросы (может быть к сожалению) на форуме практически не рассматриваются/обсуждаются по понятным причинам.
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 17.01.2014, 12:50 | |
|
Тогда и решай задачи с форума для себя. Постить зачем? Вот если вдруг так совпало, что одновременно можешь помочь, тогда пость. Например, ТС просит любое решение, или оба изучаете c++11. А "У меня есть решение, но к задаче оно не подходит" публиковать не стоит.
0
|
|
|
|
|
| 18.01.2014, 11:27 | |
|
taras atavin, в большинстве случаев, опять же, ТС не уточняет каким именно способом ему требуется решить задачу. Однако, по тексту самого задания, становится ясно, что это домашняя работа и решать надо "с помощью обычных функций и массивов". Именно в таких случаях я публикую решение в каком угодно виде. В других случаях оставляю решение с соответствующей оговоркой. Иногда, кстати, выясняется, что ТС не против решения с использованием того же STL, хотя первоначально задача была сформулирована как "без STL".
Также не стоит забывать, что мы все таки на форуме, а не на сайте с решениями домашних работ. Решения, которые не подходят ТС, могут оказаться полезными другим участникам форума. Кто-то может узнать для себя что-то новое, а некоторые посты вырастают в весьма интересные дискуссии. Тем не менее, я был бы не против создания раздела для исключительно решений подобных домашних работ. Модераторы бы туда сваливали всю эту кучу, простите за выражение, шлака, а люди, которые реально хотят учиться, спокойно общались бы в разделе для начинающих.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 18.01.2014, 11:47 | |||
|
Когда не уточняет
0
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 18.01.2014, 11:48 [ТС] | |
|
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 18.01.2014, 18:43 | |
|
Не стоит забывать, что наш форум на ура отыскивается в поисковых системах при задаче интересующего вопроса. И вот людям, которые его найдут, решение с STL и С++11 возможно подойдет больше.
Да и пусть смотрят как надо делать, в конце-концов, имена функций и контейнеров в STL очень простые, достаточно основ английского чтобы понять что же тут происходит и написать аналог на "массивах". Беда лишь в том, что кому нужно - тот попробует вникнуть, а кто пришел за кодом - даже попробовать разобраться не станет. И еще: я благодарен форумчанам, которые публикуют "сложные решения", если бы не их посты - я бы тут не сидел скорее всего, ибо многое я почерпнул конкретно с этого форума, о новых плюшках и фишках узнал отсюда же. О том что такое хорошо, что такое плохо, чего кстати в книгах не всегда найдешь - опять же отсюда. А ориентировать профиль форума на халявщиков не стоит. В конце-концов, если ТС так не нравится решение - он его может проигнорировать, его интерес нисколько не ущемится. Сложное решение точно ничуть не навредит по сравнению с обычным игнором ответа. По поводу разделения тем - люди, приходящие на форум ради халявы, готовы постить в любых разделах, даже не соответствующих тематике, готовы умышленно нарушать правила форума, так что раздел с "решите" и раздел с "помогите осознать" просто будет перемешан и каша будет и там и там. Более того, четкой границы разделения нет, а труд, который вы предлагаете выполнять модерам, просто нерационален.
0
|
|
|
|
|||
| 19.01.2014, 09:23 | |||
|
Я понимаю, что у cyberforum.ru и stackoverflow.com разные форматы, но настолько "ожесточенная" борьба за "сезонных пользователей", на время сессии, мне чужда. Все это к тому, что формат форума не очень подходит для решения домашних работ. Надо либо добавлять какие-то "фичи", которые будут иметь направленность именно на домашние работы, либо как-то ожесточать требования к оформлению тем и меры "борьбы" с ними.
0
|
|||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||
| 19.01.2014, 18:29 | |||
|
0
|
|||
| 19.01.2014, 18:29 | |
|
Робот SWG - мысли вслух Как правильно говорить вслух команды типа du -sh Букмарклет читалки вслух Google Translate. Кириллица неадекватна Мысли материальны? Мысли о установщике 10.8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|