|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
С++ для начинающих. Мысли вслух04.01.2013, 14:11. Показов 3411. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|