Pull to refresh

Comments 118

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

и винапи, и кутэ имеют право на жизнь в университетских стенах. А то отсутствие альтернативы немножно удручает. Как пример — знакомый жалуется, что какой-то курс по компиляторам, а их заставляют делать докладики лишь по одному компилятору. И все… И не попрешь.

У меня же другая жалоба, если можно так назвать. Учусь на той же кафедре. Вот только С преподают отвратно. Рассказывают по 3 часа про структуры(Шилдт, 5 минут), да еще так, что понять никто не может. Огромные примеры, а синтаксис в общем виде написать не додумается. О стандартных библиотеках ничего не знает и т.д. В курсовой запрещает использовать гуи(рано вам винапи) и т.д.

Делали к зачету сайт — на зачете выяснилось, что ей нужно еще это, это и вот это. А на лекции ничего не говорила про все «это». В итоге сдали человек 5 на потоке за первый раз(из 84, ну и я по счастливой случайности сдала)

Сложность — бд написать с псевдогуем под консоль. Обязательно винда, хотя половина линуксоидов, в т.ч. и моими стараниями)

Честно говоря, для меня данная методика преподавания — нечто, покрытое мраком. Непонятно чего мы в итоге добьемся.
> Делали к зачету сайт — на зачете выяснилось, что ей нужно еще это, это и вот это. А на лекции ничего не говорила про все «это».

Умение доказать начальству свою правоту — это основной навык, который можно получить в инсте. Но большинство предпочитает лизать задницу — это легче.
WinAPI/syscalls студентам нужны, т.к. это бызовые навыки для низкоуровневого программирования.

Qt/MFC/VCL — как правило что-то одно по выбору. В нашем универе было 1 из этих 3, по выбору руководителя группы. Моему потоку попался MFC, потоку девушки — Qt.
НУ вы бы рассказали, какие задание задаете вы?

1. Из тех, которые запомнились (не считая различных математических алгоритмов) были создание клиент-серверного приложения по типу чата, генератор сетевых пакетов любого вида с удобным гуи, создание компилятора какого либо языка (например си). Вроде как-то все справлялись.

2. А что за дебри WinApi? Это же по сути описание функций. Нам их никогда не давали, все искали сами в msdn (там и примеры есть), не вижу смысла тратить учебное время их изучение — если захотеть то можно все быстро найти самому. Почти то же самое и mfc — можно дать пару типовых примеров, а дальше дело пойдет само.
1. Я не уточнил — студенты 1 курс, только начинают изучать, так что сложно им по сети пакеты гонять будет :). 1 семестр просто изучение языка и кое-что из ООП, 2 семестр файловый ввод/вывод и гуи, для начала WinAPI, потом немного MFC.

2. У нас пишут программку работающую с какой-то предметной область, хранят и работают с записями в файле заданного формата, затем меняют консоль на гуи. Ну и в гуи тоже можно ограничиться чем-то дубовым, а можно наворотить интерфейс такой что очень долго писать будут :)
Гуи нафиг! Тем более такие.
Если основы прошил, берите шаблоны, stl, умные указатели и т.д. Если и это осилят, то можно и boost дать.
А кто и когда их потом будет учить этому гуи? С них потом будут это трясти, а никто не научил… отдать на откуп самоподготовки? очень сомнительно…
Простите, кто из них это будет трясти? MFC сейчас на уровне поддержки старых полуразваленных проектов. Нынче ниша С++ перемещается в геймдев, эмбеддед, RToS таски. Вы им Qt побольше покажите. Покажите им на практике, что хороший дизайн (в архитектурном смысле) — это залог успеха, а тяп-ляп — будет переписывася сотню раз.
Ну вот MFC, пожалуй, это то чем можно было бы пожертвовать, очень вероятно что так и будет, но WinAPI никуда не денешь, мне кажется основу понимать нужно. Qt вариант конечно, может стоит и туда пойти.
Вот WinAPI, уже с первого курса подсаживают студентов на Windows. Это плохо, говорю как студент, который мучался с преподавателями не терпящими другие платформы.
Я терплю другие платформы, дело не в этом. Я не могу обеспечить студентам доступ к разным платформам разом, в классах есть определенный набор продуктов на которых идут занятия, если студент написал нечто дома под линуксом или чем-то еще и способен показать на имеющейся платформе — сколько угодно, если не может — ничем не могу помочь. Кстати программы на том же Qt мне пара студентов приносили, я их принимал, конечно там где целью не было изучение WinAPI :)
Ну тогда ладно. Хотелось бы все таки увидеть задания, с которыми «студенты справляются все хуже и хуже»
По сути «база данных», работающая с предметной областью (выбирается студентом, класс с 4-5 аттрибутами), пишутся в файл заданного формата плюс интерфейс ко всему этому, консоль, позднее гуи.
Звучит достаточно легко. У меня на первом курсе был курсовой с графикой обход конем шахматного поля. Правда на паскале
Мы подобные задачки на 1ом курсе на асме решали :)
Все, Иван, они терпели, только ты, почему-то, не хотел с нами ходить и сдавать Шубина на linux, а сдавал виндовый, не напомнишь почему, кстати? ;)
> создание компилятора какого либо языка (например си). Вроде как-то все справлялись.
Как выглядел компилятор?
ну программа, которая на выходе возвращала места ошибок в программе, если они имелись
Больно круто для первого курса. Мы такие на 5 писали.
когда я писал то сообщение там ничего про первый курс и не было сказано, это уже потом автор добавил.

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

Во втором нужно было написать линейно-конгруэнтный генератор псевдослуч. чисел, простенькую «базу данных», реализовать СДБ дерево на выбор, вручную сделать дефрагментацию памяти программы.
И еще был курсовик — задания давались на группу(2-3 чел) у нашей было задание написать крестики-нолики с простым гуем, которая бы обеспечивала игру по сетке с программой конкурентом другой группы:)

В третьем семестре уже рассматривались всякие железно-зависимые фичи вроде оптимизаций.
Обычно на ~2. По крайней мере в нескольких знакомых мне вузах именно так.
Это только «верхушка» — семантический анализатор.
Анализатор с нейтрализацией ошибок?
Нас помню заставляли наизусть заучивать структуру оконного приложения под WinAPI и что делает та или иная функция. Например, что делает TranslateMessage или там DispatchMessage.
У нас в вузе C++ ведут в рамках предмета ООП. Точнее говоря, вместо него — по сути никакого ООП там нету, разве что примитивное наследование. Уровень сложности минимальный. Никому не интересно — в основном потому, что лабораторных хоть и очень мало, и задания в них простые, но та кропотливость, которая требуется для их реализации удовольствия не доставляет.
Да, всё у нас в ИТМО очень странно устроено. Я на 1м курсе ФИТиП'а, на ИС. Преподают нам паскаль. причём сейчас всё пытаются пугать Делфями.
В первом семестре не давала жить Э.В. убивая блок-схемами(придиралась ко всему).
Говорил на счёт изучения иных языков с Т.В., она сказала что в следующем году планируется изучение Java. Про С/С++ никто ничего не знает.
Очень плохо что в ВУЗах не знают что нужно преподавать(или хотябы на чём нужно делать акцент) и меняют каждый год учебную программу.

Это так, крик души.
Я на 2 курсе ЕНФа, специальность та же. Э.В. мы иначе как «госпожа» и не называем :)
Т.В. правильно говорит — те, кто ходят в академию программирования (для хабралюдей: 20к за два года) учат сейчас джаву (мы уже второй курс).

Меня скореее бесит подмена понятий. Предмет называется ООП, преподают — C++. Раздражает сильно.
Да, по сути, из нас готовят эникейщиков. По крайней мере лабы на парах по информатике требуют владение знаниями от пэйнта до макса.
А вот ООП это да, преподают сразу на примере языка.
В общем, как я понял, составители программ сами не знают чему хотят нас научить.
вы уже начали делать мего-лоло-курсач по Ораклу? :-D
Я щас на втором курсе ИТиП, каф ИС. То что вам парят про делфи это фигня, в конце 2 семестра попросят написать несложную лабу на Делфях(мини игра или парочка классов). У нас щас есть предмет, ооп(с++) делаем лабу:2 класа, парочка конструкторов, переопредление операций, простейшие левые методы. Потом у нас есть факультатив Java, пока не знаю че там, завтра первая пара. Летом практика будет… А вот с 3 курса Java уже будет как отдельный предмет.

з.ы. френди)
Странно у вас. У нас Java с начала года, так всё то же самое.
На академке у нас тоже Java, но как бы можно сказать что ее и нет :) А щас вот еще бесплатный факультатив сделали…
Да, нам на первой паре во 2м семестре Э.В. рассказывала что будем ООП изучать на примере делфи. Сказала что «это так сложно и ужасно».
Слава богу^W Т.В. что теперь нам на практике поставили В.В., он всё нормально проверяет и говорят что как «курсовую» лабу по ООП в конце семестра даст что-нить интересное.
Впрочем, мне повезло что я владею ООП уже не один год, да и тем более что сдавать надо будет В.В…

зы: зойфрендил :3
Есть большая проблема с преподавателями, не понимающими ничего в программировании.
Как можно изучать С++, если показывая исходный код программы, которая несколькими строчками выводит специально подобранные числа. А остальные 500 строк программы просто объявление левого класса и описание его функций.
На вопрос «Где в вашей программе реализован этот механизм» — показываются любые строчки кода «Вот здесь, эта функция». Как?????????
Как далеко стоит заходить в дебри WinAPI/MFC и, опять же, на какого уровня сложности работах?

А какое отношение они имеют к C++? Никакого. ИМХО их в обязательном порядке вообще не надо касаться. Я практически ничего не знаю про WinAPI и MFC, но это не мешает мне разрабатывать программы на С++. Целевая платформа просто не только Windows…
Вообще как предмет называется? Для начала не плохо бы освоить основы языка (в т.ч. и ООП) и STL.
Немного уточнил в топике.
Сам думаю вот что надо бы STL, но это в сторону усложнения курса еще получается… и так тяжело все идет, а чем можно пожертвовать в курсе и упростить непонятненько, вроде все такое нужное :)
STL стоит ограничить контейнерами, итереторами. Потоки ввода-вывода очень поверхностно, без лишний и не используемой шелухи.
Угу, углубляться далеко не надо. Но показать что она есть и простые примеры использования надо.
STL освоить надо, что бы велосипеды каждый раз не изобретали. А вот с GUI на мой взгляд вообще не нужен. Если поймут основы, то с GUI сами разберутся. А то получается, кнопочки лепить умеют, а вот программировать нет.
MFC непонятнее STL, по крайней мере для меня. STL я поначалу изучил сам, по Страуструпу, а с MFC я долго мучился, в итоге использую для GUI Qt.
Единственное, что мне запомнилось после изучения Си/Си++ в ВУЗе, это то, как девушка имея 5 баллов в зачетке не смогла написать цикл for.
ха, у нас такие девушки с пятерками в зачетках, после проваленного экзамена по методам защиты информации шли жаловаться к декану, а тот потом нагибал преподавателя (как же ж так, студентки на красный диплом идут!)
:)
У нас один препод написал подобной студентке в зачётке «дура» вместо оценки.
Именно из-за этого с универов выходят отличницы программистки и работают секретаршами, и двоечники программисты, как ни странно, работающие программистами
Люто, бешено плюсую. Но зато как сотрудники кафедры гордятся этими отличницами-«программистками». Ставят их всем в пример, мол вон как жить надо.
>>Собственно веду я этот C++ и вижу что студенты справляются все хуже и хуже, и нужно что-то делать. Толи учу плохо, толи задания сложные или совсем не интересные…

А какой именно курс и сколько на него дается часов? Есть ли другие курсы по програмированию или близко к нему?

>> 1. Какого уровня сложности выполняют работы по C++ у вас в ВУЗе?

По-разному, зависит от преподавателя. Кто-то дает большой курсовик, а кто-то кучу мелких задачек. Лично я, когда немного читал курс, делал так: с десяток-другой простеньких задач + 2 задачи посложней.
Простые: сортировка, поиск и прочие базовые алгоритмы.
Сложные (относительно): тут я ориентировался на курсы, которые читаются паралельно. Например, читали им про ИИ, я им предложил написать шахматного клиента.

>> 2. Как далеко стоит заходить в дебри WinAPI/MFC и, опять же, на какого уровня сложности работах?
Давать обзорно.
Времени — два семестра, как уже писал это 1 курс и по сути близких курсов нету еще. Под сортировки, структуры данных есть отдельный курс, читается позднее, на 2 курсе.
На вид предлагаемая выше «база данных» ничего сложного из себя не представляет.
Что-то я даже не могу представить, где тут сложности могут возникнуть. Во всяком случае, мы на первом курсе писали подобные программы, сложностей у нас не возникало — не справились с заданием пара человек, но это нормально.
Нет, всегда конечно есть несколько человек, которые в силу лени и прочих причин не справляются, но основная масса должна справляться.
Учусь в КПИ на первом курсе. С++ ведется очень вяло, в том смысле что практически повторяется Pascal — ничего особо интересного в заданиях нет — все уже пройдено, хотя они наверное направлены на изучение новых операторов. Хотя и с этим заданием не у всех все гладко идет.

Лабораторные большая часть моих одногрупников безуспешно пытается написать на занятии. В конце-концов берется чья-то готовая прога и при помощи убивающих допросов автора с горем пополам переписывается под свои нужды.

Некоторые в состоянии транса пишут код и потом дают тебе «пофиксить», а там даже понять, что хотел этим сказать автор бывает очень сложно.

Си у нас начался только во втором семестре. Задания:
1)передать через командную строку параметры программе и посчитать значение по формуле.
2) отсортировать массив и записать в файл плюс дату и время, когда совершили операцию.

А вы своих студентов писать протоколы заставляете? Или руководство заставляет вас?
Протоколы? что именно вы имеете в виду? :)
Думается мне это в смысле «отчёты о лабораторных».
Тогда практически нет, совсем немного — просто небольшой перечень вопросов для подготовки к защите работы.
в тетрадке для каждой лабораторной пишутся: цель работы, теория, блок-схема, результат работы, выводы (чему научился и пр.), код программы.
С++ не нужен — это самый вредный язык (после BASIC). Написать безопасную программу на нём невозможно.

Начинайте учить Lisp/Sheme и Ruby. Потом переходите к практическим занятиям с Java.
нельзя все так просто взять и отменить — существует программа, которая разрабатывается в соответствии со специальностью и т.д. и т.п.
и если в плане обучения стоит с++, то его никак нельзя заменить ruby или lisp-ом
ой да ладно, по-моему, если человек будет с самого начала изучать предложенные вами языки, то он станет быдлокодером. А так плюсы — очень хорошая прослойка между низкоуровневым и высокоуровневым программированием — то есть становится понятно как, что и почему работает.
C++ изучать не надо — достаточно знаний ассемблера и C.

Быдлокодер, знающий Lisp, уже — не быдлокодер, а чёткий пацан хороший программист. Основы языка изучаются за день-два, остальное — алгоритмика — структурирует мышление получше тупого зазубривания STL, «частных» случаев и так называемых «побочных» эффектов C++.
С Ruby уже другоая область открывается — область динамичесих языков. С Java — практика, приближенная к реальным (производственным) задачам.
А асм знать совсем необязательно. с++ в этом смысле более сбалансированный язык — не углубляется в дебри системы больше чем нужно.
Почему человек, знающий плюсы не будет хорошим кодером? Там тоже основы (без расширений языка) изучаются за пару дней. И мне почему-то кажется, что лисп — не самый лучший язык для изучения алгоритмов.
И почему на плюсах опять же не будет практики, приближенной к реальным задачам?
Научит преподаватель писать безопасные программы — человек будет писать безопасные программы и на С++, не научит — будет писать потенциально опасные приложения даже на TCL.
Не забываем что язык программирования это лишь инструмент.
я обучаюсь на первом курсе по специальности «математическое обеспечение и администрирование информационных систем»
первый семестр писали в visual studio 2008 на с++ под консоль. через пару лаб переходим на формы — преподаватель сказал, что mfc для нас будет наказанием за тех грехи, что мы не совершали и потому кодить будем под Turbo С++ Explorer
если есть какие-то вопросы по программе обучения, буду рад пообщаться

прочитал ветку и очень удивился как плохо преподают с++
буду гордиться преподавателями со своего вуза — нам в сентябре без всяких (а+b)-задач задали сортировать массивы. преподаватель по практике проводил внеклассные занятия, в общем подготовка очень хорошая
а с нового года поставили нового препода — аспирант, бывший ACM-олимпиадник — в общем жарят нас теперь еще хлеще :-)
Как далеко стоит заходить в дебри WinAPI/MFC и, опять же, на какого уровня сложности работах?

вообще не заходить в этот дремучий лес. Если уже надо писать на GUI на C++, то используйте Qt и не издевайтесь над студентами
Пока не очень ясно — по какой специальности? Какой предмет — C++ на практике? Каковы цели программы?
Могу сказать как мне преподавали Си (без плюсов).
Было все сделано просто. Хочешь остаться в ВУЗе — учись. В результате прогать начали даже те люди, которые за компом-то мало сидели… Еще нас сразу посадили на линукс. Народ на свои буки везде линукс поставил).
Для зачета нужно написать калькулятор алг. выражений ((1+4/6)*6 и тпх).

PS:
СПБГУ МатМех направление ИТ
Осталось вопросом: На что рассчитывали люди, идущие на направление ИТ, которые «за компом то мало сидели». Что им скажут «ааа, ну вы вот компьютеры не особо любите, не учите это если не хотите» :)
На то что их всему научат. У меня в группе таких людей больше половины. И некоторые действительно научились.
Учусь в КПИ («Киевский политехнический институт») на факультете ИТС (Учебно-научный Институт телекоммуникационных систем ), C++ начали изучать со второго симестра первого курса, 2 лекции по красной неделе, 2 практики по черной. К этому моменту сдали 3 лаболаторных работы, на следующей неделе сдаем 4 — ю. Пока проходим базовые вещи. Если есть желание могу скинуть задание на первые три работы, и рассказать более детально про преподавание.
Интересно будет посмотреть какие лабы в других вузах…
Кстати, действительно у многих есть проблемы с программированием.
мы в первом семестре прошли:
1 лаба) ввод-вывод, циклы, форматирование, операторы ветвления, массивы
2 лаба) математически функции (вычисляли сходимость рядов)
3 лаба) функции
4 лаба) работа с массивами — сортировки, минимум-максимум и т.д. ( в т.ч. динамические массивы)
5 лаба) матрицы
6 лаба) строки
7 лаба) структуры
8 лаба) динамические структуры (реализовывали список) — введение в указатели
+ РГЗ (на выбор студента)
во втором семетре
— новый преподаватель :-) под реализацией подразумевается и работа со структурой — ввод, вывод, поиск максимума-минимума, сортировка и т.д.
1 лаба) реализация стека
2 лаба) реализация очереди
3 лаба) реализация бинарного дерева
4 лаба) тектовые файлы + бинарные файлы
5 лаба) создание класса
6 лаба) наследование
и пока что больше ничего не было :-)
Если не сложно, киньте на мой_ник<на>list.ru
Учусь в Херсонском государственном университете.
Проблема в том что нас учили не языку, а технологии. Все лабы набо было чётко писать в 6 студии. Другие иде — нельзя.
Язык я выучил сам.

Сожалею теперешнему 1 курсу, с/с++ заменили на С#. Учебній план по дисциплине ООП был под него переписан, соответвенно.
Почитал коментарии, возник маленький крик души. Не надо думать, что студенты маленькие и тупые. Они (а когда-то мы) очень и очень умные, просто ленивые. Причем на первых курсах скорее умные, а на последних скорее ленивые. Именно поэтому уже на первых курсах надо давать сложные и интересные задания. Те, кто не справятся, на самом деле просто не захотел — им можно поставить зачет/экзамен и не тратить на них время. Зато те, кому это действительно интересно, получат пищу для ума. Поэтому гонять пакеты по сети — да, конечно! Кто не сможет, пусть просто гуи нарисует. Поверьте, студент, прошедший через сложные задания, через пару лет будет на самом деле понимать, для чего придумали ООП и написали кучу библиотек, потому что он пробовал ковырять это руками, понимает, что там внутри, и помнит, какие проблемы возникали.
Резюмируя — надо давать изначально сложные задания, но которые можно выполнять по частям, от простого к сложному (сдал первый этап — допуск, второй — зачет, третий — экзамен автоматом… студенты это любят), создавая здоровую конуренцию и заинтересованность.
Тех кто что-то хочет и что-то может видно, как правило для них задание изменяю в сторону усложнения, именно для того чтоб могли покопаться :)
Насчёт студентов ленивых. Когда я пришол в универ, но было желание и инициатива, но мои преподы частично меня загубили. Я понял что можно на них забивать и это может сойти с рук.
Вот так на тяп-ляп сделал, оценку получил и иди дальше.
К сожалению, дальше потом учиш сам для себя.
Это только моё мнение, но и мнение некоторых моих одногрупников.

Сейчас я во Франции на стажировке, тут система немного другая. Лаб как таковых нет, 1-2 практических и всё. Дальше даётся проект серьёзный на недели 2-3 и ты его сам или в команде (зависит от уровня сложности) делаешь. Назначается чёткий дедлайн, опоздал — незачёт и всё.
Мне кажется вы должны чётко определить для себя задачу. Что вы хотите от этого преподавания? (варианты: для галочки, выпустить макс. число студентов, подготовить профессионалов, и т.д.)
Когда вы ответите себе на этот вопрос, нужно будет поставить этот вопрос перед студентами. Потому что формат обучения сильно зависит от того, что хочет обучаемый. (варианты: получить зачёт, получить пятёрку на экзамене, получить обзорные знания, стать профессионалом и т.д.)
И тогда уже с каждым (да-да, с каждым индивидуально) вы будете работать в соответствии с тем, что каждый из вас друг от друга хочет.
Скорее всего, студенты поделятся на «уровни». От тех, кто просто хочет зачёт, до тех, кто хочет стать профи. И с каждыми у вас будет отдельный разговор. Вот тогда вы сэкономите друг другу массу времени и нервов.
Если эти мои мысли вам окажутся небезынтересны, я напишу дальше.
Очень бы хотел чтоб стандарт допускал оценку 2 в дипломе, я б ставил ее с чистой совестью, 3 это уже некоторый уровень знаний, к сожалению, многим рука не поднимается ставить эту оценку.
Дело не в этом. Вы можете предложить вашим студентам несколько уровней обучения. Чем ниже уровень, тем проще для них будет процесс обучения. Если человеку нужно что-то большее, он должен согласиться вкалывать.
Скажем, нижний уровень — получить четвёрку. Вы продумываете для таких студентов программу (например, обзорные знания, минимальные навыки, зазубривание десятка лекций). Поверьте — если человеку больше не нужно, он всё равно больше не сделает. Для уровня выше («пять») — предлагаете свою программу (средний уровень). Для тех кто хочет этим заниматься профессионально — свою.
И все программы озвучиваете в самом начале. Всё должно быть прозрачно.
Студент сам выбирает близкий ему уровень обучения, за который вы дерёте с него три шкуры. Да, он выбрал «четвёрку» — но пусть за неё как следует ответит.
Ну и последнее. Должен быть личный контакт не менее чем раз в неделю-две. Иначе человек «отрывается» от процесса впитывания знаний и переключается на что-то другое. Например, разделите контрольные точки на мелкие летучки, которые будете проводить раз в 1-2 недели (для каждого уровня — свои). С обязательным разбором полётов для каждого и возможностью пересдачи в течение недели.
А, кстати. Уровни и прозрачные правила игры нужны как раз для того, чтобы был чётко виден нижний уровень, за которым вы в самом начале говорите студентам, что не будет даже тройки.
На первой же сессии надо отчислить десяток человек, никто не даст это сделать. Те кто даже если и поймут уже к тому времени что пришли не туда, сами уйти побоятся. И вот ищешь причину чтоб ставить тройки, конечно в совсем клиническом случае это не делаю, но результат все равно удручает.
а что мешает отчислить?
я бы с удовольсвием отчислил треть групы, они пришли на физмат не ради того чтобы учится.

ЗЫ — хотя я сам пошол в универ чтобы от армии откосить :)
Я понимаю что лучше меньше, да лучше, но нет студентов — нет работы, со всеми вытекающими.
Кроме того мы имеем то что имеем, в смысле получаем в том виде студентов в каком их выдают школы и других нету.
зарплата зависит от количесва часов, а не от колво студентов. или я не прав?

естественный отбор как бы

хотя с другой стороны — если медведя научили ездить на мопеде, то и любого человека можно научить програмировать — надо лиш бы стимул
Идейно прав, но на количество тоже завязано.
значит всёже берём количеством, а не качеством )
мало человек в группе — на занятиях присутствуют несколько групп — всего часов меньше, разве нет?
только разве что подгрупп для практический занятий
Я вам расскажу в чем проблема :) Мы С++ под видом предмета ООП изучали на 3 курсе (КПИ, прикладная математика). И если честно, я его понимал с трудом, лабы делал тоже с трудом, в основном по мотивам чужих. Сейчас я системный программист (Windows/Mac OS, в основном программирую девайсы сидящие на USB, PCI). По знаниям С++ (именно С++, а не сопутствующих технологий) мне точно не было равных на прошлом месте работы, и на новом месте работы по знаниям С++ я тоже ближе к верхушке :) Штука в том, что освоил я С++ по книгам, сам на 4-ок курсе увлекшись идеей геймдева. Книги и знания проглатывал большими количествами. И так, что же не так:

1. Преподаватель и студент разговаривают на разных языках. То, что преподавателю кажется понятным и очевидным, может вызвать большие затруднения у начинающего. Более того, на вопрос все ли понятно, вся аудитория ответит молчаливым согласием :) Т.е. нужно пояснять как можно более понятно и элементарно. Не делать упор на конспектирование. Оно при изучении С++ врядли будет полезным. Только будет отвлекать.

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

3. Не нужно пытаться охватить все уголки языка. Достаточно азов, и заинтересованные студенты сами восполнят пробелы в знаниях.
готовые лабы — подарок от курса старшего? :)
плавали, знаем.
Знаете, вот по поводу мотивации преподавателем студента, хочется сказать что-то местами не очень цензурное. Студент, привыкший что ему не просто разжуют, а ещё воткнут в рот и заставят проглотить, никогда не будет мотивирован в данном предмете. (День 634-й. Ну пожалуйста, ну Димочка, ну съешь этот бутербродик с красной икрой, умоляю!)

Студент должен привыкнуть к тому, что обучение данному предмету он должен за-ра-ба-ты-вать! Ежедневно. И что если он не будет ежедневно рвать себе попу в попытке догнать поезд, ему пожелают успехов и счастья в жизни.

Естественно, это означает что институт должен быть заинтересован в том, чтобы вырастить специалистов, а не обласкать не менее чем N шалопаев в год.
Разумеется, это также означает что студент должен изначально Хотеть изучать этот предмет. И вот над этой мотивацией ВУЗ (а не сугубо данный преподаватель) должен очень сильно стараться.
Потому что мотивированный студент стоит сотни будущих менеджеров по сбыту сигарет в ларьках.
ОК. Вам дают литературу, и рассказывают на лекциях то, что совсем вам непонятно. Как думаете, сколько процентов студентов будут изучать предмет самостоятельно, рвать и метать? 5%? 10? Ну может 20. Остальные этого делать не будут. Студент без мотивации — ленивый упырь. И что, 80% возьмут да и отчислят? Нет конечно. Предложеный вами метод не эффективен и не педагогичен.

Я считаю так: будь ты хоть семь пядей во лбу специалист, но если ты не можешь пояснить даже тупому, то греш цена тебе как преподавателю :) К сожалению были у нас и такие.
Нужно мотивировать студента не поглощать знания, а стремится, самому их получить. Об этом я собственно и писал, а вы увидели совершенно другой смысл в моих словах.
когда учился, то Си/Си++ практически не преподавали. Изучал сам. И практика помогла (бесплатная =)), там не стали няньчиться и заставили писать кусок кода для клиент-серверного приложения =) благодаря Рихтеру узнал многое!

в универе, где 2 семестра преподавал, синтаксис абсолютно не давали, а сразу «с лодки в середину океана» — делали важные куски классических ОС — библиотеку потоков, менеджер виртуальной памяти и прочее. «Доплыли» практически все =) Правда, класс не по С++, а «Введению в ОС». (отдельного класса по С++ нет)
кстати, вспомнил, что мой первый пост на хабре был как раз в этом направлении
habrahabr.ru/blogs/edu_2_0/44855/

буду рад, если чем-то пригодится.
Обучать 70% студентов на первом курсе (да и на пятом, зачастую) С++ — совершенно бессмысленно. 40% идут на какой-нибудь ФТК в надежде, что их там «научат программированию», еще 30% играют в контру и всаживают деньги (ну т.е. совершенно бессмысленные люди). При этом из оставшихся где-нибудь, скажем, 20% действительно что-то умеют и работают (станут нормальными разработчиками), остальные — поучатся и так ничего сделать и не смогут. Сужу по людям, которых вижу вокруг.

Вообще, Страуструп пишет в своих книгах, как надо обучать языку.
у меня в групе 22 девчонки и 9 парней — специальность Прикладная математика

большинсво девчонок поступили сюда, думая что это что-то типа курсов пользования компьютером. а тут им матан и анал геометр как дали.
хотя до сих порт пчти 2/3 выжили (уже 5 курс)
Кто спорит? Другое дело, будут ли они делать что-то по специальности? Наверняка, нет. А ведь их место могли занять и более адекватные (в этой области) люди.

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

Кстати у буржуев есть различия в направлениях подготовки — компьютерные науки и софтверная инженерия.

первые — в общем наш примат — в большей части должны быть в инженерию и науку работать (иследования, новых алгоритмы)
вторые — тупо прогеры, аля оутсорс или работа в продуктовой компании (мелкомягкие, гугль)

у нас как такового различия нет.
Хотя в моё вузе вроде со след года такое разделение планируется
У нас (в смысле, в Питере) жестокие прогеры, прогеры с уклоном на экономику (математические методы в ней, или что-то такое, но тоже прогеры) и еще кто-то. (3 группы)
>> вторые — тупо прогеры

не совсем правда, а если еще точнее, то совершенно неверно =)
Видимо, программисты-математики (и инженеры)?
грубо говоря, да.
software engineering — это инженерия и уж никак не «тупо прогерство», там тоже многие занимаются исследованиями.
у меня такое разделение на кафедре уже черт знает сколько лет существует
Безусловно изучение ООП требует времени. Возможно, автор топика слишком много стал требовать от студентов.
Всё же стоит начать учить людей кодить на Basic/C#/Java/ANSI C, чтобы начать кодить. Затем обучить ООП-теории. А вот уже потом С++.

40% и ФТК — глупость. Туда идут будущие «математикофизики с алгоритмическим складом ума». Только эпические слоупоки не знают куда идут.

Так же стоит указать что есть 1% людей которые решили что ВО им не нужно, такие как ueasley. Однако да, самообучение нужным знаниям иногда творит чудеса.
С++ надо обучать сразу после изучения элементарной информатики, об этом твердят и Страуструп, и преподаватели из того же MIT.

«Слоупоков» у нас в стране вполне достаточно.

С ВО у нормальных людей проблем нет, я зарабатываю на уровне третьего-четвертого курса, знакомые — больше.

Бессмысленную дискуссию я предлагаю не продолжать.
А он прав, кстати, само по себе ВО в нынешней форме — не ценно совершенно для тех, кто хочет быть специалистом.
Ну я меня тоже сейчас второй курс по Си++, advanced, однако усилий для изучения языка не прилагаю, т.е. знаю синтаксис, базы, но я в будущем не собираюсь заниматься прикладным п., а веб-программированием.
Так-что сам занимаюсь самообразованием (php знаю очень хорошо, 2 года повозился, ну мукль, js, css это понятно, ror на среднем уровне, теперь под питон копаю — по мне красивый язык)
К сожалению в универе единственный предмет связанным с тем что мне интересно — изучает базы которые я усвоил ещё в 16 лет кажется (css, немного php), так-что договорился с профессором — продемонстрировал что знаю ну и он разрешил не посещать его лекции )) Благо универ с экономической направленностью где изучаем 4 предмета экономической направленности, которые вообщем-то мне достаточно интересны, так-что если вздумаю работать программистом в банке, авось бонус будет)

писал сообщение, думал родится мысль в тему, но коммент видимо — оффтопик, а стирать всё жалко… Кстати, 80% моей группы пошли на IT вслепую, ибо ни понятия о том чем им предстоит заниматься, ни желания что-либо учить — у них нет. Думаю такая ситуация не только у меня в универе.
UFO just landed and posted this here
Познав Си считайте что вы познали все.

Это шутка?
UFO just landed and posted this here
Так и надо говорить, что Си развивает мозги.

А изучив Си, вполне возможно, что человек никогда не поймет тот же С++ и ООП вообще.
UFO just landed and posted this here
MFC уже точно нет смысла обучать (его уже сам Microsoft не рекомендует, указывая в сторону Windows Forms).
Хм, а у меня такая же специальность. Это не вы у меня С++ вели?
у нас почти сразу с паскаля на 1м курсе перешли на C# (с++ тоже был, но лишь 1 семестр). кроме 2-3 человек из примерно 40 — никто его даже не рассматривал на возможность к изучению — одним это просто не интересно, другим «синтаксис непонятный»
Sign up to leave a comment.

Articles