Личный кабинет

DBI-Builder - Суржи

подойдет ли для обучения программированию?
Евгений Тюленев ( Пользователь )
Простите меня, только "руссифицировать" язык программирования это все равно что руссифицировать язык алгебраических формул.

ЗАЧЕМ??? Есть С/C++ классический синтаксис. Давайте методику преподавания разрабатывать, А? Может старославянское обозначение чисел вернем, а римлянам - римское.

Зачем??? Язык программирования - это ИМХО расширение языка математический формул, и как показывает практика, лучше направления C нет. Это и должно стать классикой. Ведь не считаем же в римской системе счисления.

Зачем??? В школе нужно учить основам. Зная C можно легко освоить Java, JavaScript, PHP и как следствие быть востребованным на рынке труда.

PS: интересно а как же сделать китайский или японский язык программирования. Вот Matz бы развеселился.
Юрий Копнин ( Пользователь )
Цитата (Евгений Тюленев, 20.03.2014, 15:26) <{POST_SNAPBACK}>
и как показывает практика, лучше направления C нет. Это и должно стать классикой.
Зачем??? В школе нужно учить основам. Зная C можно легко освоить Java, JavaScript, PHP и как следствие быть востребованным на рынке труда.
PS: интересно а как же сделать китайский или японский язык программирования. Вот Matz бы развеселился.

Никлаус Вирт Вас не слышит... Он считает, что есть вдохновленные писатели (я тоже к ним отношусь) и профессионалы. Профессионалу без разницы на чем писать и что писать, он должен иметь алгоритмическое мышление, а язык программирования должен способствовать безошибочному написанию кода. В языке С знак * в зависимости от контекста может иметь 4 смысловых значения, и т.д. Продвинутые студенты давно знают, хочешь без проблем сделать курсовую, делай на Pascal. Хотя я сам начинал с С, и когда-то считал, что нет ничего круче... В результате, чтобы выдержать конкуренцию в одиночку, и проворачивать проекты на уровне небольшой компании, я понял, С мне ни как не подходит. Востребованность на рынке труда, на мой взгляд - не есть хороший показатель уровня языка и использования его для обучения. Вообще востребованность на рынке предполагает работать на "дядю". Нужно готовить не специалистов востребованных на рынке, а специалистов, чьи продукты будут востребованы, а тут извиняйте, выбор средств для достижения цели у каждого свой.
Евгений Тюленев ( Пользователь )
Цитата (Юрий Копнин, 20.03.2014, 16:02) <{POST_SNAPBACK}>
Никлаус Вирт Вас не слышит... Он считает, что есть вдохновленные писатели (я тоже к ним отношусь) и профессионалы.

А это что? - Истина в последней инстанции?
Цитата
Продвинутые студенты давно знают, хочешь без проблем сделать курсовую, делай на Pascal.

Это смотря в каком ВУЗе и на каком факультете? Например мой сын без проблем сдавал курсовую на C++ и с использованием OpenGL
Сейчас работает в одной из фирм там shell, php и python
Цитата
Востребованность на рынке труда, на мой взгляд - не есть хороший показатель уровня языка и использования его для обучения.

Согласен - не основной показатель. Но при прочих равных C/C++ лучше:
1. Слов иностранных мало. => запомнят быстрее.
2. Представлены все парадигмы. => не переучивая можно познакомить со всеми.
3. Можно логично оттолкнуться от математического выражения. => в свете новых веяний ФГОС легко можно включить в курс математики.

А то что символы перегружены - это скорее плюс чем минус. Только начинающему ни к чему давать сразу и все смыслы. В 9 классе достаточно одного, например для * - достаточно значения "умножение". Известно что огромное количество математических знаков не рассматриваются в школьном курсе математики.
Если интересно можете посмотреть мой подход к преподаванию основ алгоритмизации
Юрий Копнин ( Пользователь )
Цитата (Евгений Тюленев, 21.03.2014, 05:00) <{POST_SNAPBACK}>

Учите тому, в чем лучше разбираетесь сами.. Всё равно, большинство самоопределится в будущем, если вы считаете, что используя С отдача от вашей деятельности эффективнее, пожалуйста. Главное - наша страна должна быть сильной и лидером в ИТ отрасли, для этого нужны образованные ребята, тут нужно использовать любые средства..
Свою первую программу я на С написал, я тоже с него начинал, поэтому ни чего не имею против.
Евгений Тюленев ( Пользователь )
Цитата (Юрий Копнин, 21.03.2014, 06:18) <{POST_SNAPBACK}>
Учите тому, в чем лучше разбираетесь сами.

Опять началось. Уверяю Вас, что я неплохо знаю: Assembler, BASIC, Pascal, Java, JavaScript, Python, Ruby, даже пробовал такую экзотику как FORT.

Большинство из них пытался использовать при обучении программированию и именно по 25 летнему опыту сделал окончательный вывод в школе нужно изучать C, 99,9% не будут программистами, оставшаяся сотая доля должна знать базовый синтаксис многих языков и это бесспорно C.
Роман Еннер ( Пользователь )
Цитата (Евгений Тюленев, 24.03.2014, 12:12) <{POST_SNAPBACK}>
Опять началось. Уверяю Вас, что я неплохо знаю: Assembler, BASIC, Pascal, Java, JavaScript, Python, Ruby, даже пробовал такую экзотику как FORT.

Большинство из них пытался использовать при обучении программированию и именно по 25 летнему опыту сделал окончательный вывод в школе нужно изучать C, 99,9% не будут программистами, оставшаяся сотая доля должна знать базовый синтаксис многих языков и это бесспорно C.

Евгений Анатольевич, пожалуйста, не нужно продолжать холивар! Тема вполне конкретная.
Дмитрий Изергин ( Пользователь )
По существу вопроса... В силу ряда причин я использую Паскаль для обучения алгоритмизации (1 курсы математических специальностей гос университета). До сих пор, я использовал в качестве обучающей среды Паскаль АБС.NET. Однако , в последнее время, я заметил , что курс развития среды и языка программирования, который выбрали ее создатели (при всем моем уважении к ним и их труду), приводит к тому, что с каждой новой версией их продукт все менее и менее соответствует моим целям (помогает при обучении). Лично я не против использовать вашу разработку, в том случае, если она будет в лучшую сторону отличаться от PABC... для меня важно выполнение СОВОКУПНОСТИ следующих требований:

1. Надежность среды и ее портабельность ( безошибочная функционирование под всеми Windows начиная с WinXP, независимость от настроек системы.., в идеале - с переносимого накопителя)
2. Совместимость поддерживаемого средой диалекта Паскаля с ядром (небольшим подмножеством) Обьектного Паскаля.
3.Возможность создания, отладки (псевдо)консольных программ.
4.Поддержка работы с проектами - на базовом уровне
5. Максимальная простота и полная локализация системы.
6. Наличие грамотной справки по ядру поддерживаемого языка программирования - в том числе и контекстной.
7. Современное исполнение, МАКСИМАЛЬНОЕ удобство в работе (для АБСОЛЮТНЫХ новичков в программировании).
Юрий Копнин ( Пользователь )
Цитата (Дмитрий Изергин, 28.03.2014, 18:45) <{POST_SNAPBACK}>
По существу вопроса... для меня важно выполнение СОВОКУПНОСТИ следующих требований:

1. Надежность среды и ее портабельность ( безошибочная функционирование под всеми Windows начиная с WinXP, независимость от настроек системы.., в идеале - с переносимого накопителя)
2. Совместимость поддерживаемого средой диалекта Паскаля с ядром (небольшим подмножеством) Обьектного Паскаля.
3.Возможность создания, отладки (псевдо)консольных программ.
4.Поддержка работы с проектами - на базовом уровне
5. Максимальная простота и полная локализация системы.
6. Наличие грамотной справки по ядру поддерживаемого языка программирования - в том числе и контекстной.
7. Современное исполнение, МАКСИМАЛЬНОЕ удобство в работе (для АБСОЛЮТНЫХ новичков в программировании).

1)Всё достаточно надежно, я собираюсь использовать среду в масштабе предприятия (но на данный момент, всё в стадии тестирования, в основном дорабатываются компоненты доступа к данным). Все работоспособно на Windows, Linux, Mac. Под Mac я сам не пробовал, но собирали умельцы, по сообщениям есть некоторые нюансы, но работает всё стабильно. С переносимого накопителя запустить без проблем, можно на флэшке разместить версии движка под все доступные операционные системы. На данный момент, приложение после запуска создает в папке пользователя папку в которой хранит настройки и истории последних открытых приложений, единственный нюанс вмешательства в ОС, можно отключить. Приложение написанное для этой среды будет без перекомпиляции и переделок запускаться на любой ОС. Если графическое оформление ОС похоже, даже на вид разница будет минимальна

Картинка1

Картинка2

2. Т.к. в основе системы интерпретатор, то существуют нюансы, всё зависит от того на сколько тесная нужна совместимость. ООП поддерживается, есть наследование и полиморфизм. Указателей нет. Тип Pointer введен, но в основном для передачи адресов обработчиков событий, он может указывать либо на объект программы либо на метод. Записи эмулируются (за исключением импортрованных из FPC такие как TRect, TPoint), записи нельзя создавать динамически. Кроме ООП, не поддерживается перегрузка процедур и функций, нельзя инициализировать массивы при объявлении. В остальном довольно тесно совместимо, некоторые тестовые приложения я перетащил с Delphi, такие как фрактальная графика, подправил места связанные с перегрузкой и всё работает.

3) Консольные программы создавать нельзя, нужно допиливать движок. За последнее время много изменилось, к сожалению времени теперь все меньше и меньше. Если найду помощников и будут ещё заинтересованные лица, то может быть. На днях устрою презентацию для преподавателей нашего пед.института, может заинтересуются и помогут доработать.
При отладке, можно просто выполнять программу по шагам, на данный момент, во время отладки нельзя посмотреть содержимое переменных..

4) Не понял

5, 6) Среда изначально задумана как упрощенное средство, внешний вид и поведение полностью копирует Delphi/Lazarus, вопросов ни у кого не возникало... В редакторе есть подсказчик, работает автозавершение кода, MouseLink.
Дмитрий Изергин ( Пользователь )
Цитата (Юрий Копнин, 02.04.2014, 22:29) <{POST_SNAPBACK}>
1)Всё достаточно надежно, .......

ОК давайте так... вначале я немного прокомментирую и обосную СВОИ требования, а потом отвечу на ваши комментарии..
Итак.. я обучаю будущих прикладных математиков... их программисткая ипостась (она не самая важная и не самая сложная) формируется с сильным креном в системное программирование (просто БОЛЬШАЯ часть читаемых для них курсов в нашем ВУЗе читается на системных языках программирования и имеет явный уклон в него). Всего используется несколько языков программирования (мультиязычность). Соответственно, цели..
1) Все то , что попадает в официальную часть курса (овладение базовыми навыками алгоритмизации, стандартными структурами данных и алгоритмами)
2) Поддержка следующих курсов.
3) Формирование культуры алгоритмического мышления (мультиязычность).
То есть .. первому пункту удовлетворяет ЛЮБОЙ ЯВУ в котором есть все основные конструкции , структуры, операции, соответствующие базовым понятиям и структурам императивного процедурного программирования (подпрограммы, пользовательские и базовые типы данных, процедурные типы данных.....)
Второму пункту соответствуют 2 языка С, С++
Третий пункт требует возможность работы ,по крайней мере с 2 ЯВУ достаточно сильно различающихся синтаксисом и семантикой.
В соответствии с вышесказанным у нас первый семестр обучение проводится на диалекте Паскаля второй семестр - на CИ.
Выбор конкретных языков диктуется в основном аудиторией - то есть на специальность поступают абитуриенты имеющие суммарный балл ЕГЭ
в диапазоне от 130 до 230 причем основная масса имеет балл в районе 170- 185. Большинство из низ либо не обучалось программированию, либо преподавался Паскаль (как правило на самом примитивном уровне).

Принципы преподавания:
1. Фиксация базовых понятий (алгоритм, переменная, субалгоритм, типы данных, значения...) и образов соответствующих им.
2 Проработка происходит согласно главам задачника (Абрамян) поставляемым с PABC по следующей схеме:
a) Студент анализирует задачу - решает ее
b) Cоставляет алгоритм на свободном алгоритмическом языке ( в нем фиксируются жестко лишь самые основные понятия,конструкции и семантика их использования) ОБЯЗАТЕЛЬНО в тетрадке ,
с) Этот алгоритм транслируется в программу на Паскале
d) Программа отлаживается (если встречается ошибка - ОБЯЗАТЕЛЬНО анализируется ее источник (синтаксис, семантика яву, недостаточное понимание самой задачи, алгоритмическая ошибка), делаются соответствующие правки) и сдается преподавателю.

Последовательность преподавания .. в основном совпадает с той что дается в задачнике Абрамяна (отработка операций ввода вывода, работа с элементарными типами, условный оператор, оператор выбора, циклические операторы...).:
Особенности:
1) Отдельно даются общие решения часто встречающихся (в составе более сложных) задач (преобразования цикла, задачи на экстремумы в произвольной числовой последовательности, поиск сумм и произведений членов произвольной числовой последовательности, линейный поиск, сортировка набора из 3 значений...), студенты учатся целенаправленно видеть такие куски в решениях своих задач.
2) Очень много внимания уделяется работе с подпрограммами - они рассматриваются как основное базовое средство понижения сложности получения решения искомой задачи.
3) По - возможности используются составные пользовательские типы ( в Паскале - записи), как базовое средство достижения максимального сродства с конструктами предметной области ( точки, окружности, комплексные числа...).
4) Ближе к концу семестра используется модульная организация программ, как базовое средство, позволяющее вторично использовать написанный код, дающее преимущества в отладке.
5 ) С точки зрения количества решаемых задач - то их достаточно много, в каждой теме индивидуально дается 4-6 задач (на зачет не менее 2/3 правильно решенных по каждой темы). И есть еще "массивные" задачи общие для всех - их немного...

Как следствие:
1) Для поддержки такой программы обучения (а я от нее отказываться не собираюсь) на обучающую среду накладываются очень жесткие требования по эргономике, и надежности, и "дружественности" неопытному пользователю.
2) ВСЕ визуальные компоненты не просто НЕ НУЖНЫ, они реально МЕШАЮТ.
3) Реальная консольность - не нужна, достаточна ее ВНЕШНЯЯ имитация (по отношениям к операциям ввода и вывода).
4) Дополнительные модули вроде чертежника и черепашки не нужны.. фиксация образов происходит грамотной подборкой задач из предметной областей, которые они , как математики, довольно хорошо знают , обладающих хорошей степенью абстракции.
5) Наличие четкой и ясной справки по языку (желательно контекстно)
6) Все сообщения компилятора (интерпретатора ) должны быть по возможности определенными и , разумеется русифицироваными.

Но, вышесказанное в ПОЛНОМ обьеме необходимо только в моем и близком к моему случаях. В других ситуациях возможны, допустимы, и, ,даже необходимы, другие решения.
Пример.. программисткие специализации физиков - там вполне допустимо (и они пользуются этим! ) использование одного языка (например ,Делфи) в течении всего обучения (4 года). Другой пример.. обучение программированию в школе у малолеток ... там , возможно , необходимо использование вспомогательных инструментов (черепашек, чертежников) - ибо "зацепится" за устойчивые абстрактные образы не удается (они находятся в процессе формирования)

footer logo © Образ–Центр, 2019. 12+