<<LexuS>>
21.1.2007, 2:42
Читал-читал, решил влезть, уж очень мне интересна пара моментов. Сразу скажу, что лично сам на зачеты и комиссии по программированию не попадал - всегда получал автоматом. Ну если не считать второй семестр, когда независимо ни от чего мы все сдавали "зачет". Ну и там дело ограничилось тем, что преподаватели просто банально смотрели написанные в течение семестра программы, задавали по ним пару простеньких вопросов и спокойно отпускали с зачетом(во всяком случае у меня было именно так). Тут недавно разговаривал со своим одногруппником, которому "посчастливилось" попасть на комиссию по программированию в этом семестре(ну уже прошедшем), и слышал от него, что один из вариантов сдачи зачета состоит в том, что студенту дается задание написать программу на листочке(!) без возможности пользоваться хелпом по синтаксису или там например MSDN-ом и иже с ним. Честно говоря меня подобная постановка просто поразила. А скажите пожалуйста, к чему подобные проверки?! Или знание программирования состоит в знании наизусть всех функций и классов из STL и кучи стандартных библиотек с++? Вот честно, я например сейчас не вспомню объявления и синтаксис функций для поточного чтения и записи в файл, которые входят в одну из стандартных библиотек. И это абсолютно не помешает мне написать программу использующую это, будь у меня доступ к хелпу(да даже достаточно просто заголовочного файла с объявлениями данных функций) и минут 10-15 свободного времени. Это первое.
Далее. Семинары. Ну, в первом и во втором семестре я прилежно

ходил на семинары по программированию(хотя лично для себя ничего нового, кроме пары численных методов не узнал). В третьем семестре семинары были, уж извините, какой-то тихий ужас. Был на первых 3-х семинарах, и на каждом семинаре приходил новый "преподаватель", который узнавал у студентов что они проходили на предыдущем семинаре и в соответствие с этим рассказывал новый материал. В итоге получалось, что материалы соседних семинаров пересекались процентов на 70. Систематики изложения материала не было вообще никакой. В итоге за три семинар мы прошли объем материала, который влегкую осознается, при том гораздо систематичнее, за пол часа в индивидуальном порядке. Я прекрасно понимаю, что у основного семинариста могут быть личные проблемы, он может уехать на конференцию, быть занят научной работой, заболеть в концы концов. Но систематика должна же хоть какая-то оставаться. А это еще все наложилось на то, что в 3-м семестре изучается матлаб, который лично я видел на момент начала семестра в глаза первый раз и винапи, в котором я более менее разбирался, но опять таки глубокого понимания не было. Как итог, матлаб я так до сих пор и не знаю(хотя и сдал по нему коллоквиум одним из лучших в группе), знаний винапи по сравнению с началом семестра у меня не прибавилось(правда как выяснилось моих текущих знаний для получения зачета было итак вполне достаточно). А ведь это время могло было быть потрачено с куда как большей пользой...
Ну и наконец - практикум. Может я конечно чего-то не понимаю в этой жизни, но те задачи которые нам предлагают на практикуме, настолько узкие и шаблонные, что я честно говоря с трудом понимаю их смысл вообще. ВСЕ даваемые задачи были направлены только на изучение синтаксиса языка и использования тех или иных синтакстческих конструкций. Полтора года учить синтаксис с++?! Крутовато, не находите... Не было никаких творческих задач, все задачи были жестко регламентированы рамками, что где и как делать. Помимо того, что это абсолютно не развивает умение самому исследовать те или иные методы и возможности языка на предмет применимости в поставленной задаче(так как было заранее оговорено кто что и каким методом делает), а так же притупляет(вернее исключает впринципе) понимание алгоритмов, на которых вообще говоря все программирование и строится, еще и образовывалась такая практика внутри группы, что дается некое задание, пара человек из группы, которые в программировании разбираются или хотят разобраться делают это задание честно сами, а вся остальная группа под копирку списывает их работы и спокойно сдает их семинаристу. В итоге, как результат, все в группе кто хочет получить зачет - его получают(по набранным баллам за работу в семестре), при этом реальных знаний по программированию для этого вовсе и не нужно. На мой взгляд, будь задания более творческими и менее шаблонными, ситуация кардинально бы поменялась. Кроме того, я не вижу смысла в заданиях "огрызках" на 15 минут работы и 10 строчек кода... Пусть задания будут большие, на 2-3 недели, пусть для решения этих заданий нужно будет не просто переписать пример из хелпа, а осознать, как все это работает и сделать на основе этого не что-то абстрактное, а решить конкретную задачу. Конечно, это все мое ИМХО, и возможно я в чем-то глубоко ошибаюсь... Буду признателен, если мудрые Старшие Братья и Сестры укажут мне где и в чем я не прав.
PS На тему GUI и прочего... Ну неужели, человек, который разбирается в программировании, не сможет сам освоить некоторые вещи связанные с построением графических интерфейсов, особенно только в рамках винды... В крайнем случае, всегда можно дать тот же Delphi и/или C++Builder, или что еще лучше и полезнее тот же Qt. Проверено, что клепать в подобных IDE графические интерфейсы может человек даже не знакомый с программированием вообще. Во всяком случае на уровне примитивов... а судя по тому, что я уже видел, особо больше и не требуется.
ivandasch
21.1.2007, 13:41
2 <<LexuS>>: Qt не IDE. А так все верно

.
<<LexuS>>
21.1.2007, 17:41
ivandasch
Да, конечно, не прав. Просто встречал под линух нечто навроде "Qt designer", и ассоциации именно с ним возникли:)
olya.m
Конечно, у каждого свои вкусы и пожелания, наверняка кому-то проще делать много типовых задач, чем что-то реально полезное:).
Кстати, на тему реальных проектов. Мне вот например очень интересно, и хотелось бы в этом поучаствовать. Да и вообще, хотелось бы, скажем так познакомиться с кафедрой поближе, так как если ничего экстаординарного не случится, то очень хочется пойти именно на КМФ, да и курсовую в следующем семестре буду делать именно на вашей кафедре. Поэтому был бы не прочь узнать об этом поподробнее. Да, и еще. Я слышал, что тот же Константин Сергеевич занимается в том числе и в области IT. Вот на эту тему тоже интересно - можно ли будет после поступления на кафедру заниматься именно в этом направлении, или это все же только как нечто дополнительное, а оснавная работа будет все равно направлена в области филики и математики?
<<LexuS>>
Рада Вашей заинтересованности.
Напишите мне пожалуйста, личное сообщение, я постараюсь ответить на все Ваши вопросы.
ivandasch
21.1.2007, 18:18
2 <<LexuS>>: Qt designer - это дизайнер окон. Обычно я там диалоговые окошки рисую. Обработчики сигналов ты пишешь самостоятельно

. Удобная штука, хотя можно и без него обойтись
Цитата(olya.m @ 21.1.2007, 15:22)
я не могу процитировать фразу, по которой буду отвечать?
Вообще-то, если цитировать фрагменты сообщений, пришедших по PM, то это называется "нарушением частной переписки"
... Опять-таки я не знаю, писал ли LeVaP это в теме (я не нашел, наверное, проглядел
), но если он писал через PM, то там же на это и надо было отвечать, а не выносить "сор" на форум...
Цитата(olya.m @ 21.1.2007, 15:22)
я не о жесткости, я о "корпоративной этике". Считаю, что если ты сомневаешься в коллегах, работающих с тобой, то надо увольняться.
ИМХО, это неправильно... Во-первых, если ты считаешь себя правым и при этом сердечно (конечно, субъективно) болеешь за работу, то стоит как раз не складывать оружие, а отстаивать свою точку зрения... Жизнь - война, сдаваться и уходить - не лучший вариант. Во-вторых, насчет корпоративной этики - полностью согласен. Проблема только в том, что на факультете, в отличие от каких-нибудь тнк, кодек КЭ не прописан, что, конечно же, факультет ни разу не красит... Если есть интерес - лучше по PM...
Цитата(ivandasch @ 20.1.2007, 18:30)

Шифт, а я вот что подумал. А нафига спрашивается обязательно VC? Думаю g++ да какой-нибудь KDevelop(Да хоть eclipse + cdt. Да хоть vim или emacs с плагинами) было бы ничуть не хуже. И безопаснее. И геморроя с дебагером нету. Предвидя возражения насчет нестандартности Linux - опыт показывает, что все равно осваивать придется. А тут даже настраивать не надо, добрый админ все настроил. Но уже будет привычка и последующее освоение пойдет легче.
KDevelop -- в настоящее время есть только под линукс. сейчас, конечно, он достиг хорошего состояния, но пару лет назад...
Eclipse -- не пробовал, сказать не могу.
Обе системы хороши тем, что делают Makefile "ближе" разработчик, в отличие от VS.
По поводу линукс вообще (тс!! никому ни слова) -- эту систему придется сначала освоить 1) админам (на сервере она когда-то использовалась, а с целью организации рабочих мест студента -- еще ни разу)
2) преподавателями !!!
по поводу vim и emacs -- это удачная шутка -- народ скудный набор виндовых горячих клавиш не знает, без мыши вообще никак, а бывает, что после удачного жеста еще и "кнопочки пропадают" -- а тут придется целый семестр на "освоение" потратить :-) опять -- начиная с админов и преподавателей :-)
поэтому... пока не прижмут, или не заставят обстоятельсва, думаю, кроме меня и еще двух-трех человек врядли кто-нибудь сильно жаждить внедрения линукса и свободных технологий в учебный процесс :-( К тому же -- критерий выбора программных средств я озвучивал ранее -- не я и даже не кафедра их выбирала :-(
мой личный опыт показывает, что если студент приходит в лабу, а там кроме линукса ничего не стоит, зато все компы свободные -- он(а) с этим прекрасно осваивается. щас легче -- заморочки с монтированием более-менее рассосались, да и выглядит местами красивее и навороченнее Висты!
Цитата(<<LexuS>> @ 21.1.2007, 2:42)

... слышал от него, что один из вариантов сдачи зачета состоит в том, что студенту дается задание написать программу на листочке(!) без возможности пользоваться хелпом по синтаксису или там например MSDN-ом и иже с ним. Честно говоря меня подобная постановка просто поразила. А скажите пожалуйста, к чему подобные проверки?!
Повезло коллеге :-) однако: 1) я еще ни разу не видел на комиссии людей, которые умеют пользоватсья MSDN 2) сам там был. беспредела никто не устраивал. про вашего коллегу конкретно ничего сказать не могу, но на комиссии зачет приходилось ставить всем, кто хоть что-нибудь мог написать. Нам такого, как на атомке устроить не дадут, отговорки у всех стандартные, что программирование -- предмет не профильный
Цитата
Вот честно, я например сейчас не вспомню объявления и синтаксис функций для поточного чтения и записи в файл, которые входят в одну из стандартных библиотек.
я тоже ;-)
Цитата
Далее. Семинары..... В третьем семестре семинары были, уж извините, какой-то тихий ужас.
Знаю, у вас была сложная ситуация...
Цитата
Систематики изложения материала не было вообще никакой. В итоге за три семинар мы прошли объем материала, который влегкую осознается, при том гораздо систематичнее, за пол часа в индивидуальном порядке.
Коллега, в своих рассуждениях, вы совершаете ту же ошибку, что и ivandash и др -- вы пытаетесь оценивать людей по себе. Ваши коллеги имеют 1) гораздо меньше априорного опыта программирования . как правило -- никакого. 2) ваши коллеги, если на ними не стоять с зачетной дубиной, не умеют пользоваться MSDN, притворяясь, что не умеют читать по-английски. 3) не желают пользоваться отладчиком, даже если показать как 4) почти ничего не делают дома сами, если не пнуть (см тему про "Как преподавать" )-- про то, чтобы кто-то что-то САМ прочитал к семинару я уже и не мечтаю! а на самом семинаре -- хорошо еще, если домашку по другим предметам делают... Я боюсь себе даже представить последствия ужатия программы 3го семестра до "получаса". (жаловаться нехорошо, конечно, особенно публично, но это констатация фактов и опыта)
Цитата
Пусть задания будут большие, на 2-3 недели, пусть для решения этих заданий нужно будет не просто переписать пример из хелпа, а осознать, как все это работает и сделать на основе этого не что-то абстрактное, а решить конкретную задачу. Конечно, это все мое ИМХО, и возможно я в чем-то глубоко ошибаюсь... Буду признателен, если мудрые Старшие Братья и Сестры укажут мне где и в чем я не прав.
Множетство коротких "шаблонных" задач -- IMHO не самый плохой метод. Программирование в основном и заключается в использовании подобных "шаблонов". В Java сообществе даже термин такой есть "Patterns"
А Пожелание хорошее.. с удовольствием бы учел его на следующие года, но увы -- не на столько все гладко. Опыт показывает даже зачетная дубина не помогает (я не про вашу группу) -- успевают только те, кто считают, что им это нужно и важно. и это меньшая (хоть и лучшая) половина группы. Остальныес старательно пытаются искать легкие пути... Думаю, что если щас скажу, что моя школьная учительница говорила мне "всегда ориентироваться на отличников, а троечники сами подтянутся" -- пол форума расстроются :-)
Если вы все успели и хотите большего -- то увы, индивидуальных занятий вам не дадут. но если вам это важно и интересно, и вы считаете, что можете большее -- спросите преподавателя, он вам врядли откажет в лишних задачах "со звездочкой" :-)
Цитата
PS На тему GUI и прочего... Ну неужели, человек, который разбирается в программировании, не сможет сам освоить некоторые вещи связанные с построением графических интерфейсов, особенно только в рамках винды.... Проверено, что клепать в подобных IDE графические интерфейсы может человек даже не знакомый с программированием вообще. Во всяком случае на уровне примитивов... а судя по тому, что я уже видел, особо больше и не требуется.
Разбирающийся -- да. особенно клепать! для неразбираюшегося большинство конструкций так и останутся заклинаниями. Людям, сдававшим мне зачетные программы в 4м семестре на C++ Builder я спрашивал -- ну и что такое "property"? и узнавал максимум то, что оно "появляется, если нажать...." Не лучше ли попытаться разобраться с тем немногим что просят, что не требует привязки к конкретному IDE или RAD, и после чего любой "разобравшийся" также легко все что нужно найдет и в MFC и в QT и т.д.?
А так, чем-то напоминает рассуждения некоторых первокурсников "ну зачем мы на матане проходим производные и интегралы, мы ведь их в школе проходили"
кстати -- по поводу "проектов" и "познакомиться ближе" -- пишите в личку! или на мыло svshift собака gmail точка com
Robson
Это не частная переписка - ни в коем случае. Это написано здесь в открытом форуме и прямо в этой теме сообщение - #141 - я процитировала этот текст (причем в своем же сообщении LeVap цитирует не мой текст, взявшийся не из моего поста, а из поста mama - что еще больше удручает - "испорченный телефон"). Я намекала LevaP о том, что все это он и любой другой преподаватель может узнать в учебной части и на кафедре в предыщущем к нему послании. Но с его стороны пошли провокации #151 - в моем ответе также есть цитата этого текста.
Под словами "выносить информацию сюда" я имела в виду то, что я написала (а не личку, как Вы могли подумать?
)
Я могу отвечать только за себя и то, что получено мною "из первых рук и проверенных источников" - к чему всех присутствующих призываю.
Моя вина - откликнулась на провокацию.
<<LexuS>>
22.1.2007, 16:46
Цитата(SHiFT @ 22.1.2007, 11:52)

поэтому... пока не прижмут, или не заставят обстоятельсва, думаю, кроме меня и еще двух-трех человек врядли кто-нибудь сильно жаждить внедрения линукса и свободных технологий в учебный процесс :-( К тому же -- критерий выбора программных средств я озвучивал ранее -- не я и даже не кафедра их выбирала :-(
Я жаждую, обеими руками за! Только при подобных раскладах придется дополнительно вводить адекватные семинары по компьютерной грамотности и работе с программным обеспечением...

Цитата(SHiFT @ 22.1.2007, 11:52)

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

Цитата(SHiFT @ 22.1.2007, 11:52)

Множетство коротких "шаблонных" задач -- IMHO не самый плохой метод. Программирование в основном и заключается в использовании подобных "шаблонов". В Java сообществе даже термин такой есть "Patterns"
Ключевое слово - "в использовании". Все эти шаблонные задания уже кучу раз делались огромным количеством людей. Смысл все время перелопачивать один и тот же огород? Хотя бы возьмем ту же пресловутую сортировку. Да, я согласен, что понимать как оно работает - необходимо. Но что мешает один раз это объяснить, а потом сказать - мол посмотрите ребята, есть такая замечательная штука qsort(), можете пользоваться ей, а не писать все сами. Опять таки, что мешает давать векторные и списковые классы, в которых куча вещей уже реализована, и не плодить по ним кучу однотипных задач.
Цитата(SHiFT @ 22.1.2007, 11:52)

Людям, сдававшим мне зачетные программы в 4м семестре на C++ Builder я спрашивал -- ну и что такое "property"? и узнавал максимум то, что оно "появляется, если нажать...." Не лучше ли попытаться разобраться с тем немногим что просят, что не требует привязки к конкретному IDE или RAD, и после чего любой "разобравшийся" также легко все что нужно найдет и в MFC и в QT и т.д.?
Да разумеется. Только вот если в подобном IDE студент хоть как-то может это реализовать, а на чистом winapi этого не напишет вообще никак, то уж ИМХО пусть будет хоть какая реализация, пусть даже и без глубокого понимания механизмов.
А по поводу "property"... среднему студенту бы освоить с++ в рамках стандарта, а тут "страшный преподаватель"

спрашивает вещи, которые, вообще говоря, и в стандарт то не входят
Цитата(SHiFT @ 22.1.2007, 11:52)

кстати -- по поводу "проектов" и "познакомиться ближе" -- пишите в личку! или на мыло svshift собака gmail точка com
Спасибо. Обязательно воспользуюсь данным предложением! Только вот с сессией доразберусь, чтобы не растекаться мыслью по древу, как любила говорить одна из преподавательниц английского языка.
Цитата(<<LexuS>> @ 22.1.2007, 16:46)

Цитата(SHiFT @ 22.1.2007, 11:52)

Множетство коротких "шаблонных" задач -- IMHO не самый плохой метод. Программирование в основном и заключается в использовании подобных "шаблонов". В Java сообществе даже термин такой есть "Patterns"
Ключевое слово - "в использовании". Все эти шаблонные задания уже кучу раз делались огромным количеством людей. Смысл все время перелопачивать один и тот же огород? Хотя бы возьмем ту же пресловутую сортировку. Да, я согласен, что понимать как оно работает - необходимо. Но что мешает один раз это объяснить, а потом сказать - мол посмотрите ребята, есть такая замечательная штука qsort(), можете пользоваться ей, а не писать все сами. Опять таки, что мешает давать векторные и списковые классы, в которых куча вещей уже реализована, и не плодить по ним кучу однотипных задач.
коллега, это все замечательно. Раз уж занялись обсуждением содержимого курса программирования, то попробую обосновать необходимость заданий типа "отсортировать массив" или "напишите класс-матрицу". Поясню на примере: вот изучили мы мега-полезные классы вектора и матрицы. (а освободившееся время на семинаре потратили на повтор ЛинАла, хотя его проходят параллельно) И радостно начинаем писать:
Код
class BigFatMatrix A, B, C;
A=...;
B=...;
C = A + 2.5 * B;
студент будет, конечно, счастлив от того, что он в одну строчну запишет то, ради чего на C придется писать целый цикл или изобретать очередной велосипед. А умный человек увидит в этом выражении 3 порожних копирования. Причем, как показывали контрольные замеры на Matlab'е версий порядка 6 -- там тоже самое. (на более свежих еще не замерял) -- каждый операнд вычисляется и копируется во временный объект. Тf же фигня будет и в большинстве других языков.
Опытный человек возразит -- а как же boost, шаблонные выражения (expression templates), вычисления-по-запросу и прочие возможности C++ которые позволят написать тоже самое, но избегая пустого копирования? Моя (на сей раз уже субъективная) позиция заключается в том, что человек, поверхностно знакомый с шаблонами (в рамкахе нашего программирования) и однажды наступивший на грабли при написания собственного класса BigFatMatrix, в случае, если он(а) будет достаточно талантлив(а) для того, чтобы заглянуть за советом в ГУГЛ или уж на крайний случай в RSDN.ru (не путать с MSDN) в citforum.ru или даже в manual.algolist.ru -- сумеет эти самые шаблонные выражения реализовать (адаптировать чужие) самостоятельно!
Тоже самое и про другие базовые алгоритмы -- программирование - навык практический, и освоить его IMHO можно только методом дреcсировки, так же как и математику (боюсь, коллеги обидятся) -- вспомните, по скольку страниц Демидовича вам на дом задавали? Попробуем провести эксперимент на матане - "объясним" про интегралы, и попросим сходу вычислить что-нибудь жесткое дробно-рациональное да по двум переменным сразу, чтоб мало не казалось!? В среднем, 2-3 человека справятся. Мы с коллегами тоже с удовольствем задавли бы по стольку же, так ведь у ваших однокурсников будет железная отмазка "а у нас дома не на чем". Такчто -- таким как вы придется скучать :-( если не позабодитесь о своем досуге сами.
Цитата
Цитата(SHiFT @ 22.1.2007, 11:52)

Людям, сдававшим мне зачетные программы в 4м семестре на C++ Builder я спрашивал -- ну и что такое "property"?
Да разумеется. Только вот если в подобном IDE студент хоть как-то может это реализовать, а на чистом winapi этого не напишет вообще никак, то уж ИМХО пусть будет хоть какая реализация, пусть даже и без глубокого понимания механизмов.
мы же не требуем написания программ сложности порядка MS OFFICE средствами WINAPI -- правда ведь?
потом -- 95% студентов справляются, такчто про "никак" -- это вы зря.
Цитата
А по поводу "property"... среднему студенту бы освоить с++ в рамках стандарта, а тут "страшный преподаватель"

спрашивает вещи, которые, вообще говоря, и в стандарт то не входят
"злобный препод" всегда мыслит так, что уж если какая-то конструхция была использована в данной программе, то аффтар должен уметь объяснить, что это, и откуда.
<<LexuS>>
22.1.2007, 21:21
Цитата(SHiFT @ 22.1.2007, 20:35)

Попробуем провести эксперимент на матане - "объясним" про интегралы, и попросим сходу вычислить что-нибудь жесткое дробно-рациональное да по двум переменным сразу, чтоб мало не казалось!? В среднем, 2-3 человека справятся.
Ну если уж проводить аналогию до конца, то нужно вспомнить, что есть программы, которые эти самые интегралы прекрасно считают. Вбиваем туда, хоть на первом же занятии наш зубодробительный интеграл и она с радостью выдает ответ. Пусть мы не знаем, как его "посчитать ручками", но результат будет. Так же и в программировании. Причем я не говорю, что это хороший вариант, когда студент не знает или не понимает, а как это все собственно реализовано. Но факт в том, что при недостатке времени в таком случае результат будет гарантированно, а в случае написания всего "ручками" - совсем не факт, что студенту хватит времени, умения или же банально желания все это реализовывать. Тем более осознавая, что до него это все уже давно реализовано и он просто изобретает очередной велосипед.
А вообще, разговоры по поводу того что нужно объяснять студенту досканально, а про что можно просто сказать, что это уже реализовано, мол искать там то и там то - достаточно интересные и тут существует очень много разных точек зрения. Конечно, со стороны преподавателя это виднее...
Но наверняка однозначного ответа здесь нет, особенно в случае обучения языкам высокого и среднего уровня, к коим пусть и с большой натяжкой но все же ИМХО можно отнести с++ со учетом всего многообразия библиотечно реализованных возможностей.
А в остальном Вы конечно правы, и использование наработанных конструкций может обнаружить подводные камни для людей, которые не досканально в этом разбираются. Но тут уж вопрос в том, в каком случае этих самых подводных камней можно нахватать больше. Ну и кроме того, лично мне не кажется столь уж большой бедой проблема нерационального использования ресурсов(как в случае Вашего примера) для уровня студентов 1-го - 2-го курсов. Да и вообще, опять таки ИМХО, но единственный способ реально понять где и когда требуется оптимизация - это столкнуться с необходимостью оной в собственном проекте... А на теоретическом уровне, как правило, возникают мысли типа "а оно так работает? ну и пофиг, так и оставлю..."
И все подобные рассуждения приводят к одному ответу... единственный способ нормально научиться программировать - практика, практика и еще раз практика. А вот этой самой практики, причем разной и преимущественно Нешаблонной, на мой взгляд у нас и не хватает.
2 SHiFT 2006-01-22, 20:35Цитата
Код
class BigFatMatrix A, B, C;
A=...;
B=...;
C = A + 2.5 * B;
студент будет, конечно, счастлив от того, что он в одну строчну запишет то, ради чего на C придется писать целый цикл или изобретать очередной велосипед. А умный человек увидит в этом выражении 3 порожних копирования. Причем, как показывали контрольные замеры на Matlab'е версий порядка 6 -- там тоже самое. (на более свежих еще не замерял) -- каждый операнд вычисляется и копируется во временный объект. Тf же фигня будет и в большинстве других языков.
Опытный человек возразит -- а как же boost, шаблонные выражения (expression templates), вычисления-по-запросу и прочие возможности C++ которые позволят написать тоже самое, но избегая пустого копирования? Моя (на сей раз уже субъективная) позиция заключается в том, что человек, поверхностно знакомый с шаблонами (в рамкахе нашего программирования) и однажды наступивший на грабли при написания собственного класса BigFatMatrix, в случае, если он(а) будет достаточно талантлив(а) для того, чтобы заглянуть за советом в ГУГЛ или уж на крайний случай в RSDN.ru (не путать с MSDN) в citforum.ru или даже в manual.algolist.ru -- сумеет эти самые шаблонные выражения реализовать (адаптировать чужие) самостоятельно!
1. Вынужден Вас разочаровать. Опыт показывает, что ~90% не смогут понять эту (единственное копирование, via temporary proxy objects) реализацию, ~5% поймет очень приблизительно, про что речь после очень детального объяснения (но самостоятельно реализовать что-то подобное [в упрощенном виде] смогут через ~3 месяца работы (6 дней в неделю x 9 часов) в коллективе, активно использующем этот стиль). Это показатель среди профессиональных программистов, специализирующихся на C++ (это к вопросу об их опыте и мотивированности в овладении приемами программирования).
2. Изучение WinApi (впрочем, и почти любой другой графики, включая Qt), равно как и MATLAB, приобретению вышеупомянутого знания совершенно не способствует.
3. Люди, знающие что такое algorithm complexity O(N), гораздо ближе к пониманию описанной Вами проблемы (и это понимание гораздо ценнее знания C++, WinAPI, etc.). А это знание начинается с 'Введения в теорию алгоритмов'.
Цитата(Йети @ 22.1.2007, 21:46)

.....
3. Люди, знающие что такое algorithm complexity O(N), гораздо ближе к пониманию описанной Вами проблемы (и это понимание гораздо ценнее знания C++, WinAPI, etc.). А это знание начинается с 'Введения в теорию алгоритмов'.
Любезнейший! вы опять ошиблись адресом -- факультет ВМиК находится через дорогу. допускаю, что в рамках основных курсов все эти волшебные поняти, такие как algorithm complexity еще разбираются в таких уважаемых вузах как МИРЭА, МИЭМ, ИАиВТ (бывш. АВТФ МЭИ) и д.р.. Нравится это поступившим, или нет -- здесь готовят
физиков, учебный план которых занят такими интересными и важными предметами как "Общая физика" (5 семестов), "Мат.Ан" (3 семестра), "Ан.гем", "Лин.Ал", "ММФ" (aka "Ур.Мат.Физ"), "Численные методы", "Теор.Мех" (2сем), "Квантовая Механика" (2 сем) "Стат.физика"(2 сем) и др. с расписанием можете ознакомить на www.dubinushka.ru.
В связи с этим, такие важные и интересные для разработчика программных средств спецкурсы как "Дискретная Математика", "Алгоритмы и алгоритмические языки" , "Операционные системы" и др, в эту программу не включены !!! (см.
http://www.cmc-online.ru/schedule/ ) -- обратите внимание на к-во часов, которые тратятся на них !
to SHiFTОдна из проблем в том, что не прочитав подобных курсов, и не указав на них студентам, Вы, тем не менее, позволяете себе оценивать знания студентов по данным дисциплинам (программа курса [непрочитанная!] подразумевает вышеупомянутые знания).
Ряд высказываний по меньшей мере двух преподавателей кафедры позволят наблюдать
1. Как минимум двое преподавателей не владеют вопросами педагогики, у них отсутствует желание научить и поделиться знанием, зато в избытке присутствует желание самоутвердиться за счет более слабых индивидуумов. Похоже, проблемы с самореализацией и психологической устойчивостью.
2. Владение теорией программирования и методикой его преподавания отсутствует, желание овладеть этим так же отсутствует.
3. Владение определенными аспектами вычислительной математики (IMO существенными для решения задач, подобных работе КС и ОВ на конференции) у меня также вызвало сомнения (к вопросу о разрядности представления чисел с плавающей точкой при решении жестких систем, применительно к учебному процессу --- см. SHiFT above).
4. Владение эффективными процессами проектирования, разработки и сопровождения ПО (прежде всего научного) крайне ограничено (т.е. пропагандируются приемы, применявшиеся в середине 90-х в Российских институтах 'от бедности' --- индивидуальная наколенная разработка, натуральное хозяйство от программирования).
5.
Цитата
(см.
http://www.cmc-online.ru/schedule/ ) -- обратите внимание на к-во часов, которые тратятся на них !
Я обратил. Заявленный Вами курс в эти часы уложить нельзя. Устойчивых БАЗОВЫХ знаний в рамках заявленной Вами программы и за данное время Вы дать не можете. Поэтому экзамен превращается в лотерею. БАЗОВЫХ знаний не остается: это видно как на примере подавляющего большинства студентов (прослушавших курс), так и на Вашем (на этом форуме кто-то очень верно подметил --- 'жертва университетского курса ...'). Для
физика же важно --- осведомленность о характерных задачах (которые ему могут встретиться), средствах, методах и способах их решения. Вы же предлагаете студентам узкоспециальную информацию, да еще и оторванную от основ. [попробуйте объяснить ценность заучивания WinAPI для
физика. ]
Ув. Йети!
вы как-то путаете теплое с мягким, рассуждая про педагогику, да еще и противоречите сами себе.
Сами же приводете пример, когда осведомленность гражданина о существовании методов рещения конкретной проблемы никак не помогает этому гражданину этим решением воспользоваться,
и одновременно предлагаете мне рассказывать студенту
"о характерных задачах (которые ему могут встретиться), средствах, методах и способах их решения", как будто эти рассказы ему помогут.
опуская ваши оскорбления в некомпетентности отдельных сотрудников нашей кафедры, отмечу, что мы не просто "рассказываем", а заставляем выполнять задания с использованием указанных технологий.
возможно, навык чтения исходных данных вычислительсной задачи из файла, или представления этих данных в графическом виде на экране и покажется вам слишком "узким", да к тому же с использованием "узкоспециального" API, описываемого стандартом ANSI и использумого (включая диалекты) как минимум 30% мирового программисткого сообщества, (см
http://www.tiobe.com/tpci.htm http://www.dedasys.com/articles/language_popularity.html), или используя стандартные графические средства операционной системы, стоящей на 99% первональных компьютеров наших студентов, учитывая, что компиляторы, и детская версия Visual Stuidio доступны бесплатно, не говоря об ознакомительных версиях VS.
Более того -- мы не заставляем кого бы то ни было "заучивать" последовательности аргументов каких бы то ни было функций, или наизусть алгоритм рабина-карпа -- максимум -- написать программу использующие эти функции или реализующую этот алгоритм. На зачете спрашивается только умение решить самые базовые задачи, и объяснить используемые символы. поэтому попрошу дезинформацию тут не разводить.
to SHiFTЦитата
... да к тому же с использованием "узкоспециального" API, описываемого стандартом ANSI
(в контексте поста это WinAPI).
Уже смешно. Можно не продолжать.
to SHiFT
Вы отвечаете как-то интересно: я Вам про то что результат обучения плохой (я его, результат, наблюдаю), Вы мне --- зато это это принесло много денег одному парню в Рэдмонде. И тут же упрекаете меня в 'коммерческом' программировании. Ну очень последовательно. Главное, для физиков полезно. Особенно полезно знать про message loop, и GetDC... в ущерб тому, когда когда выгоднее использовать list, когда vector, когда rbtree. Что матрицу можно представить как 2-х мерный массив, а можно как список, а можно графом. И зачем это они так делают. Без деталей. Ну и т.п. Я уж умалчиваю о том, что попытки писать собственную визуализацию (если только это не является основной деятельностью) --- крайне неэффективное растрачивание времени.Для этого прграмм уже понаписали --- вагон. А новый результат --- это голые числа.Которые можно нарисовать, и так и этак и еще вот этак. Самая красивая визуализация нового результата не дает.
Цитата(Йети @ 23.1.2007, 20:04)

to SHiFT
Вы отвечаете как-то интересно: я Вам про то что результат обучения плохой
Ну, судя потому, что вы озвучивали ранее -- вам нужны выпускники ВМиК. Вас никто не просит нанимать выпускников физфака для работы не по их специальности. (если предположение высказанное коллегой ранее верно.)
любезнейший, вы уже начинаете выдергивать слова из контекта, и заниматься обощенинем выводов на основе очень узкой выборки, а мне приходится повторять вам сказанное мною выше. к тому же, тут коллеги подсказывают, что время позднее и пора завязывать. успехов вам в интеракивном анализе простыней числовых результатов без права на визуализацию. А для студентов физфака, желающих научиться программированию более глубоко, чем позволяет наше расписание, помимо самообразования, могу предложить спецкурсы нашей кафедры, курсы отделения доп. образования, а также ВКШ ВМиК.
Вы можете спорить до посинения о том, как лучше строить программу обучения, но заставлять девушку, которая третий раз в жизни потрогала компьютер на первом занятии по проге, изучать всякие винапы - просто тупость неимоверная. Ей бы в окошки научиться мышкой попадать...
Цитата
учитывая, что компиляторы, и детская версия Visual Stuidio доступны бесплатно, не говоря об ознакомительных версиях VS.
О детской (ознакомительной?) версии можно прочитать здесь:
http://www.cnews.ru/news/top/index.shtml?2007/01/10/230643 MATLAB, core product, студенческая лицензия (единственный пользователь, установлено на единственном компьютере) --- $99; по непроверенным данным, академическая лицензия (установка на компьютере в компьютерном классе с образовательной целью) --- $40000.
С целью борьбы со злонамеренной дезинформацией, довожу до всеобщего сведения:
Цитата(Йети @ 24.1.2007, 0:51)

Цитата
учитывая, что компиляторы, и детская версия Visual Stuidio доступны бесплатно, не говоря об ознакомительных версиях VS.
О детской (ознакомительной?) версии можно прочитать здесь:
http://www.cnews.ru/news/top/index.shtml?2007/01/10/230643 на всякий случай: ознакомительная лицензия (в частности -- Visual Studio Express Edition,
http://msdn.microsoft.com/vstudio/express/) позволяет использовать этот продукт в любых не-коммерческих и не-оборазовательных целях, в том смысле, что изучать его самому можно, а зарабатывать на обучении кого-нибудь нельзя. Причем -- эти самые ознакомительные версии работают без ограничения по времени.
Информацию про академическую лицензию на продукты Microsoft для использования подразделениями факультета можно найти на сайте факультета: www.phys.msu.ru
помимо этого, лицензия Microsoft разрешает использование в ознакомительных целях продуктами компании, полученными по подпискам MSDN (http://msdn2.microsoft.com/en-us/vstudio/aa718660.aspx,
http://msdn.microsoft.com/subscriptions/downloads/EULA.pdf) -- правда ооткрываются они как-то по большим праздникам. Кроме того на сайте Microsoft всем желающим доступны программы бета-тестирования, позволяющие использование тестируемых продуктов с лимитом по времени, и в случае успеха тестирования, позволяющие бесплатно получить и взрослую лицензию.
Цитата
MATLAB, core product, студенческая лицензия (единственный пользователь, установлено на единственном компьютере) --- $99; по непроверенным данным, академическая лицензия (установка на компьютере в компьютерном классе с образовательной целью) --- $40000.
студенческая версия на западе стоит 99$, в софтлайне меня уверяли, что в россии $75 -- правда я с ними разговаривал давно. Сетевая академическая версия -- 32000р -- а не у.е. !!!
http://soft.softline.ru/program_page_pricing.php?id=28666 кроме того, существует условно-совместимый и совршенно свободный Octave (www.octave.org, про совместимость с матлабом читайте
http://wiki.octave.org/. Отмечу, наш курс матлаба расчитан на версию 5, и к нововведениям версии 6 и выше не привязан.
Я заранее прошу прощения за то, что спрашиваю то, что уже, может быть, в теме звучало, но...
Есть ли в интернете в открытом доступе официальная программа курса программирования, как для первого, так и для второго потока?
----------------------------------------------------------------
И... Долго не хотел высказываться в теме... И из-за ее скандальности, и из-за того, что довольно-таки далек от проблемы, и из уважения к тому же Shift-у, с которым знаком уже существенно больше 10 лет =) Но все же...
Для начала немного про себя.
За два года до поступления на ф-т я первый раз получил деньги за программирование. За год до поступления я участвовал в проекте по написанию ОС для Саратовского (точнее, Энгельсского) мукомольного завода.
В общем, к поступлению на ф-т у меня был некоторый опыт программирования. В первом семестре мне прочитали основы ТЕХа, тетрадкой с конспектом я пользовался после того много лет, спасибо =)
В последующих семестрах от меня требовались какие-то программы, я их писал и получал зачет. А в четвертом семестре вдруг не получил, и единственная до распределения комиссия по зачету, которую я изволил посетить, была по проге. Причем уважаемый преподаватель через общих знакомых пообещал зачет не ставить вообще или только на третьей комиссии (за 100% пробивание абсолютно неинтересных мне семинаров по паскалю и лаб по нему же). На счастье, он был болен, и зачет я сдал "влет" кому-то пришлому. Хотя, если бы меня заставили сдавать зачет по какому-то конкретному языку, по его синтаксису и заморочкам, так я бы и не сдал! Скажем, да, я не знаю библиотек OpenGL. И мне это на фиг не надо, не надо было раньше никогда, не надо было к диплому, не надо к диссеру, не надо вообще. Заставить меня сдавать OpenGL эквивалентно тому, чтобы заставить меня сдать основы разведения пушного зверя в питомниках. И по полезности, и по времязатратам, и по эффекту.
У меня сложилось впечатление, что именно так сейчас и есть - всех студентов заставляют выучить все о разведении пушного зверя в питомниках. В нагрузку еще курс машинного доения и семестр конструирования доменных печей. Каждый из этих курсов полезен и нужен, но не физику. Может быть, я перебарщиваю с дальностью... Хорошо, тогда еще семестр физики плазмы для студента кафедры низких температур и сверхпроводимости.
А все почему? Потому что никто не определился, на кого делать упор - на людей, впервые подошедших к компу (а их реально надо на первом занятии познакомить с понятием "файл", "окошко", "расширение файла", "байт" и так далее), на юзеров, не знакомых с программированием или знакомых лишь поверхностно, или на ребят, которые уже имеют практику программирования (нередко изрядно сильную), но, кстати, крайне редко имеют соответствующую теоретическую подготовку.
На кафедре же дают усредненный курс... Причем состоящий из довольно нетривиальных вещей, к которым еще готовить надо. После чего требуете сдачи и реальных знаний того, что дали вы (а не овладения компьютером и произвольным языком программирования) на выходе. В общем, картина, имхо, весьма и весьма безотрадная.
Это не курс общей физики, не механика, где есть четкий набор определений, теорем, моделей и фактов. Это инструментарий, причем очень, очень широкий. Ваша задача - научить пользоваться той частью инструментария, которая покроет достаточный класс задач и будет удобна студенту. Этого нет, точнее, почти нет.
Сделайте взвешенный курс, в идеале - дифференцированный в зависимости от "входящего" уровня, сделайте его последовательным, без дыр, и с фундаментальной подготовкой вместо "пишешь так, запомни, вот так, и это будет работать", большой процент претензий к вам исчезнет.
Да, вот еще что. Это очень важная вещь, которую пишет Йети, а кафедра отвергает со словами "ВМиК через дорогу". Имхо, МГУ, физфак - место, где дают фундаментальные знания. Теоретические основы. Прослушав основы астрофизики, я могу начать колупаться в этой астрофизике и разбираться в тонкостях: база заложена. Прослушав ММФ, я могу сесть и разобраться в любой модели на базе функций Грина: база заложена.
Прослушав же курс программирования, никто из студентов базы не получает. Получает лишь набор "пиши так, это работает".
Даешь теоретическую базу! Даешь основы теории алгоритмов, даешь основы ОС, и так далее. Это важно!
Еще раз повторюсь, все это лишь мое мнение, основанное на довольно давнем уже личном опыте и обсуждении в этой теме. Извините за сумбур и эмоциональность поста...
если честно, я, прослушав курс программирования, не добавил практически ничего, за исключением знаний рассказанным toshas'ом о кпк и ценах на них, небольшого представсления как запускают MS Visual C++ и еще чуть-чуть о IP адресах и сетях (огромное спасибо за это нашему первому аспиранту, который вел лабы по проганью). Да, еще увидел, как находятся пароли через консоль в винде
Да, забыл сказать за winAPI, о практической ценности для научной работы тут было столько говорено... Простите, но я не видел ни одного диплома, ни одной курсовой (кроме курсовых по программированию) и ни одного аспирантского доклада, которые готовились бы с помощью написанных студентом/аспирантом программ, использующих winAPI. На кафедре КМФ таких, может, и хватает, на КФНТиСП, скажем, их ноль.
Цитата(Owen @ 24.1.2007, 18:43)

А все почему? Потому что никто не определился, на кого делать упор - на людей, впервые подошедших к компу (а их реально надо на первом занятии познакомить с понятием "файл", "окошко", "расширение файла", "байт" и так далее), на юзеров, не знакомых с программированием или знакомых лишь поверхностно, или на ребят, которые уже имеют практику программирования (нередко изрядно сильную), но, кстати, крайне редко имеют соответствующую теоретическую подготовку.
На кафедре же дают усредненный курс... Причем состоящий из довольно нетривиальных вещей, к которым еще готовить надо. После чего требуете сдачи и реальных знаний того, что дали вы (а не овладения компьютером и произвольным языком программирования) на выходе. В общем, картина, имхо, весьма и весьма безотрадная.
.....
Сделайте взвешенный курс, в идеале - дифференцированный в зависимости от "входящего" уровня, сделайте его последовательным, без дыр, и с фундаментальной подготовкой вместо "пишешь так, запомни, вот так, и это будет работать", большой процент претензий к вам исчезнет.
Ты абсолютно прав, но при одном условии: введении при поступлении профилирующего тестирования по программированию (ну или хотябы опроса пожеланий студента, чего он хочет от прграммирования) -- аналогично тому, как проводится по английскому. Такие предложения регулярно нами вносились, и пока без успеха. Наверное, там считают, что вести программирование в группе где одни еще боятся тронуть мышь, а другие уже взломали сервак и вышли без спроса в интернет будет веселее. Единственно, чем я могу помочь -- давать задачи по-интереснее тем, кто интересуется, отвечая на их вопросы по мере возможности. Статистика: в среднем 1-3 таких интересующихся на группу.
К томуже ты все-таки недооцениваешь уровень нашего студента, как бы плохо про него не говорили.
Раз человек поступил на физфак -- значит чего-то может. понятие "алгоритм", как тебе известно, не привязано к программированию, как таковому, этому учат еще при решении задач про трубы и бассейны.
А я как-то обучал программированию людей, неспособных решить задачу про трубы и бассейны, trust me, разница есть.а что касается "пишешь так, запомни, вот так, и это будет работать" -- согласись, это зависит уже больше от конкретного преподавателя, нежели от программы курса.Цитата
Да, забыл сказать за winAPI, о практической ценности для научной работы тут было столько говорено... Простите, но я не видел ни одного диплома, ни одной курсовой (кроме курсовых по программированию) и ни одного аспирантского доклада, которые готовились бы с помощью написанных студентом/аспирантом программ, использующих winAPI. На кафедре КМФ таких, может, и хватает, на КФНТиСП, скажем, их ноль.
Не поверишь! на чистом winAPI у нас тоже никто дипломы не пишет. ;-)
Trust me, никто не заставляет выучивать WinAPI наизусть. мы требуем лишь уметь написать несложные программы с его применением, т.е. расположить данный набор системных вызовов в нужном порядке. Согласись, если речь идет о рисовании несложной анимации на экране или получение значения параметров введенных в text control -- какая разница как будет называться функция, кторая это делает? В большинстве своем принцип построения таких программ будет одинаков -- написание кода, который как-то будет реагировать на события и отвечать на какие-то системные запросы, и этот принцип наглядно демонстрируется. А если про это написано много книг, стоит на 99% компов пользователей -- зачем изобретать велосипед?
Не пойми меня неправильно, я ни в коем случае не являюсь тайным
дьяволоWindows-поклонником, и не получаю от компании Microsoft денег за пропаганду их продуктов. просто я разделяю мнение коллег, что winAPI не самое плохое средство для целей нашего курса.
Мне сложно оценивать педагогичность преподавания WinAPI на себе -- насколько я себя помню на 1-2м курсе -- программирование в нашей группе состояло ровно из того же, и чего оно состоит сейчас, буква в букву, благо, вел лектор, но это было, что называется, без меня. я ограничивался сдачей требуемых программ, и посещением семинаров и лекций себя особо не утруждал. :-) но насколько я помню те года -- почти ни у кого это никаких нарканий winAPI не вызывало. да и процесс написания графической программы всех вроде увлекал. А еще я помню, что тогда программирование у всех было крайне разнообразное, каждый читал чего хотел. Кто-то ставил всем "автоматом", кто-то спрашивал по полной, с комиссией и прочими радостями. Единственно "плохого", что сделал Соболев -- это сподвиг нашу кафедру унифицировать весь этот процесс, и контроль за этим оставили на нем же. Цитата
Прослушав же курс программирования, никто из студентов базы не получает. Получает лишь набор "пиши так, это работает". Даешь теоретическую базу! Даешь основы теории алгоритмов, даешь основы ОС, и так далее. Это важно!
База -- это хорошо. Но -- ты сам знаешь, сколько времени у нас на это уделяется. более того -- пару лет назад и то пытались по-тихому сократить, тогда удалось отстоять. Что умеем, впихиваем в лекции, семинар и между делом рассказываем на праках. бОльшим похвастать не можем.
Цитата
Еще раз повторюсь, все это лишь мое мнение, основанное на довольно давнем уже личном опыте и обсуждении в этой теме. Извините за сумбур и эмоциональность поста...
да всегда пожалуйста, констурктивные пожелания коллег всегда привествуются.
программы курса в свободном доступе не оказалось, сайт....

пока в разработке. постараюсь найти полный текст программы курса за 1-2 курс, а также содержимое лекций, и куда-нибудь положить для более детального обсуждения, если интересно. Общей методички нет -- есть только недавно пришедшая книжка К.Э.Плохотникова, что-то там про "методика написания курсовых работ по программированию" или как-то так. по сути -- наш курс за вычетом winAPI. по слухам есть в библиотеке.
Цитата
... просто я разделяю мнение коллег, что winAPI не самое плохое средство для целей нашего курса.
Пойдем с этого конца. Вы можете сформулировать цель Вашего курса?
Что-нибудь вроде
курс "название курса" имеет целью:
80% студентов, прослушавших курс, должны
1. иметь представление о численном моделировании физического процесса (вычислительном эксперименте);
2. Иметь представление о численных методах решения таких-то задач;
3. Быть способными поставить вычислительный эксперимент (поставить задачу, написать программу, реализующую заявленную модель физического процесса, провести вычислительный эксперимент);
4. Быть способными проинтерпретировать и продемонстрировать полученные результаты.
Исходные характерные данные:
характерная группа 20 человек;
5 человек никогда не имели дело с копьютером
12 человек уверенно пользуются офисными приложениями
1 человек владеет базовой автоматизацией офисного труда с использованием VB
2 человека принимали участие в разработке ПО (C++, VS, GUI)
количество групп: 10
время --- 4 семестра по 16 часов в каждом.
обеспечение практической работы: 16 рабочих мест, доступны 24x7x365
преподавательский состав: 5 лаборантов, 3 аспиранта второго года, 4 доцента (кфмн),2 профессора (дфмн), 1 академик.
Цитата(Йети @ 25.1.2007, 0:18)

Пойдем с этого конца. Вы можете сформулировать цель Вашего курса?
Что-нибудь вроде
курс "название курса" имеет целью:
80% студентов, прослушавших курс, должны
1. иметь представление о численном моделировании физического процесса (вычислительном эксперименте);
2. Иметь представление о численных методах решения таких-то задач;
так и есть. хотя более глубоко эти задачи решают на курсе Методов Мат Моделирования, ММФ и чмсленных методах. (3-4 курс) мы, скорее, даем навык практической реализации численных методов в виде программы для ЭВМ.
Цитата
3. Быть способными поставить вычислительный эксперимент (поставить задачу, написать программу, реализующую заявленную модель физического процесса, провести вычислительный эксперимент);
4. Быть способными проинтерпретировать и продемонстрировать полученные результаты.
совершенно верно.
Цитата
Исходные характерные данные:
К сожалению, такого опроса поступивших центрилизованно не проводится, деканат против.
На первом семинаре, как правило блиц-опрос устраивается, и в среднем получается так: группа 25 человек,
как правило 1-3 человека умеют программировать или в состоянии изучить указанные темы без помощи преподавателя, и при этом уверенно владеют т.н. "техническим английским". еще 5-6 изучали программирование в рамках курса ОИВТ (чаще всего владеют или Pascal или реже -- Basic), еще около 5-10 человек -- комп никогда не видели, или видели, но не умеют пользоваться оффисными приложениями -- т.е. максимум игры или интернет в интернет-кафе. Ну и остальные 10-15 - умеют пользоваться оффисными приложениями на базовом уровне (точнее -- программой MS Word и только самыми основными функциями из нее, т.е. не стилями и не шаблонами и уж тем более -- не макросами). среди них есть 2-4 человека, обладающие базовыми навыками администрирования или ОС Windows и/или (реже) Linux или BSD.
Естественно, от группы к группе бывают вариации, например, в прошлом-позапрошлом году у меня в этом плане группа была очень сильная.
есть два потока: 10 и 9 групп. 1й поток ведет кафедра КМФ, точный состав назвать затруднюсь, не помню звания и степени всех, в наличии -- 2 класса, в сумме 25 мест, рабочих 20, отвествнность ЦКФ (не наша кафедра). постоянных лаборантов нет, открыты только согласно учебному расписанию. дежурного администратора нет - все проблемы решаются через записки. В частности -- если студент забыл свой пароль, то новый у него пропишут только к следующему занятию. Администраторских привелегий у преподавателя нет.
4 семестра:
1: 1 час лекций + 1 час семиаров + 2 часа практики
2-3: 1 час семинаров + 2 часа практики
4: 1 час практики.
как правило 1й месяц -- введение в архитектуру ЭВМ, в программирование, в двоичную логику, а на практикуме -- знакомство с компьютером и с ОС.
потом собтвенно программирование. на семинарах -- введение в конструкции языка и основные структуры данных и алгоритмы, на практикуме - выполнение заданий, демонстрация примеров.
итого:
1 семестр -- введение в C++ (в ту его часть, которая пересекается с C), и стандартную библиотеку (<string.h> <math.h> <stdlib.h> <stdio.h> -- массивы, функции, указатели, связные списки, структуры.
2 семестр -- C++ -- ООП, <iostream> <string> ну и кое-что из STL: <vector> <map> <list> <tree>
3 cеместр - MATLAB (вплоть до построения GUI и создания библиотек на C) и Win32 (где-то первая половина легендарного учебника г.Шилдта "программирование в Windows 95")
знакомство с численными и нечисленными алгоритмами происходит как правило в процессе выполенения заданий, конец1го по 3й семестр
4 семестр -- выполнение зачетной работы. как правило -- вычислительный эксперимент, реализующий физический (и не только) процесс, визуализирующий его, или какой-нибудь алгоритм (например - самообучающееся что-нибудь) или что-нибудь из собственно программирования -- парсер какой-нибудь, или интепретатор или сжатие.. - в зависимости от пожеланий студента.
маленькое дополнение: как правило способ реализации жестко не регламентруется -- MATLAB или C++ на выбор.
У меня такой дурацкий вопрос... Имеет ли смысл вообще обсуждение программы обучения программированию в этой теме? Это отлично, что мы можем все перетереть, придти (или не придти) к консенсусу, но у меня есть ощущение, что это все тихонько канет в Лету. Почему-то кажется, что преподаватели, общающиеся здесь, вряд ли имеют влияние не только на задачи/цели курса, но даже на содержание...
Ничего личного, конечно =)
По указанному содержанию. Попробую простую аналогию.
Сравни вот это:
"Предмет физики. Материя, ее виды, способы и формы существования. Физический объект, физическое явление, физический закон. Методы физических исследований. Физика и современное естествознание. Системы отсчета. Кинематика материальной точки."
И вот это:
"Введение. Материальная точка. Кинематика материальной точки. Решение задач."
Первое - введение в чуть более фундаментально построенный курс механики, второе - из-за сжатости лекционного времени явно нет возможности дать некоторых вещей, которые кому-то кажутся очевидными, но на самом деле они, имхо, важнее многократно той же кинематики материальной точки.
То, что пишешь ты, Shift, это программа второго вида. И обучение, которое дает ваша кафедра, оно (как минимум, так было при мне, и такое впечатление у меня складывается сейчас по отзывам) НЕ дает фундамента, оно пытается сразу научить дифференцировать без дополнительных слов про предел в точке, непрерывность и так далее. Надеюсь, аналогия понятна.
Очень бы хотелось, чтобы обучение программированию на факультете было именно фундаментальным. Пусть человек к концу обучения овладеет вдвое меньшим числом библиотек, но мыслить (кодить) будет структурно, грамотно и с пониманием своих телодвижений.
Ты говоришь, нет времени на то, чтобы дать все, что мы считаем нужным. Да, конечно. У астрофизиков тоже нет времени на то, чтобы изучаемый астрономами много семестров материал сжать в семестр и выдать весь. Но они умудряются за семестр дать базис, и дать его интересно, а вы за четыре семестра даете лишь оперировать (устаревающими) инструментами.
Я, конечно, понимаю, что дидактически астрономам во много, много раз проще: их наука существует давно, преподается (со времен астрологии) еще дольше, методических и дидактических наработок много, а у вас область много моложе, методистов нет: все через дорогу сидят. И тем не менее, эту ситуацию, как мне кажется, надо разруливать...
Я бы даже предложил ряд конструктивных, как мне кажется предложений, если бы не одно обстоятельство...
...повторюсь, данная тема вряд ли представляет из себя что-то большее, чем просто сотрясание воздуха. Точнее даже не так. Она просторна в смысле конфликтов, здесь провоцируют друг друга на виртуальные резкости, но в реале не изменится ничегошеньки...
Цитата(Owen @ 25.1.2007, 17:49)

По указанному содержанию. Попробую простую аналогию.
Сравни вот это:
"Предмет физики. Материя, ее виды, способы и формы существования. Физический объект, физическое явление, физический закон. Методы физических исследований. Физика и современное естествознание. Системы отсчета. Кинематика материальной точки."
И вот это:
"Введение. Материальная точка. Кинематика материальной точки. Решение задач."
owen, насклько я помню, у нас лекции также шли по второму пути, потому как IMHO на изложение всего, что есть в первом варианте даже одной лекции будет маловато... неспорю, первое смотрится веселее.
Цитата
...повторюсь, данная тема вряд ли представляет из себя что-то большее, чем просто сотрясание воздуха. Точнее даже не так. Она просторна в смысле конфликтов, здесь провоцируют друг друга на виртуальные резкости, но в реале не изменится ничегошеньки...
Я не один, кто читает эту тему с нашей кафедры. Наверное, в этом семестре уже действительно ничего не изменится. Но ты ошибаешься в том, что мы ничего не решаем. Я сам подписывался под обсуждаемой программой, которую принимали на заседании кафедры и которая утверждалась потом заведующим.
С удовольствием выслушаем предложения коллег. сделаем этот топик филиалом "Как преподавать" по части программирования! :-) Но учти -- кое-что от нас зависит (например -- содержание программы), а кое-что -- нет (компьютерные классы и софт который в них стоит, см. выше, разделение студентов по уровню априорной подготовки)
Если ты подписывался, то она существует в формально-официальном виде, и наверняка этот вид существует электронно. Нельзя ли ее раздобыть и выложить сюда?
Сразу оговорюсь, что это ваша интеллектуальная собственность, и вы не обязаны этого делать. Но без (формального) содержания курса я могу только общие какие-то слова говорить.
То, что ты не один эту тему читаешь, это понятно - еще есть Ольга Владимировна и факультативно читающие под гестами. Но давай смотреть правде в глаза, если ты придешь к лектору с новой мегапрограммой лекционного курса, что будет?
to Owen
Мне хотелось бы надеятся, что программа поменяется. Или хотя бы будут изменения в стиле преподавания.
to SHiFT
Имеем:
курс "название курса" имеет целью:
80% студентов, прослушавших курс, должны
1. иметь представление о численном моделировании физического процесса (вычислительном эксперименте);
2. Иметь представление о численных методах решения таких-то задач;
3. Быть способными поставить вычислительный эксперимент (поставить задачу, написать программу, реализующую заявленную модель физического процесса, провести вычислительный эксперимент);
4. Быть способными проинтерпретировать и продемонстрировать полученные результаты.
Входной материал:
характерная группа 25 человек;
5 человек никогда не имели дело с копьютером
11 человек уверенно пользуются офисными приложениями
6 человек владеет базовой автоматизацией офисного труда
3 человека принимали участие в разработке ПО
количество групп: 10
Время --- 4 семестра; расклад --- 68 часов, 51 час, 51час, 17 часов.
Предлагаемый кафедрой способ достижения поставленной цели:
68 часов введение в C (из них введение в архитектуру ЭВМ, в программирование, в двоичную логику, а на практикуме -- знакомство с компьютером и с ОС --- 16 часов)
51 час C++, ООП, generic programming
51 час MATLAB, использование внешних библиотек в MATLAB (или MATLAB из C?) и Win32 API
17 часов выполнение зачетной работы: вычислительный эксперимент с визуализацией.
Вычислительные методы --- мимоходом, попадают в 51, 51, 17 часов.
Я ничего принципиального не пропустил?
IMO заявленный метод достижения только слегка касается заявленных целей. Не так ли? Слова 'вычислительный эксперимент' возникают только на сдаче курсовой? Ну и сдают что ни попадя --- модальный диалог написал, уже чудо. И каким это местом к вычислительному эксперименту относится --- не понимаю. Курс не дает целостной картинки, не показывает процесса построения вычислительного экперимента. Курс делает упор на вспомогательных приемах, поэтому знания у студентов остаются в лучшем случае фрагментарными, в худшем --- поскольку они так и не узнают ради чего весь этот сыр-бор был затеян, благополучно забывают все. О чем аборигены и говорят.
Ох, да, еще: на входе из 25 человек 16 не знают что в файл можно записать числа, можно их считать из файла, а можно аж считать, преобразовать и записать в другой файл.
owen, насклько я помню, у нас лекции также шли по второму пути
Да, хотя мы с тобой были на разных потоках (-; Впрочем, ты наверняка прав. Но то, что "так было всегда", ни в коем разе не является оправданием тому, что так... не очень хорошо. Даешь фундаментальность!
Кстати, такая глупая идея... По форме, не по содержанию пока что. Почему бы постановку задачи для курсовой не давать сразу в первом семестре? У студента появится понимание хотя бы, зачем он вбатывает тот или иной метод, ту или иную библиотеку - чтобы реализовать свою задачу...
Плюс раздолбы вроде меня получали бы зачет сразу и не мешали бы проведению лаб и семинаров шумом, гамом и прочим хулиганством от скуки. В четвертом семестре можно попросить еще сдать какой-нибудь зачет/экзамен на тему прочитанных лекций с теоретическими основами. Да, я на них настаиваю, на основах.
Но учти -- кое-что от нас зависит (например -- содержание программы)), а кое-что -- нет (компьютерные классы и софт который в них стоит, см. выше, разделение студентов по уровню априорной подготовки)
В этой теме никто не предлагал изменять начальный уровень, его предлагали разве что исследовать.
После фразы про то, что за комп. класс отвечаете не вы, претензий по этому поводу тоже не было... Хотя, имхо, это неправильно, когда у преподавателя нет админских прав на любую машину во время занятия.
Кстати, если проводить лабы силами двух преподавателей, а не одного, то вполне реально поговорить с каждым студентом и в начале занятия, и в конце, и мониторить работу каждого в процессе. Но это если ресурсы кафедры позволяют...
А главный упор уже довольно давно идет именно на содержание курса. Я вот с нетерпением жду лекционной программы. Да и семинары чуть поподробнее было бы неплохо...
Цитата(Owen @ 25.1.2007, 20:50)

owen, насклько я помню, у нас лекции также шли по второму пути
Кстати, такая глупая идея... По форме, не по содержанию пока что. Почему бы постановку задачи для курсовой не давать сразу в первом семестре? У студента появится понимание хотя бы, зачем он вбатывает тот или иной метод, ту или иную библиотеку - чтобы реализовать свою задачу...
Плюс раздолбы вроде меня получали бы зачет сразу и не мешали бы проведению лаб и семинаров шумом, гамом и прочим хулиганством от скуки. В четвертом семестре можно попросить еще сдать какой-нибудь зачет/экзамен на тему прочитанных лекций с теоретическими основами. Да, я на них настаиваю, на основах.
не поверишь, с такими раздолбаями как мы с тобой я приблизительно так и поступаю :-)
только не помогает -- всеравно прибегают сабботировать контрольно-зачетные мероприятияЦитата
Кстати, если проводить лабы силами двух преподавателей, а не одного,
для этого у нас есть аспиранты.
Цитата
Я вот с нетерпением жду лекционной программы. Да и семинары чуть поподробнее было бы неплохо...
Извини, я коспектов собстенных семинаров не веду. :-) лучше в гости приходи, для бОльшей фундаментальности обсуждения, чаю попьем, в крестики-нолики срежемся. бумажка в электронном есть, но я ее дома не держу ;-)
по поводу "Вычислительный эксперимент" -- мысль сама по себе неплохая, но:
у меня есть личное мнение, что на 1м курсе давать такое объемное понятие довольно рано.
во первых -- если объяснять это понятие по-человечески -- материал будет непонятен еще бОльшим процентом студентов. потому как при рассуждениях об "вычислительном эксперименте" надо неизбежно говорить и про выбор "моделей" рассматриваемых явлений. тогда неизбежно встает вопрос и о том, почему надо из множества моделей выбрать эту, а не ту. Встает вопрос о проверке адекватности данной модели -- что в общем случае потребует для объяснения гораздо более подготовленного слушателя, чем есть на 1м курсе.
Далее -- вычислительный эксперимент, если подходить к этому вопросу серьезно, как правило требует реализации какого-нибудь случайности или неопределенности (наиболее распространенный -- метод Монте-Карло) -- значит, необходимо, чтобы слушатель имел вменяемое представление о теории вероятностей. Теорвер у нас на 3м курсе. Owen, вспомни лекции по ВТЭКу -- там что-то подобное вводится, чтобы объяснить студентам сущность всех тех манипуляцй, которые они осуществляют на физпраке. Не смотря на это, у меня сложилось впечатление, что кроме двух первых рядов, почти все воспринимают формулы МНК как магическую последовательность символов, не понимая, от куда она берется. а про значение таблицы стьюдента на последней странице учебника по праку, IMHO, догадываются еденицы, хотя про это тоже подробно объясняют.
в общем -- если я буду развивать свою мысль -- мы придем к курсам ММО и ЧМ, которые, как мне кажется, читаются в нужном объеме и в нужное время коллегами с кафедры математики. Еще эта тема обобщается в нашем спецкурсе Е.А. Грачева "Вычислительная физика" на 5м курсе.
таким образом -- от нашего "вычислительного эксперимента" останутся только общие рассуждения минут на 10, ну и красочная демонстрация -- типа "вот для этого мы будем изучать программирование".
чем-то напоминает встречу нашей кафедры со студентами на 3м курсе перед распределением.
в общем -- ИМХО -- как раз и остается голое программирование, и для опытов остаются только задачи, пригодные для изучения на 1-2м курсе. напоминаю, что диффур у нас только вскользь упоминается на 1м (механика), и подробно изучается уже на 2м. а в первом семестре нам вообще только остается узнать, что "в файл можно записать числа, можно их считать из файла, а можно аж считать, преобразовать и записать в другой файл", что мы к концу первого семестра с успехом делает 90% личного состава.
2 Йети: перед тем, как отпускать язвительные комментарии, рекоммендую ознакомиться с содержанем всех курсов нашего факультета, в том числе и неоднократно упомянутых мною на протяжении всей дискуссии ММО и ЧМ.
to SHiFTЦитата
Далее -- вычислительный эксперимент, если подходить к этому вопросу серьезно, как правило требует реализации какого-нибудь случайности или неопределенности (наиболее распространенный -- метод Монте-Карло) -- значит, необходимо, чтобы слушатель имел вменяемое представление о теории вероятностей.
Видите ли, когда Вы периодически выдаете что-то подобное, то сами провоцируете меня на "язвительные замечания". Ничего личного.
По теме: заявленная цель при заявленном пути недостижима. Можно переформулировать цель. Но пока я не могу себе представить никакую разумную цель которая достигается такой программой. О чем и речь.
Кстати, так можно опубликовать программу, здесь, или таки нельзя? Если бы я ее не видел, я бы уже подумал, что ее вообще нет.
[quote name='Йети' date='26.1.2007, 10:42' post='247791']
to SHiFT
[quote]
Кстати, так можно опубликовать программу, здесь, или таки нельзя? Если бы я ее не видел, я бы уже подумал, что ее вообще нет.
[/quote]
программ всех курсов у меня нет, а для заявленной вами целей (пункты 1-4, два поста назад) одного программирования мало, и я указал почему, и в каких других курсах эти задачи решаются, на мой взгляд, в полном объеме.
2 SHiFTЦитата(SHiFT @ 26.1.2007, 11:48)
... а для заявленной вами целей (пункты 1-4, два поста назад) одного программирования мало, и я указал почему, и в каких других курсах эти задачи решаются, на мой взгляд, в полном объеме.
Тогда сформулируйте цель Вашего курса.
Цитата(SHiFT @ 25.1.2007, 15:48)
Цитата(Йети @ 25.1.2007, 0:18)
Пойдем с этого конца. Вы можете сформулировать цель Вашего курса?
Что-нибудь вроде
курс "название курса" имеет целью:
80% студентов, прослушавших курс, должны
1. иметь представление о численном моделировании физического процесса (вычислительном эксперименте);
2. Иметь представление о численных методах решения таких-то задач;
так и есть. хотя более глубоко эти задачи решают на курсе Методов Мат Моделирования, ММФ и чмсленных методах. (3-4 курс) мы, скорее, даем навык практической реализации численных методов в виде программы для ЭВМ.
Цитата(Йети @ 25.1.2007, 0:18)
3. Быть способными поставить вычислительный эксперимент (поставить задачу, написать программу, реализующую заявленную модель физического процесса, провести вычислительный эксперимент);
4. Быть способными проинтерпретировать и продемонстрировать полученные результаты.
совершенно верно.
Марсианин
30.1.2007, 13:13
Позволю себе высказать свое мнение первокурсника...
Лекции, на мой взгляд, на первом потоке были нормальные. Впрочем, мне сложно судить, как их воспринимали - я программированием уже владел...
Семинары, напротив, были ужасны. Ужасны полным отсутствием системы, множеством "пишите так - работает ведь", сплошными рутинными приемами. Плюс к тому говорилось, что мы изучаем С, но регулярно всплывали cin, cout и прочие элементы С++. То же касалось и практикумов - рутина и только.
А между прочим, ни в какой школе программированию меня толком не учили. А было у меня две книжки - одна по С, другая по С++, старый Turbo C, и заочный тур
Московской олимпиады по программированию.
Я в нем участвовал года три. На очный тур не ходил. Но навыки остались...
Вообще-то, приходила ли кому-нибудь в голову мысль завести подобный сервер на физфаке? Устроить внутрикурсовую олимпиаду?
Возможно, это бы внесло некоторые изменения. Возможно, нет. Но хотя бы дать сами задачи, которые не только требуют читать из файла, но и обрабатывать данные по дороге, хотя бы несложно - почему нет?
Цитата(Марсианин @ 30.1.2007, 13:13)

Вообще-то, приходила ли кому-нибудь в голову мысль завести подобный сервер на физфаке? Устроить внутрикурсовую олимпиаду?
На счет внутрикурсовой олимпиады -- не уверен, но идея про сайт хорошая. Поскольку собственно я сейчас этим занимаюсь (правда, не так интенсивно как хотелось бы), готов обсудить идеи. Желательно в PM или на почту
Ну что ж, с сожалением вынужден констатировать, что Owen оказался прав.
Смотрим расписание:
http://football.dubinushka.ru/rasp2/k1p1.jpgЧитаем: Программирование. Соболев К. С.
Теперь угадайте с трех раз, кто ведет "Программирование"?
Не очень, правда, понятно, причем тут я =)
Цитата
Не очень, правда, понятно, причем тут я =)
Цитата
У меня такой дурацкий вопрос... Имеет ли смысл вообще обсуждение программы обучения программированию в этой теме? Это отлично, что мы можем все перетереть, придти (или не придти) к консенсусу, но у меня есть ощущение, что это все тихонько канет в Лету. Почему-то кажется, что преподаватели, общающиеся здесь, вряд ли имеют влияние не только на задачи/цели курса, но даже на содержание...
Про Соболева хотя много сказок страшных слышал, лично с ним не сталкивался, сказать ничего конкретного не могу... Но про наши семинары по проганью - пока они от информатики отличаются так же, как работа в прописях по "цифрописанию" от высшей математики

. И, увы, до конца семестра точно ситуация меняться не собирается.
================================================
А зачеты сдавать придется. И, увы, по "цифрописанию". А по цифрописанию много к чему придраться можно. Например, цифра, неэстетично выглядит.
================================================
Насчет эстетики - был, такой вопрос, как число double вывести с 2 пробелами в начале. Пробелы явно при выводе использовать нельзя - одно из условий. Ответ - выделить мантиссу на 3 знака. И такой изврат решает - зачет/незачет. Лучше бы алгоритм Дейкстры, heapsort, метод Монте-Карло или что-нибудь . А не какие-то шарады.
Йети
Так, собственно, против чего и против кого выступаете? А главное, ваш профит в чем?
Я тут видел, вас пригласили в гости на кафедру. Ну, чего вы мутите воду? Принимайте приглашение и приходите. Ведут занятия те, кто и должен их вести. Остальное - при очном разговоре.
ivandasch
23.2.2007, 18:56
2 igor: Ну и изврат. Неужто они думают, что надо выучить весь мануал к printf? Зачем это зубрить, когда всегда можно посмотреть!
Цитата(ivandasch @ 23.2.2007, 18:56)
Ну и изврат. Неужто они думают, что надо выучить весь мануал к printf? Зачем это зубрить, когда всегда можно посмотреть!
Я и говорю про это... Можно круто прогать, даже очень круто, но получить незачет из-за изврата.
Цитата
Лучше бы алгоритм Дейкстры, heapsort, метод Монте-Карло или что-нибудь .
Любезнейший! я бы и сам был бы рад задать на зачете вопрос типа
"выведите пожалуйста оценку скорости работы алгоритма сортировки массива heapsort (к-ва сравнений и перестановок) для случаев 1) неупорядоченного 2) частично упорядоченного и 3) частично контр-упорядоченного исходного массива длины N" -- но думаю, что на 1м курсе ответ на него мало кто "асилит". Так, как вы это описываете -- это получается дать его в рамках лекции
"вот есть такой алгоритм" -- а после звонка все забыли. Или промежуточный вариант, вопрос на зачете:
"напишите пожалуйста алгоритм сортировки heapsort" -- чем это будет принципиально отличаться от вопроса про аргументы printf? (не то, чтобы я был горячим сторонником таких вопросов) разве что тем, что на него ответит меньшее количество студентов, а после зачета -- точно также забудут. Остается или задать его реализацию "на дом" (т.е. на прак -- что по-сути сведется к "перепечатыванию" кода из Седжвика), или забить, потому как расписывать такую упоительную тему как "Алгоритмы сортировки данных" всетаки нужно время (1-3 полноценных семинара или лекции, в зависимости от полноты раскрытия темы) , которого у нас в учебном плане, к сожалению, нет.
PS: сайт кафедры теперь тут:
http://cmp.phys.msu.su -- там будут появляться новые материалы. Учитывая пожелания студентов, вопросы к зачету этого семестра, скорее всего, обновятся в сторону большей конкретизации.
to ShiFTЯ, похоже, тупой и никак не могу понять Вашей нечеткой логики (три дня думал, никак не пойму):
- почему бы не задавать студентам нормальные вопросы?
- да мы бы рады, но программа курса не позволяет!
- дык, давайте программу того, поменяем...
- не, никак нельзя: она отражает наши потребности (ну, и потребности остальных кафедр ФФ тоже).
-

(у меня получается, что хочешь задавать нормальные вопросы --- это тебе на ВМиК надо).
Теоретик
27.2.2007, 22:16
Цитата(SHiFT @ 25.2.2007, 23:38)
Или промежуточный вариант, вопрос на зачете: "напишите пожалуйста алгоритм сортировки heapsort" -- чем это будет принципиально отличаться от вопроса про аргументы printf? (не то, чтобы я был горячим сторонником таких вопросов) разве что тем, что на него ответит меньшее количество студентов, а после зачета -- точно также забудут.
Тем, что это действительно нужная вещь. Кто-то запомнит, кто-то забудет, но хотя бы будет знать о существовании такого алгоритма и в будущем сможет восстановить его в своей памяти. А вопрос про аргументы printf дурацкий уже по своей сути.
все последние (начиная с 29.11) сообщения отправлены вот
сюда..
Еще раз просьба не offtopить в разделе, в дальнейшем придется уже раздавать предупреждения персонально