Завдання з програмування в середовищі delphi

Завдання з програмування в середовищі Delphi.

Які завдання можна придумати навчаючи студентів програмуванню на Delphi? У мене є мізерні ідеї, але сформувати закінчену концепцію не виходить. Можу викласти. Обговоримо?

Це що ?
"Новий" педагог?

Думаю, я виклав цілком очевидні речі, але в своєму розумінні. Поки не можу нічого додати.

1. А який рівень у тих, хто навчається? Тобто чи знають вони основи програмування.
2. Чи знають вони прості алгоритми (сортування, пошук, і т.д.)
3. Чи працювали з Дельфі?

Однак спадкоємці Паскаля, істотно його перевершували, Модула-2 і Оберон, не отримали належної уваги серед викладачів, і самі впали перед лицем найнедостойнішого з суперників - C. Самого негідного, тому що в цій мові були порушені всі відкриті на той час принципи серйозного програмування. Він заплутує студентів, допускаючи різний зміст для x = y і y = x і примушуючи всіх писати x = = y замість звичайного x = y. Тільки за одні ці пороки він заслуговує вигнання з установ освіти. Однак цей потворний синтаксис був цілком відтворено в мові Java, прийняття якого академічною спільнотою відбулося щонайменше частково завдяки цій спадкоємності.

моя улюблена:
вводимо з клавіатури послідовність чисел (довжина послідовності будь-яка). Вивести її в зворотному порядку не вдаючись до використання масиву.

правда, це скоріше завдання на придумування алгоритму, ніж на _дельфі_. і щоб спокуси не було (наприклад TMemo.Lines) краще взагалі на Паскалі писати.

Практика показала, що далеко не всі розумні програмісти можуть запропонувати правильне рішення, хоча завдання максимум для 1 курсу.


> Він заплутує студентів, допускаючи різний зміст для x = y
> І y = x

Інтуїтивно, початківці сприймають = як операцію порівняння, а не присвоєння.
Потрібні зусилля для закріплення, що порівняння це ==
Одна з найпоширеніших помилок серед учнів підміна
== на =


> Інтуїтивно, початківці сприймають = як операцію порівняння,
> А не присвоєння.

Ось же дивно. Я не сприймав, колеги теж. Може, в шкільні програми з арифметики внести виправлення, задаючи операцію присвоювання через: =?

Завдання: підрахувати частоту лексем (слів) в тексті.

import java.util. *;

// Prints a frequency table of the words on the command line
public class Frequency # XA0; public static void main (String [] args) # XA0; # XA0; Map m = new TreeMap();
# XA0; # XA0; for (String word. args) # XA0; # XA0; # XA0; # XA0; Integer freq = m.get (word);
# XA0; # XA0; # XA0; # XA0; m.put (word, (freq == null. 1. freq + 1));
# XA0; # XA0;>
# XA0; # XA0; System.out.println (m);
# XA0;>
>
висновок:
java Frequency if it is to be it is up to me to do the watusi

Спробуйте зробити те ж саме на Pascal.

Ви зі мною сперечаєтеся або з Віртом?
Зі мною не потрібно - у мене прикладів зі студентами вистачить на сотню Шевченок. :)


> Спробуйте зробити те ж саме на Pascal.

2 TStringList c Sorted.true і Duplicates = dupError :)


> Ви зі мною сперечаєтеся або з Віртом?

На жаль я, напевно, не так зрозумів.

1. На алгоритмізацію і розуміння програмування - переклад числа з К-тієї системи числення в N-ту. Там же студенти з IDE в загальних рисах ознайомляться.
2. Написання калькулятор матеріалів.


> Ось же дивно. Я не сприймав, колеги теж. Може, в
> Шкільні програми з арифметики внести виправлення, задаючи
> Операцію присвоювання через: =?

Наскільки я розумію, в арифметиці немає присвоювання, все вже присвоєно до нас :) Нам залишається тільки записувати РІВНОСТІ. У чортківському випадку виразів а = а + 5 в математиці не буває.

C "==", у мене проблем не виникало. Була інша складність:
У Паскалі я зазвичай писав "=", а на ": =". Потім дивився на сходинку, не розуміючи, чго він лається.

Стоку незрозумілих слів. Уявляю як вас люблять студенти.

1. Яка мета навчання? Якими знаннями вміннями повинен володіти фахівець пройшов навчання?


> Спеціальність # XA0; - видавничі системи.


> Терия обчислюваних функцій; лябда-ісчіленіе Черча), їх графічне
> уявлення

Для "видавничих систем" кращий спосіб відбити охоту до навчання.

Виходите з потреби знань вашого предмета для даної спеціальності.

PS: Мене "вбивала" викладач політології, яка вважала що для енергетиків її предмет самий найважливіший :)

31512
# XA0; тут насправді як підходити. то що ти поліз в форум це добре. я свого часу інформатики в школі відпахав можу тебе зрозуміти. з дівчатами взагалі працювати погано. а вже якщо вони ще й старше то просто жах. шевченко напевно мав на увазі що творчість приходить тільки в неробство :). так ось. мій тобі рада для початку позбудься всіх незрозумілих слів. це допомагає. друга порада. дивлячись що ти хочеш зробити. створити базу. ну це нерозумно. база з'являється тільки на практиці. це вже даказано і перевірено. подпіхівая їм цікаві завдання це єдине що ти можеш зробити що б вони отримали основи. якщо впихати в них тільки теорію вийде маячня. п.с. про сі мені сподобалося. правда деякі везхі там все таки робити простіше ніж в Дельфах. ну да Лада. як каже моя подруга на смак і колір йди ті нах


> Давай з цього місця детальніше.

Можна і докладніше - мене теж колись вчили програмувати в інституті, не дивлячись на те, що більшість знань я отримав самостійно. Так ось, при навчанні мені всіх страшних слів, які ти написав, не говорили ні разу, і тим не менш, однокурсники програми писали. Навіть працюють. Моє IMHO - навчити слід вмінню алгоритмизировать завдання, розбити складне завдання на сукупність простих і т.д. Без залучення теорії, з практичними прикладами. В якості серйозного задачника можу порекомендувати книгу Чарльза Уезерелла "Етюди для програмістів".

І керуватися хорошим правилом - "Будь-яка теорія без практики мертва". Ти готовий застосувати

> Поняття про теореми Шенона, міжнародні системи байтового
> Кодування. Елементи теорії графів. Підійшли до поняття алгоритму (три
> Підходу: теорія кінц. і бесконеч. автоматів; терия вичіслімих
> Функцій; лябда-ісчіленіе Черча), їх графічне представлення.
> Машину Посту

До видавничих систем?

Якщо готовий, то удачі і блага у всіх починаннях. Якщо немає, то викидай нафіг всі ці слова.

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

шевченко браво твоя думка виявилася більш глибоко викладена ніж моя :)

Викидати "незрозумілі" слова ні в якому разі не можна.
Більш того, необхідна обов'язковий прив'язка до історії питання.
Тут з'являються імена, причинно-наслідкові зв'язки, загальносвітові стандарти і тп.
Інша справа, обмежити область викладання мінімально необхідним набором дисциплін.
Але це преррогатіва навіть не викладача, а тієї школи викладання, яка склалася в вашому вузі + досвід споріднених вузів.
Якщо ще нічого не склалося, то треба починати таке будівництво під керівництвом більш досвідчених педагогів.
Є міжвузівські зв'язку, напевно, так і напроситися можна до будь-кого.
Можливо, ідеалізую, але як сказано у Вірта "Ефективність дії професіоналів повинна бути набагато вище за таку у любителів".


> Іншими словами, ти пропонуєш начіть їх робити якісну
> Алгоритмічну декомпозицію задачі, а при об'єктно-орієнтованому
> Підході об'єктно-орієнтовану декомпозицію? причому це
> Зробити на живу, підібравши більш прості, інтуїтивно ясні
> Понянія? Я правильно тебе зрозумів?

Я пропоную просто навчити їх програмувати :) Починаючи з простого і закінчуючи складним, у міру можливості.

Скажімо так, хороших підручників з програмування "з самого початку" я не бачив. Задачник бачив (привів) - але він серйозний.

Я прихильник класичного фундаментальної освіти при якому закладаються основи загальносвітових наук.
Такого, яке було в епоху СРСР.
Плюс педагоги-метри слухати яких було справжнє задоволення і які давали нам найважливіше - основи самоосвіти.
Тому мені дивно чути про замовчування таких імен, так само як і загальновідомих, пов'язаних з цими іменами, термінів і визначень:
Кантор, Гедель, Тьюринг, Пост, Карно, Венн, Буль, Єршов, Вірт ..

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


> Я прихильник класичного фундаментальної освіти при
> Якому закладаються основи загальносвітових наук.
> Такого, яке було в епоху СРСР.

Я утворювався в ту ж епоху. При навчанні програмуванню імен, подібних перерахованим (ну хіба що, крім Тьюринга) не чув за час навчання.

Шкодую. Вас обікрали :)
Втім, багато, залежить від якогось домобудівного ВУЗ-а.

В якийсь момент (і не без подачі Вчителі) повинен вирішити куди йому рухати далі: в чисту науку, прикладну науку або практику.

Скажімо так, наведу подібний приклад з Дельфі.
Написання хороших компонент - це і теорія і дуже хороший кодинг (тобто це маса вельми специфічного "нізкоуровенного" програмування).
Використання їх - ну, щось на зразок Хоровіц і Хілл.
Кинув баттон на форму, F9 і воно працює. :)


> Використання їх - ну, щось на зразок Хоровіц і Хілл.

А ви, мабуть, з сабжем знайомі, в сенсі, з Х. і Х.


> Шкодую. Вас обікрали :)
> Втім, багато, залежить від якогось домобудівного
> ВУЗ-а.

На жаль мені. Ну да, домобудівного зрозуміло.


> З іншого боку, тенденція наукоподібного описовості,
> Особливо в книгах, в ті часи була досить помітна.

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


> Скажімо так, наведу подібний приклад з Дельфі.

Прошу вибачення у всіх за оффтоп.

Caps Lock, Shift і кома западають. А якщо немає. то при цьому ще і викладав. Мдя.

> А ви, мабуть, з сабжем знайомі, в сенсі, з Х. і Х.

Я почав Інженерну діяльність в 78 м в області систем навігації і управління для ВМФ.
Тобто і електронник, а потім вже програміст.

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

> Якби той же Рей Конопка
Класики бувають і в прикладній і в теоретичній науці.

Власне, не цілком розумію, про що суперечка.
Про штучному усечении фундаментальних знань?
Хіба тільки, що відповідно до поточного рівня значущості їх в конкретній державі.

Про надання слухачам суто прикладних відомостей і знань про їх найближчій потенційної роботі?
Так це профтехосвіту в ті роки вирішувало такі завдання. :)


> Тобто і електронник, а потім вже програміст.


> Власне, не цілком розумію, про що суперечка.
> Про штучному усечении фундаментальних знань?

Швидше, про зближення фундаментальних знань з практикою ще на етапі навчання.


> Про надання слухачам суто прикладних відомостей і
> Знань про їх найближчій потенційної роботі?
> Так це профтехосвіту в ті роки вирішувало такі завдання. :)

У мене як раз склалася думка, що "Спеціальність - видавничі системи" це і є профтехосвіту в даному випадку.

А хіба нам треба вирішувати за "того хлопця"?

Проблема в тому, що вже в другому поколінні "втрачено" з точки зору викладання загальних наук.

Якщо вже в Бауманском студенти не можуть згадати, що є кореляція, в процесі піднесення систем цифрового кодування сигналів, то що говорити про домобудівних ВУЗ-ах?

Так ось, якщо не були закладені основи фундаментальних знань
(А для програмування це: алгебра логіки, алгебра теорії чисел, чисельні методи, теорія автоматів), то
яке зближення теорії і практики може бути?

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

PS: До речі скільки квартир у вас в під'їзді і який жучок ви поставили?

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


> На п'ятий раз вночі при світлі ліхтарика спут до електриків
> На ходу в розумі я зробив розрахунок перетину жучка (число квартир,
> Потужність на квартиру і тп) (щоб і вівці були ситі і вовки
> Цілі) - працює.

Це, я перепрошую, шкільний курс фізики :)

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

Ось син у мене ще школяр. Я попросив знайомого зав.кафедри взяти його разом зі студентами на місячний курс підготовки по
застосування MapInfo для оцифровки карт.
Він успішно освоїв і зараз в трійці кращих оцифровщик на цій фірмі. Роботу виконує дистанційно. В місяць заробляє до $ 200.
Фірма сказала тільки спасибі.

Сумніваюся що ви научічілі хоча б одну людину програмування. Я хоч і не викладач, але вельми успішно вивчала людей програмування. Найперше що треба зробити навчити їх робити хоч щось (hello world, калькулятор), щоб учні відчули так би мовити "дух творення". А потім вже давати глибоку теоретичну базу. А в результаті таких лекцій виходить межі Але не навчання.

Схожі статті