|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
С++ для начинающих. Мысли вслух04.01.2013, 14:11. Показов 3191. Ответов 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
Мысли вслух мысли вслух Аварийное питание (мысли вслух) |
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 04.01.2013, 18:08 | ||||
|
Добавлено через 1 минуту Добавлено через 4 минуты
0
|
||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|||||
| 04.01.2013, 19:04 [ТС] | |||||
|
0
|
|||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|||
| 04.01.2013, 23:21 | |||
|
И если я правильно понял выражение "сишная часть" — то это тупо синтаксис и "императивные языки программирования 101". Тут вообще нет принципиальной разницы, что за язык и каким заклинанием можно что-то считать из файла или выделить памяти.
0
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 05.01.2013, 07:21 [ТС] | ||
|
0
|
||
|
160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
|
|
| 05.01.2013, 07:55 | |
|
МНОГО "сцудентов-погромистов" учатся для того, чтобы где-нибудь учиться. А погромист - это престижно. Вот и получаются такие. Те, кому это интересно пишут нормально.
0
|
|
|
387 / 214 / 102
Регистрация: 09.04.2012
Сообщений: 635
|
|
| 05.01.2013, 08:53 | |
|
Новичок не знает, как вопрос сформулировать, так как нет знаний, которые позволят сформулировать вопросы. Большинство студентов таковы, так что не удивительно, что они приходят на форум, чтобы им помогли. Студенты обращаются на форум, совсем не потому что они ленивые, глупые или ничего не делают, а просто у них еще нет нужных знаний. Чтобы у студентов подобные знаний появились, нужно чтобы им кто-то в жизни или на форуме объяснял очень подробно и разжевывал, так как самостоятельно понять совершенно нереально. И желательно чтобы были примеры готового кода, на котором они смогли бы научиться, и форум им дает такую возможность, предоставляя решенные задачи. Самостоятельно разобраться и сделать задачи нереально.
НЕ умея формулировать вопрос, создать запрос в поисковую систему не получится, и в любом случае возникнет проблема с выделением из огромного потока, правильной страницы. Чтобы сформулировать запрос, нужно знать точные термины. Чтобы использовать правильное оформление кода, его нужно знать. А чтобы его знать, нужно чтобы объясняли самостоятельно на поставленные вопросы, а не отправляли не в гугл ( на одном из форумов (это был codenet) я за отправление в гугл отправил на три буквы за что и был забанен, а вопрос был следующим "как написать компилятор"). Проблема в том, что мало кто объясняет теорию. Иногда у меня складывается впечатление, что большинство не знают, а те кто знает, на подобных форумах не отвечают, так как у них нет времени ( они работают и получают большие деньги за свою работу, делая проекты AAA, которые издаются крупнейшими издательскими компаниями по всему миру) Недавно я тут в форуме "С для начинающих" встретил задачу, которая явно профессиональная и уровня кандидатской или монографии. И работа над которой должна продолжаться несколько месяцев. А студенту ее дали на 2 курсе. С ней и выпускник то не каждый справится.
0
|
|
|
160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
|
|
| 05.01.2013, 09:43 | |
|
asidorchenko, я не зная, например, ЛИСПа могу нормально его написать. Красиво, в смысле. Отступы, все дела. Те, кто этого не делает - просто ленивы.
0
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||
| 05.01.2013, 09:59 [ТС] | ||||
|
asidorchenko, попробую резюмировать по поводу поиска информации. На что нужно обратить внимание во время выдачи материала студентам: 1. Указать возможные источники информации. Сюда относятся: - ссылки на книги, вплоть до главы и раздела с информацией; - man pages. Случалось наблюдать, когда на рекомендацию "почитать man man" отправлялись в гугл и по первой ссылке находили ссылку на страницу вики о музыкальной группе. 2. Отметить ключевые слова для поиска. 3. Объяснить принцип форматирования.
0
|
||||
|
387 / 214 / 102
Регистрация: 09.04.2012
Сообщений: 635
|
||
| 05.01.2013, 12:27 | ||
|
http://en.wikipedia.org/wiki/B-tree
0
|
||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|||
| 05.01.2013, 14:07 | |||
|
Что касается смешивание языков, то тут думаю не стоит забывать, что тот достандартный C++, который в большинстве случаев и преподают, всё-таки намного больше похож на C, чем сегодняшний.
0
|
|||
|
2893 / 1928 / 208
Регистрация: 05.06.2011
Сообщений: 5,662
|
||||
| 05.01.2013, 15:38 | ||||
|
Сужу по случаю исключительно по твоему описанию и, возможно, неправильно -- но таки надеюсь, с тех пор ты заметно поумнел. Иначе и тут скоро забанят.
0
|
||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 05.01.2013, 16:01 | |||
|
Добавлено через 4 минуты Добавлено через 4 минуты Причём, и на кандидатской, и на гранте, и при написании монографии дело не в размере задачи, даже если это прога, а в том, что информации для её написания в полном объёме нет в принципе, надо проводить исследования. И не язык учить, а изучать реальный объект/систему, прогой моделируемый, разрабатывать новые методы в области комбинаторики и тому подобное.
0
|
|||
|
Антикодер
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
|
|
| 05.01.2013, 17:10 | |
|
я бы отвечал на вопросы новичков так, чтобы привить им интерес к программированию, показывая как применяются их задачки в реальных условиях(чтоб им реально это помогало в жизни). А форматирование кода, отличие C от C++ и прочее - это побочные знания, которые через 200 лет никому уже будут не нужны.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 09.01.2013, 09:37 | ||
|
0
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||||||
| 09.01.2013, 15:20 | ||||||||||
|
И забанили тебя в принципе справедливо. И чтоб два раза не вставать: почитай вот это руководство. Ручаюсь, это тебе не раз пригодится в дальнейшем.
0
|
||||||||||
|
387 / 214 / 102
Регистрация: 09.04.2012
Сообщений: 635
|
|||||
| 10.01.2013, 10:07 | |||||
|
Nameless One
Компьютерная литература является дефицитом. Дефицит в экономической теории это когда спрос превышает предложение. Таким образом, взять литературу законным способом либо неоткуда ( является библиографической редкостью), либо является незаконным и преследуется по закону. Выбор у человека только один - бросить обучение в данной сфере и идти работать на низкоквалифицированную работу. Таким образом, вместо того, чтобы писать "гугли", надо писать и говорить новичкам следующий правильный ответ "бросай занятие программированием, тебя никто тут не ждет и иди на три буквы". Список литературы по теме, я и сам способен найти без указки, что его нужно гуглить.
0
|
|||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||
| 10.01.2013, 11:59 | |||
|
0
|
|||
|
387 / 214 / 102
Регистрация: 09.04.2012
Сообщений: 635
|
||
| 10.01.2013, 12:28 | ||
|
Книги в магазины попадают на непродолжительное время. Отмечу, что они не переиздаются: например серия книг по WinAPI Windows от Microsoft Press - Petzold, Pietrek, Richter, Kruglinsky, Solomon, Russinovich как были изданы в конце 1990х-начале 2000х так с тех пор и не переиздавались в России, то есть их уже не купить, несмотря на то, что в них есть потребность. Аналогичное относится и к книгам по алгоритмам, изданным в начале 2000х. Книги становятся библиографической редкостью. Скачивание является незаконным, нарушением авторского права. Права у издательства. Та же самая ситуация и с программным обеспечением: его просто изымают из оборота. Авторское право вечно, так как распространяется на перевод и на переиздание.
0
|
||
| 10.01.2013, 12:28 | |
|
Помогаю со студенческими работами здесь
20
Робот SWG - мысли вслух Как правильно говорить вслух команды типа du -sh Букмарклет читалки вслух Google Translate. Кириллица неадекватна Мысли материальны? Мысли о установщике 10.8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|