Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмізація та програмування.docx
Скачиваний:
84
Добавлен:
17.05.2015
Размер:
1.35 Mб
Скачать

Алгоритмізація та програмування

0-й місяць

Лекція 0.1.

● що потрібно знати, щоб бути програмістом

● програмування - наука, мистецтво, ремесло

● етапи програмування

● технологія програмування

● програмування як інженерія

● програмування як спосіб представлення алгоритмів

Лекція 1

План

1. Вступ. 1

2. Програмування - що це? Наука, мистецтво, ремесло..………………………1

3. Мислення і властивості програміста …………………………………………5

4. Загальні завдання курсу………………………………………………………..7

5. Технології, методи і підходи до програмування …………………………….9

6. Структурне програмування, як основа для вирішення більшості завдань.17

7. Завдання та мови для їх рішення ……………………………………………19

1. Вступ.

Люди говорять один з одним, використовуючи для цього різні мови. Точно також вони пишуть комп'ютерні програми, такі як ігри, калькулятори, текстові редактори, використовуючи для цього різні мови програмування. Без програм ваш комп'ютер буде просто набором металевих і напівпровідникових деталей, придатним в кращому випадку як підставка під чашку.

На нашій вступній лекції ми розглянемо декілька питань що стосуються вашого розуміння програмування в загальному. Також я хотів би, щоб ми виробили декілька принципів нашого з вами спілкування.

Перший запропоную я сам:

- Слухати уважно

Які можете запропонувати ви? *** (Обговорення)

...

- Приходити вчасно

- Правило «Говорить один» (або викладач, або один студент)

- Правило «Підніми руку» (якщо є що сказати)

- Правило «Запиши сам» (лекція не диктується, а будується у формі бесіди, кожен сам веде свої записи, і обов'язково робить помітки у важливих місцях)

2. Програмування - що це? Наука, мистецтво, ремесло.

Як би ви могли відповісти на це питання?

Програмістом може стати кожен. Повторюся ще раз, програмістом може стати кожен. Однак на різному рівні. Зараз існують тренажери і методи навчання програмуванню молодших школярів і навіть дошкільнят. Відповідний позитивний досвід з групою дітей було проведено в одній з Московських гімназій. Діти досить бадьоро програмували і навіть вирішували задачки. Чому це можливо? Як ви думаєте? ***

Секрет у тому, що програмування - це логічне мислення, записаної в певній, суворо встановленою формою. Цю форму називають синтаксисом або правилами запису програм. Кожному, кому доступно логічне мислення, доступно також програмування. Необхідно тільки навчити цю людину записувати свої думки в правильній формі. У формі синтаксису. У тій гімназії знайшли підходящу для навчання дітей форму - і тому змогли їх навчити.

Синергія

У цьому і полягає найважче питання - знайти як це зробити. Кожна людина індивідуальна. Як знайти ключик до Вашому особистому розумінню, до мозку кожного з вас? Це не тільки моє питання як викладача, це перш за все ваше запитання, бо ви в цьому зацікавлені не менше, а може й більше мого.

Є таке чудове грецьке слово «синергія», воно означає «співпраця, Печерській лаврі», коли двоє працюють на один результат і без зусиль тієї чи іншої сторони цей результат не може бути досягнутий. Саме це і є наш навчальний процес - Печерській лаврі викладача і студента. Знаєте іноді коли людина приходить вчиться у нього виникає бажання сісти, розслабитися, розвалиться на стільці і сказати «Ну давайте, вчіть мене - я готовий». Нічого не вийде. Без нашого спільного праці, нічого н вийде. Я працюю + ви працюєте = результат. І ніяк інакше.

І так програмування це наука, яку необхідно ретельно і детально, вивчати, вкладаючи працю, сили і час. Крім того, це наука, тому що в ньому існують досить складні фундаментальні проблеми, що не мають поки однозначних відповідей і рішень. Це наука вимагає для свого розвитку нестандартних підходів і геніальних рішень.

 

З іншого боку, ми з'ясували з вами що програмування - це запис наших логічних думок в деякому строго визначеному, як кажуть, формалізованому вигляді. Давайте спробуємо зрозуміти, а що ж таке логічне мислення? Це мислення, яке здатне привести нас від деяких фактів чи припущень, званих передумовами до необхідного результату, званому висновком. Отже, логіка - це шлях від передумови до висновку, від причини до наслідку, від дії до результату. Навіть якщо цей шлях неочевидний, логіка дозволяє відновити необхідні незримі, але існуючі моменти.

Наведемо приклад. Ви сидите в кімнаті з одними дверима, спиною до них, перед вами сидить людина. Він встає і проходить повз вас за вашу спину. Через деякий час ви обертаєтеся - людини за спиною немає. Куди він подівся? *** Все правильно - вийшов у двері. Однак ви ж не бачили як він виходить, як же ви змогли дізнатися що він вийшов? Ось це і є логіка.

Передумовою в даному випадку є такі факти: «людина перебувала в кімнаті» «тепер вона не в кімнаті» і «з кімнати один вихід», об'єктом роздуму є питання «куди подівся чоловік?». З урахуванням посилок і логічного мислення запитання формулюється так «Куди подівся чоловік, що знаходився в кімнаті з одним виходом, якщо його там зараз немає» із якого випливає єдино можлива відповідь - «вийшов з кімнати через вихід». Причому, зауважте, ваша логіка спрацювала значно швидше, правильно відповівши на питання, чим ваша свідомість встигла осмислити вищенаведений ланцюжок роздумів. Просто раз - і готова відповідь.

У хорошого програміста нерідко відбувається також, розмірковуючи над завданням більш-менш тривалий час він раптом починає розуміти, що знає рішення. Чуєте - «раптом», «одномоментно». Та звичайно він може не бачити ще всіх подробиць, і витратити досить багато часу на налагодження коду, тестування та інші речі. Але загальний хід рішення він вже усвідомив, проблема вже подолана.

Це осяяння, звичайно наслідок досвіду й таланту, але все одно воно зазвичай не укладає в жорсткі рамки правил, стандартів та лексичних конструкцій: раз! і зрозумів рішення, та яке рішення - витончене, ефектне, по-своєму прекрасне. Ці епітети (витончений, прекрасний) рідко зустрінеш в технічних галузях, вони скоріше ставляться до області мистецтва, і тому програмування - це мистецтво.

І, нарешті, взагалі кажучи, важко уявити собі людину яка абсолютно не має логіки. Також можна навчити правилам формального запису і синтаксису, практично будь-яку адекватну людини. Отже, навіть без Богом даного таланту і схильностей, ми можемо поєднати в якому навчають прийоми логічного мислення і навички записувати їх у необхідній формі, у формі програми. Така людина цілком може писати програми. Врахуйте, крім того, що багато завдань є типовими. Тобто вирішуються схожим чином за зразком. Це, наприклад як типовий проект будинку. Сам проект один раз розробили конструктори і вчені з великого інституту. А потім за цим проектом будуються всі перехожі будинку, з деякими змінами, які цілком під силу здійснити звичайним робітникам. В одному будинку, наприклад, стіни пофарбували в інший колір, в іншому одну кімнату розділили на дві і т.д. Не запрошуються ж для цього кожного разу вчені - це всі проблеми цілком під силу прикладним фахівцям. Так і в програмуванні існує великий клас нескладних прикладних типових завдань, які необхідно вирішувати і записувати у вигляді програмного коду. Цим зазвичай займаються початківці програмісти, для яких програмування ще не встигло стати не мистецтвом (досвіду мало), ні наукою (не вистачає таланту), і тому програмування це ремесло.