Название: Обучение программированию с нуля Отправлено: LazarusLong от Январь 28, 2008, 11:15:00 Тут мне намедни предложили позаниматься программированием с одним человеком. Человек этот учится в 11-м классе. Представления об информатике и программировании у него весьма смутные, хотя с математикой, физикой и т.п. - проблем нет. У меня есть вообще некоторый опыт обучения программированию с нуля, но хотелось бы услышать мнения форумчан как лучше организовать учебный процесс. Заниматься мы будем, скорее всего два раза в неделю по 1.5 часа. Лично мне кажется лучше начать вообще без привязки к конкретному языку программирования объяснить базовые понятия. Основы алгоритмизации. На первых порах может быть даже алгоритмы писать не в виде блок-схем, а в виде словесного описания.
На самом деле большого труда не составит тупо взять какую-нибудь книжку и прогонять ребенка по учебнику, но хотелось бы действительно научить и привить интерес к программированию ) Название: Re: Обучение программированию с нуля Отправлено: Alder от Январь 28, 2008, 11:19:26 LazarusLong, а ты как будешь - сразу учить какому-то алгоритмическому языку или с самого начала - биты, байты и т.п.?
Название: Re: Обучение программированию с нуля Отправлено: Kenny от Январь 28, 2008, 11:22:33 Как по мне, блок схема проще словесного описания. Начинать думаю лучше в паскале, www.pascaler.ru вам в помощь:)
PS можно научить переводить в системы исчисления. Название: Re: Обучение программированию с нуля Отправлено: Alder от Январь 28, 2008, 11:31:12 Начинать думаю лучше в паскале, www.pascaler.ru вам в помощь:) Начинать учить азы алгоритмики можно и на обычном АлгЯзе - языке словесных конструкций вида "нач","если" и т.п. А потом перевести на С. От Pascal я бы рекомендовал уходить. Название: Re: Обучение программированию с нуля Отправлено: Polyakov от Январь 29, 2008, 12:05:11 Начинать учить азы алгоритмики можно и на обычном АлгЯзе - языке словесных конструкций вида "нач","если" и т.п. А потом перевести на С. От Pascal я бы рекомендовал уходить. Для того чтобы рекомендовать что-то нужно хотя бы самому знать и уметь. К Вашему сведению Pascal - изначально был разработан как язык академического программирования, с помощью которого наиболее легко начать осваивать программирование, не отбивая у учащихся охоту к дальнейшему изучению данной предметной области. Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 29, 2008, 12:13:52 На первых порах мне хочется вообще абстрагироваться от конкретного языка и научить человека мыслить самостоятельно и находить решения хотя бы простейших задач в общем виде. Я просто помню, когда преподавал на курсах: потратил час на то, что бы объяснить на пальцах нахождение большего из трёх чисел. Предложил задачку: найти большее из четырёх. Результат - полный ступор. Меня интересует как преодолеть вот это? Как научить человека понимать, привить некоторую способность к обобщениям, что ли? Я бы мог подумать, что это я дурак и не в состоянии объяснить, но ведь среди тех, кого я учил(два года преподавания на курсах + еще два года репетиторства) были и такие, кого, я таки чему-то таки научил.
Название: Re: Обучение программированию с нуля Отправлено: Zimburella от Январь 29, 2008, 12:15:34 LazarusLong, меня в свое время тоже знакомый учил програмить на Паскале. В школе очень слабо давали и надо было очень быстро выучить. Но это долго объяснять зачем.
Поэтому подойду скорей с позиции того, как мне было проще воспринять как усенику. В общем, сперва меня научили таки алгоритмизации. В виде блок-схем, словесное описание - это все же слишком. ИМХО, язык словесных конструкций излишен.. Хотя зависит от ученика, наверное. Если уж совсем всё плохо - то может и стоит. Главное, давай ему побольше программ писать. Маленьких, нетрудных, но побольше. И домой, чтобы сам делал, без тебя. Тогда будет эффект. А как язык Паскаль.. Не знаю, мне он нравился. Я думаю, его понять будет легче. К тому же почему уходить от него? Потом вполне можно научить мальчика Делфи. Мне очень нравилось программировать в школе. Графика особенно увлекла сильно. Кстати, при изучении Си почему-то интерес к программированию пропал напрочь. Не знаю, может, виной то, что так я в нем и не разобралась.. Но просто перестало быть интересно. Название: Re: Обучение программированию с нуля Отправлено: KyDECHuK от Январь 29, 2008, 12:24:20 :offtopic: Ненавижу блок-схемы! :D Именно чертить их не люблю, нуднее занятия не придумаешь.
На первых порах мне хочется вообще абстрагироваться от конкретного языка и научить человека мыслить самостоятельно и находить решения хотя бы простейших задач в общем виде. Именно с этого и надо начинать, и никак иначе. Нас в школе учили сначала решать задачу, а уже потом код писать для решения оной.Polyakov - С\С++ не так сложен, как это может показаться на первый взгляд. Вообще в мире очень много сложных вещей, но Си точно не из них. не отбивая у учащихся охоту к дальнейшему изучению данной предметной области. Люди, у которых пропадает охота программировать на первом же занятии не будут в дальнейшем этого делать каким бы pascal'ем их не заманивали.Да, есть некоторый процент людей которым удобнее писать именно на паскале или именно на Си или на чем-то еще. Но думаю знания Си принесут больше пользы. А хорошее знание Си - еще больше пользы. Название: Re: Обучение программированию с нуля Отправлено: Alder от Январь 29, 2008, 12:27:27 Off-Topic - помечено автором как "не соответствует обсуждаемой теме" Для того чтобы рекомендовать что-то нужно хотя бы самому знать и уметь. Абсолютно и полностью с вами согласен. Именно потому и рекомендую :)Название: Re: Обучение программированию с нуля Отправлено: Polyakov от Январь 29, 2008, 12:32:45 Polyakov - С\С++ не так сложен, как это может показаться на первый взгляд. Вообще в мире очень много сложных вещей, но Си точно не из них. Смею Вас заверить я знаю С лучше чем Вы. (первый взгляд я на него кинул лет этак 18 назад) Но в отличии от Вас я понимаю насколько этот язык по-настоящему труден и трудоемок. Может через десяток лет и Вы это поймете, если будете на нем работать. (Отправлено в: 28 Января 2008, 23:30:44) Абсолютно и полностью с вами согласен. Именно потому и рекомендую Может Вы просвятите меня когда же это Вы его изучили да еще в такой степени, чтобы рекомендовать? Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 29, 2008, 12:38:31 Я просто понимаю, что будет туго, раз он за 10 и половину 11-го класса из школьного курса информатики мало чему научился. Это свидетельствует как минимум о том, что нет интереса. А может быть нет и способностей вообще. Хотя хорошие его результаты по математике и физики обнадёживают. Насчет паскаля - таки да. Я в принципе согласен с тем, что практической полезности для современного программиста он не представляет, но всё же и разделяю мнение, что паскаль весьма хорош для первичного обучения программированию. Но к паскалю, да и вообще к любому языку программирования, как мне кажется, стоит подходить после усвоения основ алгоритмизации.
Цитировать Ненавижу блок-схемы! Именно чертить их не люблю, нуднее занятия не придумаешь. А я как раз считаю это занятие весьма полезным. Может быть не столько даже в практическом плане, сколько в методическом. Помню на втором курсе делал курсач по теории вероятностей. Строил трёхмерную гистограмму. И так и эдак пытался - всё никак. Просидел дня три. Всё потому, что сразу набивал код в редакторе. А потом просто сел, поразмыслил над задачей, так сказать заново с чистого листа, нарисовал блок-схемку и запрограммировал минут за пятнадцать. Вот тогда я, считавший до этого блок-схемы глупой прихотью преподавателей, по настоящему проникся уважением к ним :)ЗЫ. Кстати знаю одного человека который использует при обучении в качестве первичного языка программирования - python. В чём-то я его понимаю. Хотя это и перегиб) Название: Re: Обучение программированию с нуля Отправлено: KyDECHuK от Январь 29, 2008, 01:15:22 Смею Вас заверить я знаю С лучше чем Вы. (первый взгляд я на него кинул лет этак 18 назад) Не сомневаюсь. НО в чем собственно вопрос? Я где-то утверждал обратное про Вас ? Нет, не утверждал? Так к чему это сказано?Но в отличии от Вас я понимаю насколько этот язык по-настоящему труден и трудоемок. Сам язык, его синтаксис и правила трансляции кода? Ну может и сложны, но согласитесь есть задачи, которые решаются с помошью программ на С\С++, которые сложенее самого языка в десятки раз.Может через десяток лет и Вы это поймете, если будете на нем работать. Якобы сложность языка это не повод отказаться его учить или не преподавать в университете. За многолетнюю практику программирования на С можно составить весьма не плохую базу знаний и "подводных камней", а кое-чем делится из этого со своими студентами. На то они и студенты, чтобы чему-то учиться у Вас ;) Насчет сложности добавлю только одно: сложно разбираться с компилятором и массой дополнительных библиотек, когда в них попадаются ошибки (редко, но метко). Polyakov - по теме что-то скажете? По вопросам автора темы поднятом в первом сообщении ? Off-Topic - помечено автором как "не соответствует обсуждаемой теме" А я как раз считаю это занятие весьма полезным. Может быть не столько даже в практическом плане, сколько в методическом. Я два смайлика поставил не зря ;) Одно дело набросать БС от руки собственно для решения задачи, совсем другое - начертить для оформления лабы перед сдачей преподавателю (это почти всегда делалось на перерыве до пары) :)Я просто понимаю, что будет туго, раз он за 10 и половину 11-го класса из школьного курса информатики мало чему научился. Это свидетельствует как минимум о том, что нет интереса. Мало-ли какой чепухе учили пацана в школе на информатике. На своем примере знаю, что школьному курсу по информатике очень далеко до совершенства.Начни с основ алгоритмизации, а дальше видно будет есть\нет интерес. Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 29, 2008, 01:21:05 Мало-ли какой чепухе учили пацана в школе на информатике. На своем примере знаю, что школьному курсу по информатике очень далеко до совершенства. Начни с основ алгоритмизации, а дальше видно будет есть\нет интереса. Почему то у меня в школе интерес был несмотря на совсем другое компьютерное оснащение класса в то время (Поиск-1), изучали какой-то диалект Бэйсика, кажется Джи-Ви и отсутствие компьютера дома. И кое-какие основы алгоритмизации мне заложили уже тогда, хотя и университет дал мне в этом плане гораздо больше. Название: Re: Обучение программированию с нуля Отправлено: Sochin от Январь 29, 2008, 01:39:03 И таки соглашусь с Поляковым, действительно языки С/С++ это достаточно сложные язык, тем паче для первичного обучения. С сложен своей низкоуровневостью. С++ чрезмерно отягощен наследием С, с которым по стандарту доложен обеспечивать совместимость, при всем при том что вобрал в себя такие средства как поддержка ООП, обобщенного программирования. Вобщем, для первичного обучения языки С/С++далеко не самый лучший вариант.
Если идет речь о прикладном программировании, то сейчас я бы начинал обучение вообще с базовых понятий ООП без привязки к языкам. После чего переход к кодированию на ОО-языках для написания управляемого кода - Java/С#. Т.е. минимум платформозависимых низкоуровневых нюансов, максимум алгоритмизации и ОО-парадигмы. Название: Re: Обучение программированию с нуля Отправлено: Storm от Январь 29, 2008, 08:44:05 В школьную программу, по которой учили меня, входили Лого, АлгЯз, Паскаль.
Лого это для самых мелких класс 7-8, но при этом позволяет творить весьма прикольные вещи. АлгЯз (по нему есть классный учебник Савченко, в ДонИИИ выпустили, специально для школ с уклоном в информатику) позволяет сделать упор именно на алгоритмы. Именно на нем и научили программировать /me. В Паскале, как ни крути, уже придется учитывать особенности архитектуры компьютеров и компилятора. Язык С имеет слишком мало ограничений, чтоб на нем учили с нуля - это как прогулка по минному полю. Сапер пройдет целым и невредимым, а не сапер. ..... Очень многое остается на совести программиста. Для того кто знает и умеет это хорошо. Его приближенность к аппаратному уровню - он задумывался как замена ассемблеру. А в ассемблере своих ограничений нет - есть ограничения процессора и программиста ;) Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 30, 2008, 07:47:34 Сегодня провел первое занятие. Похоже случай не безнадежный. Дальше будем смотреть )))
Название: Re: Обучение программированию с нуля Отправлено: Alder от Январь 30, 2008, 08:07:51 LazarusLong, расскажи с чего начал.
Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 30, 2008, 08:43:31 Да начали с самых общих понятий: алгоритмы, последовательности команд и ветвление. Разобрали несколько простейших алгоритмов (нахождение большего из трех чисел, из четырех, решение квадратного уравнения, площадь треугольника и т.п.). Радует что все алгоритмы, кроме самого первого он написал сам. Пускай с небольшими подсказками, но в общем сам. А на информатике в школе их учат рисовать в Paintе.
Название: Re: Обучение программированию с нуля Отправлено: Alder от Январь 30, 2008, 08:52:07 Радует что все алгоритмы, кроме самого первого он написал сам. Пускай с небольшими подсказками, но в общем сам. Это гут. Если у него есть интерес к этому, то обучение будет продуктивным. Алгоритмы он рисовал или писал на АлгЯзе?Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Январь 30, 2008, 08:53:33 Алгоритмы он рисовал или писал на АлгЯзе? Нет, мы блок схемы использовали.Название: Re: Обучение программированию с нуля Отправлено: zer_owlet от Январь 30, 2008, 09:37:11 LazarusLong, что-то мне кажется что у тебя тут побольше опыта подготовки школьников чем у остальных ;) и даже хорошие результаты были, если не подводит меня память... так что просто продолжай в том же духе ))
Пану Полякову: вот зачем флудить и показывать свое превосходство над другими????? Ну знаете вы Си давно... может даже лучше... ну и что -- это повод флудить, попускать других и начинать размерами меряться? Название: Re: Обучение программированию с нуля Отправлено: KyDECHuK от Январь 31, 2008, 11:58:08 :offtopic:
А на информатике в школе их учат рисовать в Paintе. Гениальная учебная программа....Название: Re: Обучение программированию с нуля Отправлено: LazarusLong от Февраль 01, 2008, 12:17:01 Да в школах на информатике вообще каждый учит тому, что знает. А так как нормальных спецов туда пряником не заманишь - работают сами понимаете кто и знания соответствующие. К примеру у нас в школе вела информатику женщина не то что бы без образования в области IT, но и ВООБЩЕ без высшего образования.
Название: Re: Обучение программированию с нуля Отправлено: zer_owlet от Февраль 01, 2008, 01:00:55 Хоть и с опазданием это сообщение пишу... перечитал тему и я таки поддержу Полякова двумя руками... вопрос стоял как лучше научить 11-класника.... а тут уже Си втулили, сообщения типа "уже придется учитывать особенности архитектуры компьютеров и компилятора" и другие умночти по поводу Си и С++... Хотя, первый вопрос можно было бы задать другой -- а этот школьник комп вообще видел? )))
Кстати, а кто из советовавших имеет опыт в обучении школьников (или хоть студентов)? )) В теме, ИМХО, больше умничали чем дельно советовали (я так вообще просто нафлудил)... ЗЫ: Си, паскаль.... вы хоть раз пытались школьнику циклы объяснить? ))) О сортировках молчу... )) Название: Re: Обучение программированию с нуля Отправлено: Zimburella от Февраль 01, 2008, 01:37:47 zer_owlet, я имела опыт обучения школьников и студентов :) Правда, программированию - не доводилось. Но опыт этот длится уже лет примерно 7-8...
Я, замечу, изначально указала, что советую больше с позиции человека, которого учили программированию. Название: Re: Обучение программированию с нуля Отправлено: zer_owlet от Февраль 01, 2008, 02:17:05 zer_owlet, я имела опыт обучения школьников и студентов :) Правда, программированию - не доводилось. Но опыт этот длится уже лет примерно 7-8... Я, замечу, изначально указала, что советую больше с позиции человека, которого учили программированию. я же говорил не о всех высказываниях. но общее впечатление от темы именно такое :) Название: Re: Обучение программированию с нуля Отправлено: Inquisitor от Февраль 04, 2008, 04:59:58 Кстати, могу сказать, что в школах на информатике учат у всех по-разному.
В 7-8 классе лично у меня был бейсик, 9-11 классы мы учили винду и офис, а программирование (теперь уже на паскале) у нас значилось как "Спецкурс по программированию". Как человек, которого учили программированию, могу сказать, что главное - научиться формализации алгоритмов, а язык - дело уже десятое. Кстати, Си (вместе с плюсами) я выучил самостоятельно еще в школе, пользуясь интернетом и попавшейся под руку литературой. Не могу хвастать, что я прямо божественно владею программированием, но то, что не "плаваю" - так это точно. Бейсик я уже довольно плотно забыл, начал подзабывать паскаль (к примеру, ставлю условие if в скобках, или же периодически возмущаюсь, что писать begin...end в 4 раза дольше, чем {} :)) Вообще, начальное знание Паскаля мне не помешало, хотя я уверен: начинай я с самого начала учить Си, я бы его преодолел, не на много больше напрягаясь, чем начиная с Паскаля. Просто некоторые конструкции Си отличаются большей гибкостью, чем конструкции Паскаля, я это понял и стал использовать в своих целях. Не обошлось, конечно, и без натыкания на всякие подводные камни типа i = 5; i = i++ + i++; ну, так я считаю, что в таких случаях надо просто меньше умничать, не стараться городить подобные трехэтажные конструкции, и все будет хорошо. Насчет работы с указателями и строками (где-то тут в соседних темах вопрос поднимался), могу сказать что да, поначалу было трудно это понять и осознать, что здесь все не так просто, как в паскале, но, опять же, поняв, что к чему, я начал использовать это в своих целях. В общем, что я хотел сказать. Если у человека есть стремление к этому, то неважно, с какого языка ему начинать. Если он умеет составлять алгоритмы, то, владея средствами языка, он будет писать программы. Ну, а обучить его средствам языка, опять же - имхо работа чисто техническая. |