ЯП для школьников углубленно изучающих программирование
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 07:29
Оценка: 6 (1)
Доброе(ый,ой) утро/день/вечер/ночи! (нужное подчеркнуть)
Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:

1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).
2. С — изучаем низкоуровневое программирование в Unix среде.
3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
3_2. Java — высокоуровневое программирование (ООП, алгоритмы).

вот тут я сомневаюсь, после C сразу перейти на Java или C++
По идее переход от C к C++ кажется более логичным. Но Java дает сразу нормальное ООП. И Java проще чем С++.
В C++ можно отбросить все лишние сложности типа RTTI, exceptions, etc и рассматривать его как C с классами.

Для 3D будем использовать движок Panda3D или Ogre3D. Тут C++ в выигрыше.
Для Web будем использовать Django.

ЗЫ: буду рад советам и размышлениям.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re: ЯП для школьников углубленно изучающих программирование
От: Аноним  
Дата: 18.10.11 07:42
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Доброе(ый,ой) утро/день/вечер/ночи! (нужное подчеркнуть)

___>Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:
___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).
___>2. С — изучаем низкоуровневое программирование в Unix среде.
___>3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
___>3_2. Java — высокоуровневое программирование (ООП, алгоритмы).
___>вот тут я сомневаюсь, после C сразу перейти на Java или C++
___>По идее переход от C к C++ кажется более логичным. Но Java дает сразу нормальное ООП. И Java проще чем С++.
___>В C++ можно отбросить все лишние сложности типа RTTI, exceptions, etc и рассматривать его как C с классами.
___>Для 3D будем использовать движок Panda3D или Ogre3D. Тут C++ в выигрыше.
___>Для Web будем использовать Django.

Ни фига себе у вас в школе "увлекающиеся программированием"!
Или это вы сильно увлеклись?
Re: ЯП для школьников углубленно изучающих программирование
От: Аноним  
Дата: 18.10.11 07:53
Оценка: -1
Здравствуйте, __lambda__, Вы писали:

___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).

___>2. С — изучаем низкоуровневое программирование в Unix среде.
___>3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
___>3_2. Java — высокоуровневое программирование (ООП, алгоритмы).

Баловство все это. Logo, потом максимум Javascript.
Re: ЯП для школьников углубленно изучающих программирование
От: boot  
Дата: 18.10.11 07:55
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Доброе(ый,ой) утро/день/вечер/ночи! (нужное подчеркнуть)

___>Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:

___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).

___>2. С — изучаем низкоуровневое программирование в Unix среде.
___>3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
___>3_2. Java — высокоуровневое программирование (ООП, алгоритмы).

___>вот тут я сомневаюсь, после C сразу перейти на Java или C++

___>По идее переход от C к C++ кажется более логичным. Но Java дает сразу нормальное ООП. И Java проще чем С++.
___>В C++ можно отбросить все лишние сложности типа RTTI, exceptions, etc и рассматривать его как C с классами.

___>Для 3D будем использовать движок Panda3D или Ogre3D. Тут C++ в выигрыше.

___>Для Web будем использовать Django.

___>ЗЫ: буду рад советам и размышлениям.


Я остановился бы на Си и JavaScript. То, что невозможно будет (?) реализовать на Си, можно и на C++, но это должен быть естественный переход, все зависит от решаемых задач.
Жизнеспособность прямо пропорциональна простоте!
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 08:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ни фига себе у вас в школе "увлекающиеся программированием"!

А>Или это вы сильно увлеклись?

А что не так? Мы сейчас как раз Си заканчиваем, довольно таки гладко все идет. До этого у них был примерно месяц программирования на Python.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 08:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Баловство все это. Logo, потом максимум Javascript.


Logo — они рассмеются мне в лицо.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 08:36
Оценка:
Здравствуйте, boot, Вы писали:

B>Я остановился бы на Си и JavaScript. То, что невозможно будет (?) реализовать на Си, можно и на C++, но это должен быть естественный переход, все зависит от решаемых задач.


А почему именно JS? Я понимаю, нужен только браузер и блокнот. Можно выложить в инет, показать друзьям. Нет, я ничего не имею против, просто он у нас опционально идет, в том году при изучении Web технологий мы его изучали вместе с Django.

Просто во всем этом есть логика:
Python — основные концепции.
C — низкоуровневое программирование.
C++ — высокоуровневое программирование.
JS — ? мне кажется он мог бы встать на место Python'а. Но Python лучше.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[3]: ЯП для школьников углубленно изучающих программирован
От: vladislaw  
Дата: 18.10.11 08:48
Оценка: +1
Здравствуйте, __lambda__, Вы писали:

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


B>>Я остановился бы на Си и JavaScript. То, что невозможно будет (?) реализовать на Си, можно и на C++, но это должен быть естественный переход, все зависит от решаемых задач.


___>А почему именно JS? Я понимаю, нужен только браузер и блокнот. Можно выложить в инет, показать друзьям. Нет, я ничего не имею против, просто он у нас опционально идет, в том году при изучении Web технологий мы его изучали вместе с Django.


___>Просто во всем этом есть логика:

___>Python — основные концепции.
___>C — низкоуровневое программирование.
___>C++ — высокоуровневое программирование.
___>JS — ? мне кажется он мог бы встать на место Python'а. Но Python лучше.

Что же это за "школьники" такие? Неужели Django теперь знают? Лучше выбрать один язык и углубленно изучать на его примере алгоритмы и структуры данных, а сам язык имхо не столь важен.
Re[3]: ЯП для школьников углубленно изучающих программирован
От: boot  
Дата: 18.10.11 08:56
Оценка:
Здравствуйте, __lambda__, Вы писали:

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


B>>Я остановился бы на Си и JavaScript. То, что невозможно будет (?) реализовать на Си, можно и на C++, но это должен быть естественный переход, все зависит от решаемых задач.


___>А почему именно JS? Я понимаю, нужен только браузер и блокнот. Можно выложить в инет, показать друзьям. Нет, я ничего не имею против, просто он у нас опционально идет, в том году при изучении Web технологий мы его изучали вместе с Django.


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

___>Просто во всем этом есть логика:

___>Python — основные концепции.
___>C — низкоуровневое программирование.
___>C++ — высокоуровневое программирование.
___>JS — ? мне кажется он мог бы встать на место Python'а. Но Python лучше.

Согласен, логика присутствует. Только как Вы объясните необходимость обертывания кода в класс, в задаче где ни одна сущность не повторяется дважды, либо можно спокойно использовать массив структур? Я не в курсе сколько у Вас времени на одного ученика, но на пару лет, думаю, хватит и двух языков, каких выбирать Вам, но поверьте, самое интересное в глубине.
Жизнеспособность прямо пропорциональна простоте!
Re[4]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 09:09
Оценка: -1
Здравствуйте, vladislaw, Вы писали:

V>Что же это за "школьники" такие? Неужели Django теперь знают?


Обычные школьники. Django знают.

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


Согласен. И этим языком основным хочу сделать C++. Но в последние моменты начал сомневаться, думаю, не выбрать ли Java? Т.к. они еще на олимпиадах будут учавствовать, а там выбор между C/C++ и Java.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[4]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 18.10.11 09:15
Оценка:
Здравствуйте, boot, Вы писали:

B>Разговор ведь о языках, а сейчас веб (и думаю далёко в будущем) это JS. Я сам долгое время относился к JS как к игрушке, поэтому сейчас могу смело утверждать, что это не игрушка, хоть и кажется простым. Просто поверьте, это познается на практике.


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

B>Согласен, логика присутствует. Только как Вы объясните необходимость обертывания кода в класс, в задаче где ни одна сущность не повторяется дважды, либо можно спокойно использовать массив структур? Я не в курсе сколько у Вас времени на одного ученика, но на пару лет, думаю, хватит и двух языков, каких выбирать Вам, но поверьте, самое интересное в глубине.


Копать в глубину, изучать метапрограммирование на шаблонах и прочие страшные слова они будут тогда, когда станут профессиональными программистами, а пока это школьники, нам хватит основных моментов
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[5]: ЯП для школьников углубленно изучающих программирован
От: boot  
Дата: 18.10.11 09:43
Оценка: -1
Здравствуйте, __lambda__, Вы писали:

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


B>>Разговор ведь о языках, а сейчас веб (и думаю далёко в будущем) это JS. Я сам долгое время относился к JS как к игрушке, поэтому сейчас могу смело утверждать, что это не игрушка, хоть и кажется простым. Просто поверьте, это познается на практике.


___>Никто не говорил о том, что JS игрушка. Просто поверить увы не могу. Практики у меня тоже хватает. Просто некуда его воткнуть и все. Его место занимает Python.


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

B>>Согласен, логика присутствует. Только как Вы объясните необходимость обертывания кода в класс, в задаче где ни одна сущность не повторяется дважды, либо можно спокойно использовать массив структур? Я не в курсе сколько у Вас времени на одного ученика, но на пару лет, думаю, хватит и двух языков, каких выбирать Вам, но поверьте, самое интересное в глубине.


___>Копать в глубину, изучать метапрограммирование на шаблонах и прочие страшные слова они будут тогда, когда станут профессиональными программистами, а пока это школьники, нам хватит основных моментов


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

За обучение Си потомки Вам скажут спасибо. С++ все таки отнимает много времени на реализацию, удобен для больших проектов, он постоянно мурлычет "напиши класс". Сравните близкие к идеалу реализации простой задачи на Си и С++, больше всего вопросов посыпется из обзора Си-кода.
Жизнеспособность прямо пропорциональна простоте!
Re[3]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 18.10.11 09:50
Оценка: +1 -1
Здравствуйте, __lambda__, Вы писали:

___>А что не так? Мы сейчас как раз Си заканчиваем, довольно таки гладко все идет. До этого у них был примерно месяц программирования на Python.


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

Помните анекдот про глобус и презерватив?
Так вот я считаю, не стоит школьников грузить понятием референц-эллипсоида, когда нужно всего навсего рассказать про глобус. А если они сами хотят ковырять такие понятия, то тут надо чётко следить и бить в нужный момент по рукам, а еще лучше раздать презервативы, чтобы не гробили себе молодость.
Re: ЯП для школьников углубленно изучающих программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.10.11 12:02
Оценка: :)
Здравствуйте, __lambda__, Вы писали:

___>Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:


___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).


___>ЗЫ: буду рад советам и размышлениям.


Хватит одного Питона. Посмотри нынешние лекции МИТ и задания на Питоне — мало не покажется. Главное старьё вроде Сикп не трогай, пусть догнивает.
Re[3]: ЯП для школьников углубленно изучающих программирован
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.10.11 12:04
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Просто во всем этом есть логика:

___>Python — основные концепции.
___>C — низкоуровневое программирование.
___>C++ — высокоуровневое программирование.

Питон это уже высокоуровневое программирование. С++ это скорее средний уровень. С/С++ люди осваивают годами и то не могут побороть многие вещи, вроде указателей
Re: ЯП для школьников углубленно изучающих программирование
От: __kot2  
Дата: 18.10.11 13:09
Оценка:
Здравствуйте, __lambda__, Вы писали:
___>вот тут я сомневаюсь, после C сразу перейти на Java или C++
на Java, наверное

___>ЗЫ: буду рад советам и размышлениям.

и как рассказывают про Java и вообще про программирование мне очень нравятся вот эти лекции:
http://www.youtube.com/watch?v=ttbu9L4RdYs&feature=relmfu
Re[4]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.11 03:55
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Никто и не говорит про университетскую программу. Просто углубленное изучение программирования.

А>Идеальным инструментом было бы нечто, что позволяет получать видимые/ощутимые вещи за короткий срок.


Согласен. Таким инструментом у нас служит Python. Например, для 3D можно взять Panda3D и начать писать простенькие игры. Для веба можно взять Django. Для GUI использовать встроенную Tkinter. Для всего этого очень хорошо подходит Python.

А>А изучая, например, С++, придется их мозги грузить лишними сущностями(библиотеки, фреймворки и т.д.), которые к искусству программирования отношения имеют мало. А в таком возрасте считаю важным именно составляющую искусства, либо уклон в простое практическое применение (хотя бы те же макросы в экселе). Всё остальное они потом и так выучат, если пойдут учиться на инженеров.


А я и не предлагаю их грузить лишними сущностями. Например, exceptions, templates, RTTI и прочие радости жизни мы рассматривать не будем. Просто как Си с классами и немного STL. На базе C++ хочется изучить OOP, алгоритмы, структуры данных и использовать его как основной язык для олимпиад. В олимпиадах мы ограничены C++ и Java.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[6]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.11 04:05
Оценка:
Здравствуйте, boot, Вы писали:

B>Не факт что Python вечен JS, хотя бы потому, что это самый распространенный интерпритатор. Правила объяснить просто, как в шахматах, но когда начинается игра невозможно оторваться.


Кстати вспомпил фразу одного из лекторов курса 6.001 (MIT) то ли Sussman, то ли Abelson. Он сказал, что программирование как шахматы, правила игры он может объяснить за минуты, а вот чтобы стать истинным мастером нужны годы тренировок. Так же и в программировании, синтаксис языка можно изучить за недели, а чтобы стать профессиональным программистом требуются годы практики.

Да, python не вечен. Да и JS не вечен, вон Google хочет заменить его Dart'ом. Не в этом суть, просто Python с методической точки зрения больше подходит для обучения основным концепциям.

B>>>Согласен, логика присутствует. Только как Вы объясните необходимость обертывания кода в класс, в задаче где ни одна сущность не повторяется дважды, либо можно спокойно использовать массив структур? Я не в курсе сколько у Вас времени на одного ученика, но на пару лет, думаю, хватит и двух языков, каких выбирать Вам, но поверьте, самое интересное в глубине.


Суть не в том, чтобы максимальное количество языков изучить. Кстати у меня и так получается пара языков Python & C/C++. Вот думаю просто, не добавить ли еще Java.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[4]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.11 04:15
Оценка:
Здравствуйте, Ikemefula, Вы писали:

___>>Просто во всем этом есть логика:

___>>Python — основные концепции.
___>>C — низкоуровневое программирование.
___>>C++ — высокоуровневое программирование.

I>Питон это уже высокоуровневое программирование. С++ это скорее средний уровень. С/С++ люди осваивают годами и то не могут побороть многие вещи, вроде указателей


Абсолютно согласен. Python безусловно высокоуровневый язык. Я был немного не точен. Исхожу в основном из целей обучения, оттуда и выбор языков:
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.11 04:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Хватит одного Питона. Посмотри нынешние лекции МИТ и задания на Питоне — мало не покажется. Главное старьё вроде Сикп не трогай, пусть догнивает.


Да, я их все посмотрел, включая тот же SICP (и не считаю его старьем).
А вот одного Питона не хватит, т.к. нам еще на олимпиадах учавствовать, а там к сожалению Питон не выбрать.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[7]: ЯП для школьников углубленно изучающих программирован
От: boot  
Дата: 19.10.11 04:27
Оценка:
Здравствуйте, __lambda__, Вы писали:

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


B>>Не факт что Python вечен JS, хотя бы потому, что это самый распространенный интерпритатор. Правила объяснить просто, как в шахматах, но когда начинается игра невозможно оторваться.


___>Кстати вспомпил фразу одного из лекторов курса 6.001 (MIT) то ли Sussman, то ли Abelson. Он сказал, что программирование как шахматы, правила игры он может объяснить за минуты, а вот чтобы стать истинным мастером нужны годы тренировок. Так же и в программировании, синтаксис языка можно изучить за недели, а чтобы стать профессиональным программистом требуются годы практики.


___>Да, python не вечен. Да и JS не вечен, вон Google хочет заменить его Dart'ом. Не в этом суть, просто Python с методической точки зрения больше подходит для обучения основным концепциям.


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

B>>>>Согласен, логика присутствует. Только как Вы объясните необходимость обертывания кода в класс, в задаче где ни одна сущность не повторяется дважды, либо можно спокойно использовать массив структур? Я не в курсе сколько у Вас времени на одного ученика, но на пару лет, думаю, хватит и двух языков, каких выбирать Вам, но поверьте, самое интересное в глубине.


___>Суть не в том, чтобы максимальное количество языков изучить. Кстати у меня и так получается пара языков Python & C/C++. Вот думаю просто, не добавить ли еще Java.


Здесь правила диктует олимпиада. Пускай диктует дальше.
Жизнеспособность прямо пропорциональна простоте!
Re[3]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 19.10.11 07:01
Оценка:
Здравствуйте, __lambda__, Вы писали:
А>> Баловство все это. Logo, потом максимум Javascript.

___>Logo — они рассмеются мне в лицо.


В таком случае, прежде чем браться за какое либо программирование вообще, надо сначала заняться их общим воспитанием. Так же поможет старый добрый матан для тренировки интеллекта.
Re[5]: ЯП для школьников углубленно изучающих программирован
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 19.10.11 08:47
Оценка: +1
Здравствуйте, __lambda__, Вы писали:

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


___>>>Просто во всем этом есть логика:

___>>>Python — основные концепции.
___>>>C — низкоуровневое программирование.
___>>>C++ — высокоуровневое программирование.

I>>Питон это уже высокоуровневое программирование. С++ это скорее средний уровень. С/С++ люди осваивают годами и то не могут побороть многие вещи, вроде указателей


___>Абсолютно согласен. Python безусловно высокоуровневый язык. Я был немного не точен. Исхожу в основном из целей обучения, оттуда и выбор языков:

___>
ООП, алгоритмы лучше на Питоне — меньше шума например всякие автоматы-парсеры, основы ФП и тд это лучше на питоне будет.
Re: ЯП для школьников углубленно изучающих программирование
От: stdcout  
Дата: 19.10.11 13:31
Оценка:
Здравствуйте, __lambda__, Вы писали:
Был бы у меня такой учитель, когда я учился в школе..
Re: ЯП для школьников углубленно изучающих программирование
От: _Obelisk_ Россия http://www.ibm.com
Дата: 19.10.11 17:57
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>ЗЫ: буду рад советам и размышлениям.


Изучайте сразу все. Школьники потом сами себе выберут то, что больше нравится. А пока важней показать разнообразие языков и средств. Пусть посоревнуются в решение одних и тех же задач на разных языках.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[2]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 19.10.11 18:30
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Изучайте сразу все. Школьники потом сами себе выберут то, что больше нравится. А пока важней показать разнообразие языков и средств. Пусть посоревнуются в решение одних и тех же задач на разных языках.


Вот это как раз нелепо. Разным задачам нужны разные языки.
Re: ЯП для школьников углубленно изучающих программирование
От: LaptevVV Россия  
Дата: 19.10.11 18:59
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>ЗЫ: буду рад советам и размышлениям.

Дело не в языках, а в задачах, которые нужно программировать.
Под задачи — и инструмент подбирается...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: ЯП для школьников углубленно изучающих программирование
От: Аноним  
Дата: 20.10.11 06:14
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>ЗЫ: буду рад советам и размышлениям.


Я через семь лет программирования пришел к тому, что императивное программирование — это непригодная для практического применения концепция, а ООП — шарлатанство и профанация. Ну и C++ — непригодный для программирования язык. На нем нет базовой поддержки элементарных механизмов построения программ: управления памятью, модульности, инкапсуляции.

Может не стоит портить детям мозг императивщиной и ООП, а начать с функциональных языков?

Ну и почему надо начинать с низкого уровня? Низкий уровень, конечно, необходим, но я видел очень много программистов, которых C/C++ превратили в безнадежных говнокодеров.
Re[2]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 20.10.11 07:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я через семь лет программирования пришел к тому, что императивное программирование — это непригодная для практического применения концепция,


"Непригодная" — значит, вообще не работающая. Что противоречит наблюдаемым объективным фактам.

А> а ООП — шарлатанство и профанация.


Религия тоже шарлатанство и профанация, однако она тоже работает, и неплохо. И как замена психоаналитикам, и как набор техник медитации, и как социальный клапан для выпускания народного пара.

А> Ну и C++ — непригодный для программирования язык.


Стопицот тысяч написанных на C++ популярных и нужных приложений опровергают этот нелепый тезис.

А>Может не стоит портить детям мозг императивщиной и ООП, а начать с функциональных языков?


Без математики? Нельзя.

А>Ну и почему надо начинать с низкого уровня?


Потому, хотя бы, что это ИНТЕРЕСНО. Что, никогда не был школьником, что ли?
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.10.11 07:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я через семь лет программирования пришел к тому, что императивное программирование — это непригодная для практического применения концепция, а ООП — шарлатанство и профанация. Ну и C++ — непригодный для программирования язык. На нем нет базовой поддержки элементарных механизмов построения программ: управления памятью, модульности, инкапсуляции.


А я через ... (сейчас посчитаю) ... примерно 15 лет программирования, тоже увлекся функциональным программированием, но не до такой крайней степени Любил (и кстати до сих пор люблю) Haskell за его чисто функциональную парадигму. Меня увлек очень сильно Lisp своим language oriented programming. Немного rule based programming на Prolog'е. А потом были Mercury/Oz/Erlang немного. И через пару лет постепенно начал возвращаться в real world, поначалу немного Python, затем чуточку Ruby и под конец я опять со своими старыми друзьями C & C++ с которыми дружил первые 15 лет.

А>Может не стоит портить детям мозг императивщиной и ООП, а начать с функциональных языков?


В начале своей педагогической карьеры тоже так думал. Хотел взять Scheme минималистичный, красивый язык. Но как показывает практика, большинству детей все же проще с императивной парадигмой.

А>Ну и почему надо начинать с низкого уровня? Низкий уровень, конечно, необходим, но я видел очень много программистов, которых C/C++ превратили в безнадежных говнокодеров.


А мы и не начинаем с низкого уровня, мы начинаем с Python'а, с базовых концепций.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[2]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.10.11 07:44
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Дело не в языках, а в задачах, которые нужно программировать.

LVV>Под задачи — и инструмент подбирается...

Это утверждение верно только для профессиональных программистов. У нас первична цель обучения, а затем уже наиболее подходящий язык. Например, целью может служить изучение структур данных (списки, стеки, очереди, ...) и далее уже под эту цель выбирается язык программирования. По крайней мере я руководствуюсь такой логикой.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re: ЯП для школьников углубленно изучающих программирование
От: Доктор ТуамОсес Гондурас Мой новый проект "ВЕПРЬ-1"
Дата: 20.10.11 12:10
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Доброе(ый,ой) утро/день/вечер/ночи! (нужное подчеркнуть)

___>Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:

___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).

___>2. С — изучаем низкоуровневое программирование в Unix среде.
___>3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
___>3_2. Java — высокоуровневое программирование (ООП, алгоритмы).

___>вот тут я сомневаюсь, после C сразу перейти на Java или C++

___>По идее переход от C к C++ кажется более логичным. Но Java дает сразу нормальное ООП. И Java проще чем С++.
___>В C++ можно отбросить все лишние сложности типа RTTI, exceptions, etc и рассматривать его как C с классами.

___>Для 3D будем использовать движок Panda3D или Ogre3D. Тут C++ в выигрыше.

___>Для Web будем использовать Django.

___>ЗЫ: буду рад советам и размышлениям.


Забыл про Prolog и Lisp
Мой новый проект "ВЕПРЬ-1"
Re[3]: ЯП для школьников углубленно изучающих программирован
От: LaptevVV Россия  
Дата: 20.10.11 14:56
Оценка:
Здравствуйте, __lambda__, Вы писали:

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


LVV>>Дело не в языках, а в задачах, которые нужно программировать.

LVV>>Под задачи — и инструмент подбирается...

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

Не... Во-первых, списки в С++ и списки в C# — две большие разницы...
Во-вторых, есть такая книжка: Идеальная разработка ПО http://www.ozon.ru/context/detail/id/7248898/
Там 7 глава называется: Почему так трудно научиться программировать.
Там есть статья: Роль контекстуализации.
В этой статье приводятся примеры заданий, которые выполняли начинающие программисты.
Например, задача перебора всех элементов массива рассматривалась в контексте преобразования всех пикселов графического отображения в оттенки серого.
Вот какие задачи я имел ввиду.
Мои студенты на ура воспринимают задание: написать программу, решающую головоломку "Миссионеры и людоеды".
Тут тебе и проблема представления данных, и метод полного перебора, и способ реализации — рекурсия или итерация.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.10.11 23:31
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Не... Во-первых, списки в С++ и списки в C# — две большие разницы...


Да неужели...
C#:
class Node
{
  int a;
  Node next;
}


class Node
{
  int a;
  Node * next;
};


Концептуально, разницы никакой не вижу. Я бы еще увидел разницу при реализации списка на чисто функциональном языке. Лень искать ссылку на работу Криса Окасаки.

LVV>Например, задача перебора всех элементов массива рассматривалась в контексте преобразования всех пикселов графического отображения в оттенки серого.

LVV>Вот какие задачи я имел ввиду.

Ну для такой задачи, одинаково хорошо подходят C/C++/Java/C#/VB/...
Если и иметь в виду задачи, то я бы абстрагировался от конкретных задач и решил бы, чему должны эти задачи обучить и какой язык для этих задач больше подходит.

LVV>Мои студенты на ура воспринимают задание: написать программу, решающую головоломку "Миссионеры и людоеды".

LVV>Тут тебе и проблема представления данных, и метод полного перебора, и способ реализации — рекурсия или итерация.

И какой язык для этого больше подходит?
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[3]: ЯП для школьников углубленно изучающих программирован
От: _Obelisk_ Россия http://www.ibm.com
Дата: 21.10.11 05:20
Оценка:
Здравствуйте, Аноним, Вы писали:

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


_O_>>Изучайте сразу все. Школьники потом сами себе выберут то, что больше нравится. А пока важней показать разнообразие языков и средств. Пусть посоревнуются в решение одних и тех же задач на разных языках.


А> Вот это как раз нелепо. Разным задачам нужны разные языки.


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



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[3]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 21.10.11 06:50
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>"Непригодная" — значит, вообще не работающая. Что противоречит наблюдаемым объективным фактам.


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

А> Религия тоже шарлатанство и профанация, однако она тоже работает, и неплохо. И как замена психоаналитикам, и как набор техник медитации, и как социальный клапан для выпускания народного пара.


О чем и речь, ООП такая же бесполезная фигня как и религия.

А> Стопицот тысяч написанных на C++ популярных и нужных приложений опровергают этот нелепый тезис.


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

А> Без математики? Нельзя.


Можно и нужно. Требовать для ФП математики это математический шовинизм. Для того чтобы писать в функциональном стиле математика не нужна. Ровно как для использования РБД не нужно знать реляционную теорию, а для написания парсера не нужно знать теорию формальных языков. Берешь и делаешь.

А> Потому, хотя бы, что это ИНТЕРЕСНО. Что, никогда не был школьником, что ли?


Вылезай уже из криокамеры. Это БЫЛО интересно а начале 90-х когда толковый школьник мог легко заткнуть за пояс вооруженного теорией туповатого препода. Современным школьникам это уже не интересно, поезд уже ушел. В чем прикол изучать ассемблер чтобы поморгать светодиодом, если на ЯВУ это можно сделать на порядки проще. Вирусы? Современный вирус это серьезная инженерная задача, не каждом профессиональном программисту по силу. Кракинг? Еще сложнее, сломать современную игрушку не так-то просто. Меня вообще поражают люди, считающие школьников идиотами и на этом основании пытающиеся заинтересовать их всякой древней унылой гадостью типа лого, мультивибратора на двух транзисторах, художественной гимнастики или походами выходного дня. В то время как школьники замечательно сами себя увлекают модостроительством, рентгеновскими трубками, пакруром и экстремальными походами по заброшенным золотым приискам.

Казалось бы хочешь работать с тинейждерами, так учитывай их интересы. Возьми image processing, data mining, signal processing или gamedev (если лепить не очередной платформер, а casual simulator типа bridge builder). Алгоритмы там несложные даже для семиклассника, особенно если с учителем, способным подобрать задачу по силам и объяснить как читать формулу. К реальности привзяка потрясающая, сразу понятно где это используется и зачем это нужно. Со стороны выглядит достаточно эффектно. И, главное, стимулирует дальше учиться математике, потому что нормальному любознательному школьнику интересно не только КАК но и ПОЧЕМУ.
Re[4]: ЯП для школьников углубленно изучающих программирован
От: Cyberax Марс  
Дата: 21.10.11 07:03
Оценка:
Здравствуйте, vladislaw, Вы писали:

V>Что же это за "школьники" такие? Неужели Django теперь знают? Лучше выбрать один язык и углубленно изучать на его примере алгоритмы и структуры данных, а сам язык имхо не столь важен.

В принципе, к 10-му классу я писал сайты на с CGI на C++ (под Watcom) и Perl и параллельно изучал Java — всё на машинах с 32Мб памяти и 266МГц процессорами. Так что всё ОК.
Sapienti sat!
Re[6]: ЯП для школьников углубленно изучающих программирован
От: Cyberax Марс  
Дата: 21.10.11 07:44
Оценка:
Здравствуйте, boot, Вы писали:

B>За обучение Си потомки Вам скажут спасибо. С++ все таки отнимает много времени на реализацию, удобен для больших проектов, он постоянно мурлычет "напиши класс". Сравните близкие к идеалу реализации простой задачи на Си и С++, больше всего вопросов посыпется из обзора Си-кода.

Как ни странно, они будут похожи с точностью до синтаксиса....
Sapienti sat!
Re: ЯП для школьников углубленно изучающих программирование
От: User239 Россия  
Дата: 21.10.11 08:58
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Доброе(ый,ой) утро/день/вечер/ночи! (нужное подчеркнуть)

___>Организовал в школе клуб программистов, собрав ребят увлекающихся программированием. Собираемся изучать разные ЯП, технологии (3D/Web/etc). Примерная программа такая:

Всё отлично, только я бы выкинул из этой программы C++. Тем более если есть Java. Два раза рассказывать про ООП смысла нет (а кроме него из C++ ничего и не предполагается как я понял). Ну а возни с ним будет дофига. Так и представляю беготню от одного ученика к другому, забывшему поставить точку с запятой после объявления класса.
Re[4]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 21.10.11 09:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>"Непригодная" — значит, вообще не работающая. Что противоречит наблюдаемым объективным фактам.


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


Самолеты папуасов не летают. Тогда как 99.9999% императивных програм работае и приносит пользу. Пользы же от 0.0001% программ, написанных на всей из себя такой правильной и красивой функциональщины человечество пока что не видело.

А>> Религия тоже шарлатанство и профанация, однако она тоже работает, и неплохо. И как замена психоаналитикам, и как набор техник медитации, и как социальный клапан для выпускания народного пара.


А>О чем и речь, ООП такая же бесполезная фигня как и религия.


Я же только что объяснил, что от религии есть огромная, неоценимая польза.

А>> Стопицот тысяч написанных на C++ популярных и нужных приложений опровергают этот нелепый тезис.


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


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

А>Казалось бы хочешь работать с тинейждерами, так учитывай их интересы. Возьми image processing, data mining, signal processing или gamedev (если лепить не очередной платформер, а casual simulator типа bridge builder).


Ага, ага. И для всего этого НЕОБХОДИМ C++.
Re[5]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 21.10.11 09:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Самолеты папуасов не летают. Тогда как 99.9999% императивных програм работае и приносит пользу. Пользы же от 0.0001% программ, написанных на всей из себя такой правильной и красивой функциональщины человечество пока что не видело.


Гуглом пан не пользуется? Не знает что map/reduce это функциональщина в том же виде? На youtube пан lolcat video не смотрит, в жаббере не чатится, твиттер не читает? Или тоже не знает, что Erlang и Scala это функциональные языки?

А> Я же только что объяснил, что от религии есть огромная, неоценимая польза.


От религии есть неоценимый вред поскольку она подменяет объективную реальность виртуальной.

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


Прикинь, они УЖЕ написаны. Ровно как и рассчетные либы уже написаны на фортране и дураков писать их еще раз не наблюдается. А вот нового кода на плюсах не пишется вообще. Или современные языки или в, крайнем случае, pure C. Мне не веришь посмотри на вакансии на каком-нибудь крейглисте и отфильтруй старые проекты на плюсах, где только поддержка. Получишь тождественный ноль.

А> Ага, ага. И для всего этого НЕОБХОДИМ C++.


Для всего этого необходим матлаб в первую очередь.
Re[6]: ЯП для школьников углубленно изучающих программирован
От: Аноним  
Дата: 21.10.11 09:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Гуглом пан не пользуется? Не знает что map/reduce это функциональщина в том же виде? На youtube пан lolcat video не смотрит, в жаббере не чатится, твиттер не читает? Или тоже не знает, что Erlang и Scala это функциональные языки?


Да-да-да, мне сейчас будут втирать, что actor model в Erlang — это функциональщина. Только вот не получится, потому как это чистейшей воды императивный message passing. Map/reduce тоже очень мало общего с функциональщиной имеет, кроме отсутствия общего состояния между обработчиками элементов последовательности.

А>От религии есть неоценимый вред поскольку она подменяет объективную реальность виртуальной.


А это еще доказать надо, что такая подмена вредна. Народные массы населения слишком слабы рассудком, чтобы оперировать понятиями объективной реальности.

А>Прикинь, они УЖЕ написаны.


...и не используются. Все равно ведь все на C++ пишется.

А>Ровно как и рассчетные либы уже написаны на фортране и дураков писать их еще раз не наблюдается. А вот нового кода на плюсах не пишется вообще.


Да да да. Браузеры, ОС, компиляторы, игры — все, ну решительно все не на C++. Стоп! Как это "не на C++", что-ж я вру так некрасиво?!?

А>Или современные языки или в, крайнем случае, pure C. Мне не веришь посмотри на вакансии на каком-нибудь крейглисте и отфильтруй старые проекты на плюсах, где только поддержка. Получишь тождественный ноль.


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

А>> Ага, ага. И для всего этого НЕОБХОДИМ C++.


А>Для всего этого необходим матлаб в первую очередь.


Ну ну. На C++ написанный...
Re[5]: ЯП для школьников углубленно изучающих программирован
От: LaptevVV Россия  
Дата: 21.10.11 10:01
Оценка:
Здравствуйте, __lambda__, Вы писали:

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


LVV>>Не... Во-первых, списки в С++ и списки в C# — две большие разницы...


___>Да неужели...

___>C#:
___>
___>class Node
___>{
___>  int a;
___>  Node next;
___>}
___>


___>
___>class Node
___>{
___>  int a;
___>  Node * next;
___>};
___>


___>Концептуально, разницы никакой не вижу. Я бы еще увидел разницу при реализации списка на чисто функциональном языке. Лень искать ссылку на работу Криса Окасаки.

Есть указатель или нет его — большая разница в понимании работы у начинающих программистов

LVV>>Например, задача перебора всех элементов массива рассматривалась в контексте преобразования всех пикселов графического отображения в оттенки серого.

LVV>>Вот какие задачи я имел ввиду.
___>Ну для такой задачи, одинаково хорошо подходят C/C++/Java/C#/VB/...
___>Если и иметь в виду задачи, то я бы абстрагировался от конкретных задач и решил бы, чему должны эти задачи обучить и какой язык для этих задач больше подходит.
Это вам как педагогу надо. А школьнику надо — задачу. Конкретную. Чтоб он видел, в каких РЕАЛЬНЫХ программах подобное делается.
А не абстрактный массив или список обрабатывал. Способствует интересу.
LVV>>Мои студенты на ура воспринимают задание: написать программу, решающую головоломку "Миссионеры и людоеды".
LVV>>Тут тебе и проблема представления данных, и метод полного перебора, и способ реализации — рекурсия или итерация.
___>И какой язык для этого больше подходит?
Любой. Мы писали на С++, и паскале.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: ЯП для школьников углубленно изучающих программирован
От: LaptevVV Россия  
Дата: 21.10.11 10:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>> Без математики? Нельзя.

А>Можно и нужно. Требовать для ФП математики это математический шовинизм. Для того чтобы писать в функциональном стиле математика не нужна. Ровно как для использования РБД не нужно знать реляционную теорию, а для написания парсера не нужно знать теорию формальных языков. Берешь и делаешь.
Но знание — способствует пониманию, и в итоге — более быстрому и более правильному написанию.

А>> Потому, хотя бы, что это ИНТЕРЕСНО. Что, никогда не был школьником, что ли?

А>Вылезай уже из криокамеры. Это БЫЛО интересно а начале 90-х когда толковый школьник мог легко заткнуть за пояс вооруженного теорией туповатого препода. Современным школьникам это уже не интересно, поезд уже ушел. В чем прикол изучать ассемблер чтобы поморгать светодиодом, если на ЯВУ это можно сделать на порядки проще. Вирусы? Современный вирус это серьезная инженерная задача, не каждом профессиональном программисту по силу. Кракинг? Еще сложнее, сломать современную игрушку не так-то просто. Меня вообще поражают люди, считающие школьников идиотами и на этом основании пытающиеся заинтересовать их всякой древней унылой гадостью типа лого, мультивибратора на двух транзисторах, художественной гимнастики или походами выходного дня. В то время как школьники замечательно сами себя увлекают модостроительством, рентгеновскими трубками, пакруром и экстремальными походами по заброшенным золотым приискам.

А>Казалось бы хочешь работать с тинейждерами, так учитывай их интересы. Возьми image processing, data mining, signal processing или gamedev (если лепить не очередной платформер, а casual simulator типа bridge builder). Алгоритмы там несложные даже для семиклассника, особенно если с учителем, способным подобрать задачу по силам и объяснить как читать формулу. К реальности привзяка потрясающая, сразу понятно где это используется и зачем это нужно. Со стороны выглядит достаточно эффектно. И, главное, стимулирует дальше учиться математике, потому что нормальному любознательному школьнику интересно не только КАК но и ПОЧЕМУ.

Правильно! И я о том же: надо взять задачу — и ее делать. А язык и структуры данных выучатся в процессе.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: ЯП для школьников углубленно изучающих программирован
От: Доктор ТуамОсес Гондурас Мой новый проект "ВЕПРЬ-1"
Дата: 21.10.11 10:17
Оценка:
Здравствуйте, Аноним, Вы писали:

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


А>> Самолеты папуасов не летают. Тогда как 99.9999% императивных програм работае и приносит пользу. Пользы же от 0.0001% программ, написанных на всей из себя такой правильной и красивой функциональщины человечество пока что не видело.


А>Гуглом пан не пользуется? Не знает что map/reduce это функциональщина в том же виде? На youtube пан lolcat video не смотрит, в жаббере не чатится, твиттер не читает? Или тоже не знает, что Erlang и Scala это функциональные языки?


Да что Вы всё упёрлись в ООП и функциональщину.
Почему про Prolog ни слова?

Или считаете, что он нафиг не нужен школьникам?
Мой новый проект "ВЕПРЬ-1"
Re: ЯП для школьников углубленно изучающих программирование
От: Аноним  
Дата: 25.10.11 13:55
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>ЗЫ: буду рад советам и размышлениям.


Довольно интересные размышления о выборе ЯП для студентов 1-го курса приведены в книге Touch of Class.
Кстати, недавно вышел ее перевод на русский язык.
Re: ЯП для школьников углубленно изучающих программирование
От: RiNSpy  
Дата: 25.10.11 14:07
Оценка: :))
Nemerle.
Re: ЯП для школьников углубленно изучающих программирование
От: Паблик Морозов  
Дата: 21.11.11 20:51
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>1. Python — на базе него изучаем основные концепции (ветвления/циклы/функции).

___>2. С — изучаем низкоуровневое программирование в Unix среде.
___>3_1. С++ — высокоуровневое программирование (ООП, алгоритмы).
___>3_2. Java — высокоуровневое программирование (ООП, алгоритмы).

Кастрируешь деток лет на 10 и только спустя многие годы забивания гвоздей лбом некоторые из них дойдут то того, что действительно достойно изучения в программировании.
Re[5]: ЯП для школьников углубленно изучающих программирован
От: _DAle_ Беларусь  
Дата: 21.11.11 21:13
Оценка: 4 (1)
Здравствуйте, __lambda__, Вы писали:

___>Т.к. они еще на олимпиадах будут учавствовать, а там выбор между C/C++ и Java.


Боюсь, что нет. На школьных международных олимпиадах, если я ничего не пропустил, до сих пор только Pascal/C/C++. Соответственно большинство олимпиад школьников, в том числе и российские, стараются придерживаться этого ограничения. Вот методические рекомендации, похоже, что никакой джавы даже на региональном уровне нет. Может быть сейчас что-то меняется, я могу быть не в курсе.
Re[6]: ЯП для школьников углубленно изучающих программирован
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 22.11.11 04:05
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Боюсь, что нет. На школьных международных олимпиадах, если я ничего не пропустил, до сих пор только Pascal/C/C++. Соответственно большинство олимпиад школьников, в том числе и российские, стараются придерживаться этого ограничения. Вот методические рекомендации, похоже, что никакой джавы даже на региональном уровне нет. Может быть сейчас что-то меняется, я могу быть не в курсе.


Да, точно. Спасибо. Я спутал со студенческими олимпиадами.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re: ЯП для школьников углубленно изучающих программирование
От: ReFlexer  
Дата: 22.11.11 04:50
Оценка:
C -> C++ -> Java

Причем в этот момент не забудте объяснить детям, как представляется в памяти классы и функции и таблица виртуальных функций... Надеюсь когда С изучали как в памяти распологаются переменные структуры. Кстати при работе с функциями объяснили как передаются данные на стеке. Ксати когда изучали С, было бы не плохо показать на уровне ASM как это все работает. Кстати почему ASM x86/x64 не показываете?

Я бы сделал бы так — С -> ASM (на примере C+ASM) -> C++ -> JAVA
Re: ЯП для школьников углубленно изучающих программирование
От: vsb Казахстан  
Дата: 22.11.11 05:03
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>ЗЫ: буду рад советам и размышлениям.


1. Любой простой ЯП, можно паскаль, можно пайтон.
2. Ассемблер. Обязательно. В дебри влезать не надо, но человек должен уметь писать программу потенциально любой сложности на ассемблере, включая, например, рекурсивные функции. У многих после этого наступает просветление, даже если они до этого писали на С или паскале.
3. С. После ассемблера С идёт на ура, по сути получается тот же ассемблер, но гораздо удобнее.
4. С++. Шаблоны, исключения, STL оставляются на потом, по сути С с классами. Цель — объяснить что такое ООП, виртуальные методы, наследование и т.д.
5. Java как самый популярный современный ЯП. На этом месте может быть C#, зависит от предпочтений преподавателя.
6. Тут уже, имхо, школьники должны сами понять что им по душе и углубляться в тему, преподаватель может помогать. Желательно организовать совместную работу над одним проектом по 2-3 человека (обязательно — примерно одной силы). Показать систему контроля версий, билд-систему, багтрекер, в общем постараться организовать некий процесс разработки, похожий на настоящий. Дать какие то основы архитектуры, паттернов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.