К вопросу о том, что преподавать
От: Mamut Швеция http://dmitriid.com
Дата: 30.10.04 18:43
Оценка: 62 (9) +8
Частично здесь
Автор: Mamut
Дата: 28.10.04
.

Читаю, значит, Фаулера, "Refactoring, Improving the Design of Existing Code". И натыкаюсь на великолепную вещь:

The compiler doesn't care whether the code is ugly or clean.

Компилятору все равно, написан код коряво или как следует.


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

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

Как у нас (да и не только у нас) обычно обучают программированию?

#include <iostream>

void main()
{
    cout << "Hello world!";
}


"Дети, запомните, что надо обязательно писать следущие элементы в ваших программах: #include <iostream>, void, main, cout, <<". И так шаг за шагом ученики/студенты зазубривают простейшие элементы синтаксиса, простейшие алгоритмы, так и не научившись думать.

Позвольте привести два примера из разряда "свежо предание, да верится с трудом". Из недавней моей студенческой жизни.

Пример 1.

Профессор на первой же паре предлагает всем приобрести книгу типа "С++ за 21 день". Дальнейшее обучение, со всеми примерами, идет по ней. Курс ведется так: 50% — терия, 50% — практика, на которой буквально насильно вбиваются в голову примеры из книги.

Экзамен — три примера из книги, две дополнительные задачи "для самых умных". Все прошли. Факультет — "Програмирование"

Пример 2.

В "соседнем" университете на таком же факультете учился мой друг. Первый семестр их преподователь гонял только по алгоритмам и блок-схемам, причем зачастую довольно сложным. В отдельных семестрах до 80% не проходили курс и "оставались на следущий год". Как его ненавидели!

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

--Конец примеров--

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

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

Именно поэтому я хочу попросить общественность вернуться к "истокам":

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

(с) LapteVV
Автор: LaptevVV
Дата: 20.10.04


Так вот. Как и чему мы будем их учить? Об этом надо действительно думать. Это я вам заявляю со всей ответственность человека, недавно вышедшего из горнила университета и который до сих пор пытается переучится думать. Т.е. который пытается научится думать правильно.

З.Ы. Хоть и небольшой, но опыт программирования на различных языках у меня есть. C++, Pascal, Object Pascal(Delphi), PHP, VB 6. Ни один из этих языков не учит программированию. Они — лишь средства, и с помощью любого из них можно создать и конфетку и отходы.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.