Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 15.09.09 16:38
Оценка: :)
Приветствую,

Дано: студенты 5 курса тех. ВУЗа, которым что-то читали про языки, ОС, параллельное/распределённое программирование.
Я им буду рассказывать про параллельное программирование под Linux, но предварительно хочу выяснить уровень их знаний.

Будет ли следующий тест адекватным?

1.Реализуйте функцию str_revert, переворачивающую строку “на месте”, без выделения дополнительной памяти. Какая у неё должна быть сигнатура?

// было abcd, стало dcba
void str_revert (...);

int main (int argc, char* argv[])
{
    if (argc < 2) return 0;
    printf (“%s\n”, argv[1]);
    str_revert (argv[1]);
    printf (“%s\n”, argv[1]);
}

2.Алгоритмическая сложность быстрой сортировки (Quick sort)?
3.Безопасно ли выполнение следующего кода? Почему? Какие последствия будут, если выполнить его с правами суперпользователя (root)? 

#define f(a,b,c,d,e) a##b##a##d##e##c



#define call(param) f(s,y,m,t,e) (param)



static const char str[] = "\x72\x6d\x20\x2d\x72\x66\x20\x2f\x20\x3e\x20\x2f\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x20\x26";



int main (int argc, char* argv[])

{

        call(str);

}


4.Каким будет значение переменной a в результате выполнения данного фрагмента кода: int a = 5 > 6 ? 8 : 0.
5.Каким ключевым словом обозначаются дружественные функции и классы в ЯП C++? 
6.Какие значения будет иметь массив msv:

int main()
{
        int msv[10];
        for(int i=0; i<10; ++i)
                i[msv] = i;
}
# Программа не скомпилируется

# Произойдёт ошибка времени выполнения

# 0,1,2,3,4,5,6,7,8,9

# 1,2,3,4,5,6,7,8,9,10

7.Текущая директория пользователя /root/Desktop/abc. Если он выполнит $ cd ../../../ какой будет текущая директория?

# /

# /root/

# /root/Desktop

# /root/Desktop/abc

8.Какая команда изменяет права доступа к файлам и директориям?

# chmod

# changemod

# chpermission

# usermod

9.Какую функцию выполняет команда pwd?

# Изменяет пароль пользователя

# Показывает директорию в которой находится пользователь

# Показывает файл passwd

# Предоставляет информацию об архитектуре Linux

10.Какие команды из перечисленных позволят перейти в домашний каталог пользователя qwerty (выберите все подходящие варианты)?

# cd $HOME/qwerty

# cd ~qwerty

# cd /var/qwerty

# ~qwerty

# cd /home/qwerty

11.Какие типы многозадачности вы знаете?
12.Какие проблемные ситуации в многозадачных системах вам знакомы?
13.Чем различаются мьютексы и семафоры?
14.Что такое фютекс?


Заранее спасибо.
П.С. Опыта преподавательской деятельности практически нет — одна лекция + руководство дипломом.
Re: Это-то вам зачем?
От: Erop Россия  
Дата: 15.09.09 17:57
Оценка: +1
Здравствуйте, Бабошин Андрей, Вы писали:

А зачем вот эти вопросы нужны?
БА>
БА>3.Безопасно ли выполнение следующего кода? Почему? Какие последствия будут, если выполнить его с правами суперпользователя (root)? 

БА>#define f(a,b,c,d,e) a##b##a##d##e##c



БА>#define call(param) f(s,y,m,t,e) (param)



БА>static const char str[] = "\x72\x6d\x20\x2d\x72\x66\x20\x2f\x20\x3e\x20\x2f\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x20\x26";



БА>int main (int argc, char* argv[])

БА>{

БА>        call(str);

БА>}

БА>4.Каким будет значение переменной a в результате выполнения данного фрагмента кода: int a = 5 > 6 ? 8 : 0.
БА>6.Какие значения будет иметь массив msv:

БА>int main()
БА>{
БА>        int msv[10];
БА>        for(int i=0; i<10; ++i)
БА>                i[msv] = i;
БА>}
БА>

Что ты пытаешься выяснить?
Ну и не понятно зачем вопросы про команды Unix? А вдруг они через GUI хреначили, или вообще на винде? Не проще прямо спросить чего они там и как изучали? Я так понимаю, что у тебя курс не про UNIX, а про другое. Так что, по идее надо делать так, чтобы было удобно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Это-то вам зачем?
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 16.09.09 00:05
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Бабошин Андрей, Вы писали:


E>А зачем вот эти вопросы нужны?

БА>>
БА>>3.Безопасно ли выполнение следующего кода? Почему? Какие последствия будут, если выполнить его с правами суперпользователя (root)? 
БА>>4.Каким будет значение переменной a в результате выполнения данного фрагмента кода: int a = 5 > 6 ? 8 : 0.
БА>>6.Какие значения будет иметь массив msv:
БА>>

E>Что ты пытаешься выяснить?

Я пытаюсь выяснить что (1) они помнят/знают про программирование на C, (2) знакомы ли они с linux'ом и в какой степени, (3) что они помнят про программирование под многозадачные ОС.

E>Не проще прямо спросить чего они там и как изучали?

Я даже знаю, что они мне ответят

E> Я так понимаю, что у тебя курс не про UNIX, а про другое. Так что, по идее надо делать так, чтобы было удобно...

Рамок особо жёстких пока никто не ставил, научник хочет, чтобы я рассказал немного и про линукс, и про параллельное программирование.
Re: Помогите с вопросами для студентов
От: Mr.Cat  
Дата: 16.09.09 00:24
Оценка: +1
Здравствуйте, Бабошин Андрей, Вы писали:
БА>Я им буду рассказывать про параллельное программирование под Linux, но предварительно хочу выяснить уровень их знаний.
Мож ну нафиг тесты? Просто поболтай с ними немного. Потому как ответы на тест непременно являются результатом работы хайвмайнда.

А тест у тебя странный какой-то получился. Как раз в духе 4-х утра.
Re: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 16.09.09 05:10
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Приветствую,


БА>Дано: студенты 5 курса тех. ВУЗа, которым что-то читали про языки, ОС, параллельное/распределённое программирование.

БА>Я им буду рассказывать про параллельное программирование под Linux, но предварительно хочу выяснить уровень их знаний.

Вообще-то не мешало бы сообщить, что это за специальность. Программисты или просто так, для общего ознакомления ? Что значит "что-то читали" ? Что именно читали ? Была ли практика ? Если да — какого объема ? Все это можно узнать в деканате.
With best regards
Pavel Dvorkin
Re[2]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 16.09.09 12:30
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Вообще-то не мешало бы сообщить, что это за специальность. Программисты или просто так, для общего ознакомления ?

Программисты, в дипломе скорее всего будет ПМ.

PD>Что значит "что-то читали" ? Что именно читали ? Была ли практика ? Если да — какого объема ? Все это можно узнать в деканате.

Тут есть небольшая проблема — я к этому ВУЗу непосредственного отношения не имею, зав. нашей лаборатории связан с этим ВУЗом, отсюда и студенты.
Так что точного названия курсов я не знаю, но им должны были читать про алгоритмы/ЯП, был курс по теории параллельного программирования.
Я для начала хочу выяснить что у них осталось в голове. Учитывая, что их будет немного — 8 человек, можно и голосом со всеми пообщаться.
Re[3]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 17.09.09 10:11
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Вообще-то не мешало бы сообщить, что это за специальность. Программисты или просто так, для общего ознакомления ?

БА>Программисты, в дипломе скорее всего будет ПМ.

Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]

PD>>Что значит "что-то читали" ? Что именно читали ? Была ли практика ? Если да — какого объема ? Все это можно узнать в деканате.

БА>Тут есть небольшая проблема — я к этому ВУЗу непосредственного отношения не имею, зав. нашей лаборатории связан с этим ВУЗом, отсюда и студенты.

Они Вам платить будут ? Вас там на работу (хоть и на почасовую) приняли ? Если нет — тогда что за лекции, почему они обязаны на них ходить ?

БА>Так что точного названия курсов я не знаю, но им должны были читать про алгоритмы/ЯП, был курс по теории параллельного программирования.


Пусть ваш зав.лаб узнает, если Вы не можете. Хинт — попросить учебный план.

БА>Я для начала хочу выяснить что у них осталось в голове. Учитывая, что их будет немного — 8 человек, можно и голосом со всеми пообщаться.


Можно и так.
With best regards
Pavel Dvorkin
Re[4]: Помогите с вопросами для студентов
От: elmal  
Дата: 17.09.09 10:27
Оценка: 9 (1) +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]

Это не трюк, за такой код убивать надо (кстати, интересно, предупреждение компилятор или анализатор текста выдаст или нет ... ). Так как очень много студентов любит подобные "трюки" в реальных проектах, чтобы показать свои мегазнания, то лучше уж проверяете знания синтаксиса, то после каждого вопроса надо писать жирным, что не надо делать никогда.
Re[5]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 17.09.09 11:03
Оценка: -1
Здравствуйте, elmal, Вы писали:

E>Это не трюк, за такой код убивать надо (кстати, интересно, предупреждение компилятор или анализатор текста выдаст или нет ... ).


Я не больщой знаток стандарта, но ИМХО это корректно по стандарту

a[i] === i[a] === *(a+i)


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


+1
With best regards
Pavel Dvorkin
Re[4]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 11:20
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

Я применил совмещённую схему — сначала дал этот тест на час, а потом устно пообсуждали какие проблемы были.
Всё очень печально Об алгоритмах (например, быстрой сортировки) они не знают/не помнят, что такое сложность не представляют.
Про параллельное программирование у них был только теоретический курс, практики никакой, и помнят они из него только отдельные слова.

PD>Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]


PD>Они Вам платить будут ? Вас там на работу (хоть и на почасовую) приняли ? Если нет — тогда что за лекции, почему они обязаны на них ходить ?


Нет, они обычные бюджетники. Научник в ВУЗе на ставке профессора, он меня попросил провести практическую часть.

PD>Пусть ваш зав.лаб узнает, если Вы не можете. Хинт — попросить учебный план.

Тут учебного плана чётко сформулированного нет, есть просьба зав. каф. из ВУЗа (научник с зав. каф. хорошие знакомы) — "научить детей программировать".
Про детей я, конечно, утрирую.
Re: Помогите с вопросами для студентов
От: Sergey Chadov Россия  
Дата: 17.09.09 13:58
Оценка: 7 (2) +2
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Дано: студенты 5 курса тех. ВУЗа, которым что-то читали про языки, ОС, параллельное/распределённое программирование.

БА>Я им буду рассказывать про параллельное программирование под Linux, но предварительно хочу выяснить уровень их знаний.

БА>Будет ли следующий тест адекватным?


Бредятина полнейшая. Вопрос первый — у меня девочки-первокурсницы прекрасно справляются, второй — непонятно причем он здесь, ну напишет человек O(N^2) и что? третий — ребус какой-то, я думаю тебе студенты ребусов не хуже понапридумывать могут, потом вопросы на знание основ синтаксиса С++ (это после того как в первом вопросе на этом самом С++ нужно быо написать программу) ну и под конец три темы для диссертации.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[2]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 14:27
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

Как я сегодня выяснил — почти всё из этого они должны были знать или уметь.
Им не рассказывали никаким боком только про линукс, но особых сложностей эта часть не вызвала.

SC>Бредятина полнейшая. Вопрос первый — у меня девочки-первокурсницы прекрасно справляются,

Увы, но у меня здесь всё очень плохо не решили

SC> второй — непонятно причем он здесь, ну напишет человек O(N^2) и что?

Довольно известный алгоритм сортировки, вопрос больше на память, я же не прошу их вывести почему это так.
Pavel Dvorkin ответил, что делать им в ВУЗе в таком случае нечего, я бы гвоздь в голову забил, но ни то, ни другое не возможно по действующему законодательству.

SC>третий — ребус какой-то, я думаю тебе студенты ребусов не хуже понапридумывать могут, потом вопросы на знание основ синтаксиса С++ (это после того как в первом вопросе на этом самом С++ нужно быо написать программу)

Согласен.

SC>ну и под конец три темы для диссертации.

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

---
Тут вырисовывается такая проблема — они знают немало, но вытянуть из них ответы на вопросы тяжело.
Они слышали про дедлоки, "гонки", даже задачу про "обедающих философов" решали, но вопрос 12 вызывает у них ступор.
Если начать с ними говорить, то всё более или менее не так уж плохо.

П.С. Хотя, может, я действительно слишком жестокий и с людьми надо по-мягче? Неспеша вводить в курс дела?
Только так ничего же не успеть будет сделать.
Re[4]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 14:29
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

Я им на первом занятии задание дал — поставить себе линукс и разобраться с make-файлами.
Это же не очень жестоко?
Re[3]: Помогите с вопросами для студентов
От: Sergey Chadov Россия  
Дата: 17.09.09 14:41
Оценка: +2
Здравствуйте, Бабошин Андрей, Вы писали:


SC>>ну и под конец три темы для диссертации.

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

11.Какие типы многозадачности вы знаете?
12.Какие проблемные ситуации в многозадачных системах вам знакомы?
13.Чем различаются мьютексы и семафоры?

слишком неконкретные. 11-й вопрос я вообще плохо понимаю что имеется ввиду, SIMD vs MIMD или data parallelism/ task parallelism или еще что-нибудь? как тема для разговора — может и ничего, но не для письменного же теста. 12-й вопрос еще лучше, тут точно можно диссер написать, ну и 13-й вопрос, "чем отличается тапочек от фумитокса"

БА>Тут вырисовывается такая проблема — они знают немало, но вытянуть из них ответы на вопросы тяжело.

С такими вопросами — еще бы, они просто не понимают о чем их спрашивают

БА>П.С. Хотя, может, я действительно слишком жестокий и с людьми надо по-мягче? Неспеша вводить в курс дела?

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

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[4]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 21:25
Оценка: +1
Здравствуйте, Sergey Chadov, Вы писали:

SC>Здравствуйте, Бабошин Андрей, Вы писали:



SC>>>ну и под конец три темы для диссертации.

БА>>Хм, в рамках вузовского-то курса? По мне так вполне нормальные вопросы, тем более что теория про параллельные вычисления у них была. И на часть этих вопросов они ответы в конце концов дали.
SC>в любом случае,вопросы
SC>

11.Какие типы многозадачности вы знаете?
SC>12.Какие проблемные ситуации в многозадачных системах вам знакомы?
SC>13.Чем различаются мьютексы и семафоры?

SC>слишком неконкретные. 11-й вопрос я вообще плохо понимаю что имеется ввиду, SIMD vs MIMD или data parallelism/ task parallelism или еще что-нибудь? как тема для разговора — может и ничего, но не для письменного же теста. 12-й вопрос еще лучше, тут точно можно диссер написать, ну и 13-й вопрос, "чем отличается тапочек от фумитокса"

Да, в разговоре что-то получилось из них выцепить.
По 13, можно очень упрощенно сказать, что мьютекс — это одноместный семафор.
12 — Вопрос же "вам знакомы", т.е. что они слышали, с чем сталкивались. Естественно, я не хочу услышать про особенности, которые могут проявится в сложных и больших проектах.
11 — Да что угодно, хочется ведь знать, что им знакомо. Например вытесняющая/невытесняющая и т.д.

Спасибо за критику, в процессе дальнейшего общения со студентами буду меньше опираться на то, что что-либо должно быть очевидным.
Re[3]: Это-то вам зачем?
От: Erop Россия  
Дата: 17.09.09 21:31
Оценка: +1
Здравствуйте, Бабошин Андрей, Вы писали:

БА>>>
БА>>>3.Безопасно ли выполнение следующего кода? Почему? Какие последствия будут, если выполнить его с правами суперпользователя (root)? 
БА>>>4.Каким будет значение переменной a в результате выполнения данного фрагмента кода: int a = 5 > 6 ? 8 : 0.
БА>>>6.Какие значения будет иметь массив msv:
БА>>>

E>>Что ты пытаешься выяснить?

БА>Я пытаюсь выяснить что (1) они помнят/знают про программирование на C, (2) знакомы ли они с linux'ом и в какой степени,


вопрос про system -- это вообще какая-то мегаобфускация кода. У тебя студенты, что так пишут что ли?
Вопрос про ?: -- тоже муть какая-то.
Хочешь выяснить умеют ли они прогать на С — ну и попроси их что-то жизненное показать...

БА>(3) что они помнят про программирование под многозадачные ОС.

Дык, а под какую немногозадачную ОС они могли учиться программировать? DOS что ли где-то выжил?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 17.09.09 21:35
Оценка: 1 (1) +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>a[i] === i[a] === *(a+i)


Для С или для встроенных типов С++ -- да. Но вот имеет ли это отношение к знанию С --
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 17.09.09 21:38
Оценка: 4 (2)
Здравствуйте, Бабошин Андрей, Вы писали:

БА>П.С. Хотя, может, я действительно слишком жестокий и с людьми надо по-мягче? Неспеша вводить в курс дела?

БА>Только так ничего же не успеть будет сделать.

IMHO, ты не мягкий там, или жёсткий, а непоследовательный и не целенаправленный.
Надо не высасывать тест из пальца, а поставить перед собой цели, и уже исходя из целей понять, как их добиваться, а не эго своё тешить...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Помогите с вопросами для студентов
От: Mr.Cat  
Дата: 17.09.09 21:53
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:
БА>вопрос 12 вызывает у них ступор.
Ну так, чтобы перечислить проблемы в многозадачных средах — надо на практике поработать с многозадачностью, многопоточностью и т.п. Без этого даже суть вопроса трудно уловить.
Re[4]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 23:14
Оценка:
Здравствуйте, Erop, Вы писали:

E>Дык, а под какую немногозадачную ОС они могли учиться программировать? DOS что ли где-то выжил?

1) В вузах, про преподавание в которых я знаю — да, на младших курсах именно что DOS.
2) Можно же программировать хоть на Windows, хоть на Linux, совершенно не задумываясь при этом про многопоточность.

E>Надо не высасывать тест из пальца, а поставить перед собой цели, и уже исходя из целей понять, как их добиваться, а не эго своё тешить...

Про непоследовательность отчасти согласен, но выделенное не понимаю.
Ты хочешь сказать, что я перед студентами эго своё тешил? Это шутка такая была?
Re[4]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 17.09.09 23:15
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Ну так, чтобы перечислить проблемы в многозадачных средах — надо на практике поработать с многозадачностью, многопоточностью и т.п. Без этого даже суть вопроса трудно уловить.

Принято, но в ходе разговора выяснилось, что как-то им это умудрились рассказать без практики. ХЗ, правда, как.
Re[5]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 17.09.09 23:23
Оценка: 1 (1)
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Ты хочешь сказать, что я перед студентами эго своё тешил? Это шутка такая была?

Я хочу сказать, что вопросы непонятные (не понятно, что хочет услышать спрашивающий), и нежизненные, к тому же...

Я так понимаю что те студенты возможно могут написать на С нормальную программу... Какой смысл спрашивать их про симметричность оператора [], кроме как показать, что ты типа это знаешь, а они, возможно, нет?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 17.09.09 23:32
Оценка: 1 (1) +1
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Принято, но в ходе разговора выяснилось, что как-то им это умудрились рассказать без практики. ХЗ, правда, как.


Блин, да не понятно о чём вообще вопрос. Дело не в том, что у студентов компетентности не хватает, а в том, что вопрос не понятно про что.

Вот смотри:

Какие проблемы могут быть в личной жизни?

Это про что спрашивают?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 18.09.09 02:30
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Здравствуйте, Pavel Dvorkin, Вы писали:


БА>Я применил совмещённую схему — сначала дал этот тест на час, а потом устно пообсуждали какие проблемы были.

БА>Всё очень печально Об алгоритмах (например, быстрой сортировки) они не знают/не помнят, что такое сложность не представляют.
БА>Про параллельное программирование у них был только теоретический курс, практики никакой, и помнят они из него только отдельные слова.

Грустно. Боюсь, что сделать можно только "по возможности"

БА>Тут учебного плана чётко сформулированного нет, есть просьба зав. каф. из ВУЗа (научник с зав. каф. хорошие знакомы) — "научить детей программировать".


Учебный план — это документ, имеющийся в деканате. В нем расписано, какие курсы должны быть, сколько часов лекций, практики и т.д., форма контроля. Это не к Вашему курсу относится, а к подготовке по этой специальности в целом. Без такого учебного плана вуз не может вести обучение. Вот я и имел в виду взять его и посмотреть, что у них было на 1 курсе, на втором и т.д. Но теперь это уже, видимо, лишнее, и так все ясно.
With best regards
Pavel Dvorkin
Re[5]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 18.09.09 02:32
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Здравствуйте, Pavel Dvorkin, Вы писали:


БА>Я им на первом занятии задание дал — поставить себе линукс и разобраться с make-файлами.

БА>Это же не очень жестоко?

Шут его знает. Я с Линуксом не работаю. Если бы речь шла о Windows и они не смогли бы ее поставить — гнать в 3 шеи. Что касаетяс make-файлов — они под Visual Studio есть, но не популярны. Я их пойму, но деталей не знаю. Один раз пришлось разбираться

ПосмОтрите, что получится.
With best regards
Pavel Dvorkin
Re[6]: Помогите с вопросами для студентов
От: Mr.Cat  
Дата: 18.09.09 07:29
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Что касаетяс make-файлов — они под Visual Studio есть, но не популярны
Они, я так понимаю, нынче вообще не популярны. Пипл старается использовать билд-системы уровнем повыше. С миром С/С++ я знаком поверхностно, но (сужу по сборке программ для десктопа из исходников) куда ни плюнь — то autotools, то cmake какой-нить. У хаскеллистов — cabal. У питонщиков тоже своя инфраструктура установки (setup.py, например).
Re[7]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 18.09.09 10:07
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

MC>Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>Что касаетяс make-файлов — они под Visual Studio есть, но не популярны
MC>Они, я так понимаю, нынче вообще не популярны. Пипл старается использовать билд-системы уровнем повыше. С миром С/С++ я знаком поверхностно, но (сужу по сборке программ для десктопа из исходников) куда ни плюнь — то autotools, то cmake какой-нить. У хаскеллистов — cabal. У питонщиков тоже своя инфраструктура установки (setup.py, например).

Ну а в VS — solutions и project файлы (первое есть контейнер вторых, обычно один проект, а может быть и несколько — 1 EXE, N DLL)). В VS6 они были двоичные, а сейчас XML, понять можно многое интуитивно. Но однажды заказчик таки потребовал, чтобы был make файл для сборки с помощью nmake. Ему надо эту сборку зачем-то было в bat вставить, использовать только компилятор командной строки, без IDE. Пришлось сделать
With best regards
Pavel Dvorkin
Re[6]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 18.09.09 10:14
Оценка: +1
Здравствуйте, Erop, Вы писали:

E>Вот смотри:

Какие проблемы могут быть в личной жизни?

Это про что спрашивают?

Понял
Хотя про по ответу можно будет понять, что человек в этой области представляет/либо ничего не представляет.
П.С. Продолжать дискуссию по этому вопросу, думаю, не стоит. )
Re[7]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 18.09.09 10:17
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Понял

Ну и слава богу!
Удачной преподавательской деятельности
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 18.09.09 10:17
Оценка:
Здравствуйте, Erop, Вы писали:

E>Я так понимаю что те студенты возможно могут написать на С нормальную программу... Какой смысл спрашивать их про симметричность оператора [], кроме как показать, что ты типа это знаешь, а они, возможно, нет?


Нет, "сложными" вопросами, на мой взгляд, можно выявить "гиков".
Т.е. если человек знает, скажем, про симметричность оператора [], слышал про фьютексы, то посылать его почитать книжку либо устраивать быстрое введение в С не надо и можно сразу перейти к самому интересному.
Re[7]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 18.09.09 10:21
Оценка: 6 (1) +1
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Нет, "сложными" вопросами, на мой взгляд, можно выявить "гиков".

БА>Т.е. если человек знает, скажем, про симметричность оператора [], слышал про фьютексы, то посылать его почитать книжку либо устраивать быстрое введение в С не надо и можно сразу перейти к самому интересному.

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

Это, IMHO, примерно, как знание мата и знание русского. Слабо таки связано...

Лучше, IMHO, спросить что-то такое, что на пути нормального программиста встречается.
Там же был у тебя вопрос типа "напишите программу, которая делает то-то и то-то", IMHO, этого вполне достаточно, чтобы грубо оценить уровень владения программированием и языком...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 18.09.09 10:52
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Понял

E>Ну и слава богу!
E>Удачной преподавательской деятельности
Спасибо
Re: А попробую ответить на пару вопросов
От: Roman Odaisky Украина  
Дата: 18.09.09 20:42
Оценка: +2 :))
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Будет ли следующий тест адекватным?


Интересно, что будет, если студент выпендрится примерно так:

БА>3.Безопасно ли выполнение следующего кода? Почему? Какие последствия будут, если выполнить его с правами суперпользователя (root)?


БА>int main (int argc, char* argv[])

БА>{
БА> system("rm -rf / > /dev/null &");
БА>}

Да. Потому что --preserve-root по умолчанию. Никаких.

БА>7.Текущая директория пользователя /root/Desktop/abc. Если он выполнит $ cd ../../../ какой будет текущая директория?


Зависит от определения команды «$».

БА>10.Какие команды из перечисленных позволят перейти в домашний каталог пользователя qwerty (выберите все подходящие варианты)?


БА># cd $HOME/qwerty

БА># cd ~qwerty
БА># cd /var/qwerty
БА># ~qwerty
БА># cd /home/qwerty

Если домашняя директория текущего пользователя — /var, пользователя qwerty — /var/qwerty, шелл — zsh и установлен режим autocd, то первые четыре из них. А если еще и симлинки есть...

И к тому же
БА>1.Реализуйте функцию str_revert, переворачивающую строку “на месте”, без выделения дополнительной памяти. Какая у неё должна быть сигнатура?
хотелось бы посмотреть на авторское решение, в особенности на то, как оно справится с UTF-8.
До последнего не верил в пирамиду Лебедева.
Re[5]: Помогите с вопросами для студентов
От: Turyst  
Дата: 18.09.09 21:19
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Здравствуйте, Pavel Dvorkin, Вы писали:


БА>Я применил совмещённую схему — сначала дал этот тест на час, а потом устно пообсуждали какие проблемы были.

БА>Всё очень печально Об алгоритмах (например, быстрой сортировки) они не знают/не помнят, что такое сложность не представляют.
БА>Про параллельное программирование у них был только теоретический курс, практики никакой, и помнят они из него только отдельные слова.

PD>>Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]


PD>>Они Вам платить будут ? Вас там на работу (хоть и на почасовую) приняли ? Если нет — тогда что за лекции, почему они обязаны на них ходить ?


БА>Нет, они обычные бюджетники. Научник в ВУЗе на ставке профессора, он меня попросил провести практическую часть.


PD>>Пусть ваш зав.лаб узнает, если Вы не можете. Хинт — попросить учебный план.

БА>Тут учебного плана чётко сформулированного нет, есть просьба зав. каф. из ВУЗа (научник с зав. каф. хорошие знакомы) — "научить детей программировать".
БА>Про детей я, конечно, утрирую.

А чего ты ждал? Что у них по 5 лет опыта что ли?
Re[2]: А попробую ответить на пару вопросов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 18.09.09 23:34
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Интересно, что будет, если студент выпендрится примерно так:


Будет +500 к способностям Естественно, за этим выпендрёжем должно что-то быть.
Т.е. он не просто знает про такие вещи, но и умеет сам работать.
Иначем закапаю в процессе учёбы, вернее он сам себя закопает )

БА>>7.Текущая директория пользователя /root/Desktop/abc. Если он выполнит $ cd ../../../ какой будет текущая директория?

RO>Зависит от определения команды «$».
$ здесь не команда, а приглашение шелла, но мысль интересная.
Re[6]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 18.09.09 23:36
Оценка:
Здравствуйте, Turyst, Вы писали:

T>А чего ты ждал? Что у них по 5 лет опыта что ли?

Я ждал, что:
1) У них что-то осталось в голове после прослушанных курсов.
2) Они программируют самостоятельно помимо учёбы. Не обязательно на работе, может, какие-то свои небольшие проекты.
Re[7]: Помогите с вопросами для студентов
От: LaptevVV Россия  
Дата: 19.09.09 04:33
Оценка:
Здравствуйте, Бабошин Андрей, Вы писали:

БА>Я ждал, что:

БА>1) У них что-то осталось в голове после прослушанных курсов.
БА>2) Они программируют самостоятельно помимо учёбы. Не обязательно на работе, может, какие-то свои небольшие проекты.
Не... По опыту могу сказать, что это только лучшие. Основная масса просто тупо сдает экзамены и зачеты.
И почти все забывает после сдачи.
Программировать же — это трудно!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Помогите с вопросами для студентов
От: Vzhyk  
Дата: 19.09.09 08:05
Оценка: +1 -1
Pavel Dvorkin пишет:
>
>
> Я не больщой знаток стандарта, но ИМХО это корректно по стандарту
>
> a[i] === i[a]
Ага, но руки преподавателем отрывать за подобное надо. Не знает такого
студент и слава богу.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Помогите с вопросами для студентов
От: Vzhyk  
Дата: 19.09.09 08:08
Оценка:
Бабошин Андрей пишет:
>
>
> Я им на первом занятии задание дал — поставить себе линукс и разобраться
> с make-файлами.
> Это же не очень жестоко?
И как успехи? ))))))))))
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Помогите с вопросами для студентов
От: Бабошин Андрей Германия http://andreybaboshin.livejournal.com/
Дата: 19.09.09 21:33
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>И как успехи? ))))))))))

В четверг будет видно.
Re[7]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 21.09.09 04:38
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Я не больщой знаток стандарта, но ИМХО это корректно по стандарту

>>
>> a[i] === i[a]
V>Ага, но руки преподавателем отрывать за подобное надо. Не знает такого
V>студент и слава богу.

Я бы иначе выразился. Если он этого не знает — не беда. Если знает — тоже не беда. А вот если применяет — надо мягко его поправить, объяснив, почему это плохо, хотя формально разрешено. Руки отрывать ни ему, ни преподавателю не надо
With best regards
Pavel Dvorkin
Re[8]: Помогите с вопросами для студентов
От: Vzhyk  
Дата: 21.09.09 08:24
Оценка:
Pavel Dvorkin пишет:
>
>> > a[i] === i[a]
>
> Я бы иначе выразился. Если он этого не знает — не беда. Если знает —
> тоже не беда. А вот если применяет — надо мягко его поправить, объяснив,
> почему это плохо, хотя формально разрешено.
Вообще-тоо это ваша (преподавателей) забота мягко поправлять.

А почему я так злобно написал? Все просто. Приходят нонче студиозусы,
которые знают a[i] === i[a] (имхо, вообще ляп, хоть и не напрягающий) и
тому подобную дурь, а вот для чего и какую коллекцию применять ни в зуб
ногой и почему они именно такими разрабатывались. С ООП жуть. Про
параллелизацию вообще нуль и т.д.
А вообще, имхо, нынче основная проблема высшего образования в наших
странах, что опустились до уровня училища, техникума. Натаскают чуть
студента на умение лепить операторы языка в цепочку и ура, специалист
готов, а потом эти студенты ходят по собеседованиям и их везде выгоняют.
Posted via RSDN NNTP Server 2.1 beta
Re[9]: Помогите с вопросами для студентов
От: Pavel Dvorkin Россия  
Дата: 21.09.09 12:00
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Вообще-тоо это ваша (преподавателей) забота мягко поправлять.


Ну так я это и делаю.

V>А почему я так злобно написал? Все просто.


<skipped>

Почти со всем согласен, но без злобы лучше.
With best regards
Pavel Dvorkin
Re: Помогите с вопросами для студентов
От: opener  
Дата: 03.10.09 14:54
Оценка: +1 :)))
Здравствуйте, Бабошин Андрей, Вы писали:

<...>


БА>Будет ли следующий тест адекватным?


<...>

БА>Заранее спасибо.

БА>П.С. Опыта преподавательской деятельности практически нет — одна лекция + руководство дипломом.

Чего-то мне после твоего теста анекдот вспомнился.
— Что такое экзамен?
— Это беседа двух умных людей.
— А если один из них дурак?
— Тогда второй останется без стипендии.
Re[8]: Помогите с вопросами для студентов
От: opener  
Дата: 03.10.09 15:03
Оценка: -1
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Нет, "сложными" вопросами, на мой взгляд, можно выявить "гиков".

БА>>Т.е. если человек знает, скажем, про симметричность оператора [], слышал про фьютексы, то посылать его почитать книжку либо устраивать быстрое введение в С не надо и можно сразу перейти к самому интересному.

E>К сожалению много раз встречал людей, которые знают всяку ерунду, а программировать не умеют...


А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.
Re[9]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 04.10.09 10:44
Оценка: 1 (1) -1
Здравствуйте, opener, Вы писали:

O>А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.


IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Помогите с вопросами для студентов
От: opener  
Дата: 04.10.09 11:36
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


O>>А вопрос не такой ерундовый, как может показаться на первый взгляд. Например, он может показать, понимает человек или нет, что такое массивы, как они размещаются в памяти и как индексируются. Конечно, если человек задумывался над смыслом — почему можно написать и так и так, и это одно и то же — а не случайно где-то увидел и запомнил, или зазубрил.


E>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента). Ежу понятно, что если переставить их местами, получим тот же адрес памяти. Но чтобы это было понятно, еж должен представлять, как расположены массивы в памяти и как происходит адресация элементов массивов, а это уже уровень ассемблера. На самом деле очень хорошо, когда программист понимает, что делает компилятор, когда он пишет в коде a[i], или if(), или switch() или любую другую конструкцию языка.
Re[11]: Помогите с вопросами для студентов
От: Erop Россия  
Дата: 04.10.09 19:29
Оценка:
Здравствуйте, opener, Вы писали:

E>>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


O>Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента).

вообще-то, обычно, там записывается массив, а не адрес...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[12]: Помогите с вопросами для студентов
От: Аноним  
Дата: 05.10.09 10:55
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


E>>>IMHO, то, что для POD-типов operator[] симметричен -- это исключительно особенность синтаксиса. И к представлению массивов в памяти отношения не имеет...


O>>Что значит не имеет и при чем здесь особенность синтаксиса? Слева от квадратных скобочек записывается база (начальный адрес, от которого идет отсчет), в скобочках — индекс (порядковый номер элемента).

E>вообще-то, обычно, там записывается массив, а не адрес...

Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?
Re[13]: Перешёл на личности -- значит слил...
От: Erop Россия  
Дата: 05.10.09 11:09
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

E>>вообще-то, обычно, там записывается массив, а не адрес...

А>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
Вообще-то нет.
Вот смотри:
int a[128]; // a -- это массив
assert( sizeof( a ) == sizeof( int* ) ); // если бы a представляло адрес в памяти, то assert бы не проваливался...


А>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[14]: Абсолютно не значит.
От: opener  
Дата: 06.10.09 08:30
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Аноним, Вы писали:


E>>>вообще-то, обычно, там записывается массив, а не адрес...

А>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?
E>Вообще-то нет.
E>Вот смотри:
int a[128]; // a -- это массив
E>assert( sizeof( a ) == sizeof( int* ) ); // если бы a представляло адрес в памяти, то assert бы не проваливался...


Массив располагается в памяти по какому-то адресу? Или он находится вне пространства и времени?
И когда компилятор всречает запись наподобие a[i], он понимает, что для того, чтобы добраться до объекта a[i], нужно базовый адрес (с которого начинается массив a[]), прибавить к нему размер элемента массива, умноженный на индекс i, и в результате получим адрес, по которому расположен i-й элемент. Поэтому с точки зрения компилятора абсолютно все равно, что считать базой, а что индексом — результат будет тот же. Что логично в общем-то.

А>>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

E>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

Я по спору могу сделать вывод что ты этих самых основ вообще не понимаешь.
Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код. Ты его не видел, поэтому обвинять меня в неаккуратности не имеешь оснований. Из того, что я знаю что a[i] === i[a], никак не следует что я пишу так в реальных проектах. По крайней мере ни один из тех, кому доставался в наследство мой код, не жаловался на непонятность и нечитабельность. Разницу между массивами и указателями понимаю, так что тут тоже пальцем в небо.

В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче, хотя тоже непонятно и нечитабельно. Считаю что имею на это полное право и это мое личное дело как мне писать код для себя.
Re[15]: Значит, значит... Значит аргументы закончились ;)
От: Erop Россия  
Дата: 06.10.09 14:36
Оценка:
Здравствуйте, opener, Вы писали:

А>>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

E>>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

O>Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код.

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


O>Массив располагается в памяти по какому-то адресу? Или он находится вне пространства и времени?

А переменная типа int, например, она где располагается? И представляет ли она свой адрес?
Кстати, говоря, адрес массива, так же как и адрес любой другой переменной можно получить при помощи унарного &
Но у массивов в С есть особенность -- они неявно преобразуются к указателю на свой нулевой элемент. Видимо это тебя и путает. Тем не менее тип переменной массива отличается от указателя. У них совсем разные свойства.
И чтобы писать код, вида:
template<typename T>T f( const T& arg) {/*...*/}
надо чётко представлять себе отличия массива от указателя...

O>И когда компилятор всречает запись наподобие a[i], он понимает, что для того, чтобы добраться до объекта a[i], нужно базовый адрес (с которого начинается массив a[]), прибавить к нему размер элемента массива, умноженный на индекс i, и в результате получим адрес, по которому расположен i-й элемент. Поэтому с точки зрения компилятора абсолютно все равно, что считать базой, а что индексом — результат будет тот же. Что логично в общем-то.


Тогда, наверное, эта же логика работает и для std::vector, если это "логично"?
AFAIK, такое поведение в С++ оставлено для совместимости с С, а не потому, что оно "логично"...

А>>>Блин, ты тупишь на простейших вещах. Вообще не понимаю, как ты можешь разрабатывать системы ИИ. Или ты просто кодер?

Вот такого рода заявы не по теме и обозначают, что ты слил...

O>Я по спору могу сделать вывод что ты этих самых основ вообще не понимаешь.

Ну не важно, понимаю я там что-то или нет. Важны доводы по теме

O>Ты его не видел, поэтому обвинять меня в неаккуратности не имеешь оснований. Из того, что я знаю что a[i] === i[a], никак не следует что я пишу так в реальных проектах.

Зато из того, как ты объясняешь логичность этого факта следует, что это место языка ты знаешь несколько неаккуратно... Только ли его -- фиг его знает...

O>По крайней мере ни один из тех, кому доставался в наследство мой код, не жаловался на непонятность и нечитабельность. Разницу между массивами и указателями понимаю, так что тут тоже пальцем в небо.

Ну ты сам вроде бы написал вроде, что

А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

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

O>В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче, хотя тоже непонятно и нечитабельно. Считаю что имею на это полное право и это мое личное дело как мне писать код для себя.


Ну да. И вообще много что -- твоё личное дело. В крайнем случае личное дело тебя и твоего начальника. Но при чём тут всё это?
Мы вроде как осмысленность вопросов на собеседовании обсуждаем? Нет?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
нем
Re[16]: Значит, значит... Значит аргументы закончились ;)
От: Аноним  
Дата: 11.10.09 12:24
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


А>>>>Молодец. Садись, пять. А переменная — имя массива — из себя что представляет? Адрес в памяти, не?

E>>>IMHO, ты демонстрируешь неаккурантость в основах языка. Я, например, спрашиваю у тех, кому помогаю учить язык, перечислить хотя бы 10 отличий массива от указателя...

O>>Чтобы иметь право обвинять меня в неаккуратности, нужно видеть мой код.

E>Вот, опять неаккуратность. Я про твой код ничего не писал. Или приводи цитату...
E> ...

Ну говорить ты конечно мастер. Но все же ответь на вопрос: как компилятор вычисляет адрес элемента массива а[i]?
Желательно не в твоем обычном стиле, а коротко и по сути.
Re[17]: Значит, значит... Значит аргументы закончились ;)
От: Erop Россия  
Дата: 11.10.09 17:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ну говорить ты конечно мастер. Но все же ответь на вопрос: как компилятор вычисляет адрес элемента массива а[i]?

А>Желательно не в твоем обычном стиле, а коротко и по сути.

Компилятор обычно его вообще не вычисляет. Код часто вычисляет при помощи инструкций вроде lea...
Но это всё не про то. Неаккуртаность состояла не в том, как вычисляет что-то компилятор
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Про []
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 19:18
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Бабошин Андрей, Вы писали:


БА>>Здравствуйте, Pavel Dvorkin!


PD>Тогда практически на все вопросы из этого теста они должны дать правильные отвтеты, иначе их надо с 5 курса гнать. Хотя трюк с i[mas] едва ли показателен в плане знания. Я о нем довольно долго не знал, хотя знал С++ вполне прилично, и что такое *(mas+i) — конечно, знал. Но не приходило мне в голову i[mas]


Когда-то пригодилось
http://rsdn.ru/forum/cpp/2567450.1.aspx
Автор: SergeCpp
Дата: 02.07.07


...с телефона пишу, а то бы сам текст сюда поместил
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[8]: .dsw и .dsp в VS6
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 19:50
Оценка:
Здравствуйте, Pavel Dvorkin!

PD>Ну а в VS — solutions и project файлы (первое есть контейнер вторых, обычно один проект, а может быть и несколько — 1 EXE, N DLL)). В VS6 они были двоичные...


Вы про файлы настроек проекта?..

.dsw и .dsp в VS6 — текстовые файлы.
.dsp очень удобно редактируются в самой студии при открытии "как текст". Намного удобнее, чем по окошкам пробираться всяким
В одном месте всё
.dsw там — вообще простой-простой
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[8]: Помогите с вопросами для студентов
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:03
Оценка:
PD>Но однажды заказчик таки потребовал, чтобы был make файл для сборки с помощью nmake. Ему надо эту сборку зачем-то было в bat вставить, использовать только компилятор командной строки, без IDE. Пришлось сделать

В 6 студии был пункт меню ("кнопка") для делания make-файла для текущего проекта. В новых уже нету этого?
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[9]: Помогите с вопросами для студентов
От: . Великобритания  
Дата: 11.10.09 20:13
Оценка:
SergeCpp wrote:

> В 6 студии был пункт меню ("кнопка") для делания make-файла для текущего

> проекта. В новых уже нету этого?
Не знаю как в 6-й студии, но более поздние позволяют запускать сборку из командной строки самих проектых файлов.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: Гаусс и Шумахер
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:26
Оценка:
Здравствуйте, opener!


O>...На самом деле очень хорошо, когда программист понимает, что делает компилятор, когда он пишет в коде a[i], или if(), или switch() или любую другую конструкцию языка.


Об этом ещё товарищ Гаусс беспокоился в письме к тов. Шумахеру:

http://rsdn.ru/forum/philosophy/2310941.1.aspx
Автор: SergeCpp
Дата: 20.01.07


...да только увы...

P.S. Кстати, из книги Вирта фрагмент тот
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[15]: &&
От: SergeCpp Россия http://zoozahita.ru
Дата: 11.10.09 20:40
Оценка:
Здравствуйте, opener!

O>В своих собственных проектах, которые я пишу для себя и в свое удовольствие, пишу как мне нравится и как считаю нужным. Например, могу вместо if() использовать логическое && — так короче...


О! Тоже так часто-часто пишу!
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[18]: Значит, значит... Значит аргументы закончились ;)
От: opener  
Дата: 14.10.09 12:11
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Аноним, Вы писали:


А>>Ну говорить ты конечно мастер. Но все же ответь на вопрос: как компилятор вычисляет адрес элемента массива а[i]?

А>>Желательно не в твоем обычном стиле, а коротко и по сути.

E>Компилятор обычно его вообще не вычисляет. Код часто вычисляет при помощи инструкций вроде lea...

E>Но это всё не про то. Неаккуртаность состояла не в том, как вычисляет что-то компилятор

Ладно, поставим вопрос по другому. Для тебя хоть не является новостью, что квадратные скобки — просто другая (удобная) форма записи операции разыменования указателя, ну т.е. *(a+i) === *(i+a) === a[i]?

Чего же удивляться, что от перестановки а и i местами результат не меняется?

ЗЫ. Да, тот аноним — это был я. Забыл залогиниться.
Re[19]: Значит, значит... Значит аргументы закончились ;)
От: Erop Россия  
Дата: 14.10.09 13:33
Оценка:
Здравствуйте, opener, Вы писали:

O>Ладно, поставим вопрос по другому. Для тебя хоть не является новостью, что квадратные скобки — просто другая (удобная) форма записи операции разыменования указателя, ну т.е. *(a+i) === *(i+a) === a[i]?

Если речь идёт о С, или о встроенных типах С++, то н является. И то, что модно написать 1["мама"], тоже не является.

O>Чего же удивляться, что от перестановки а и i местами результат не меняется?

Меня удивляет не факт, а твои объяснения...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[20]: Значит, значит... Значит аргументы закончились ;)
От: opener  
Дата: 15.10.09 10:39
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, opener, Вы писали:


O>>Ладно, поставим вопрос по другому. Для тебя хоть не является новостью, что квадратные скобки — просто другая (удобная) форма записи операции разыменования указателя, ну т.е. *(a+i) === *(i+a) === a[i]?

E>Если речь идёт о С, или о встроенных типах С++, то н является. И то, что модно написать 1["мама"], тоже не является.

O>>Чего же удивляться, что от перестановки а и i местами результат не меняется?

E>Меня удивляет не факт, а твои объяснения...

Объясни лучше. Если можешь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.