Алгоритми и езици
13 отговора
907 прегледа
Алгоритми и езици
Преди няколко дни с един познат спорехме по един интересен въпрос. Ако трябва да се учи програмиране, как е по-добре да се преподава:
а) първо Паскал (или друг език) и после алгоритми
б) алгоритми и принципите на програмиране, без предварително да се преподава език
Вие какво мислите по въпроса?
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
а) първо Паскал (или друг език) и после алгоритми
б) алгоритми и принципите на програмиране, без предварително да се преподава език
Вие какво мислите по въпроса?
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Re: Алгоритми и езици
и аз съм участвал в подобни дискусии и спорове с кое и как да се започва да се учи програмиране и по-конкретно - алгоритмите и първия програмен език (като синтаксис).
ще се изкажа в контраст на повечето книги за програмиране за начинаещи: хора, които сега започвате, не ги слушайте тези по книгите, като ви казват, че C е неподходящ и труден език като за начало !!!
мисля, че и за начинаещия, а и за който и да било е очевидно, че разликите (като трудност) в синтаксиса между C и Pascal не са чак пък толкова големи.
и все пак да си дойдем на думата - за реда на преподаване на език и алгоритми...макар да може да прозвучи прекалено, най-добре е да се почне заедно - синтаксис на програмен език и алгоритми и структури от данни едновременно, мисля също, че въпреки всичко е най-добре алгоритмите да са изложени под формата на код, а не като псевдо-код. смятам, че C е най-подходящ за описание на алгоритми, понеже с него се полагат основите и на синтактично, и на ниво "навици" за цяла фамилия производни на него езици - C++, Java...
и едно вметване...понеже аз отскоро се пиша мааалък фен на Lisp, ученето поне на основните алгоритми с Lisp също не е лоша идея - няма затормозяване с излишен синтаксис - просто, чисто и ясно...
и за накрая - няколко примерни книги за начинаещите, които обединяват идеите ми:
- Algorithms in C - Robert Sedgewick
- Computing Concepts with C++ Essentials
- Algorithms and Data Structures - Bruno Preiss (лично мене много ме кефи - templatized single rooted OO hierarchy, има дори и малко patterns, има я съвсем официално в нета free)
- Structure and Implementation of Computer Programs (също free)
аре със здраве
най-често умните хора са и лоши
ще се изкажа в контраст на повечето книги за програмиране за начинаещи: хора, които сега започвате, не ги слушайте тези по книгите, като ви казват, че C е неподходящ и труден език като за начало !!!
мисля, че и за начинаещия, а и за който и да било е очевидно, че разликите (като трудност) в синтаксиса между C и Pascal не са чак пък толкова големи.
и все пак да си дойдем на думата - за реда на преподаване на език и алгоритми...макар да може да прозвучи прекалено, най-добре е да се почне заедно - синтаксис на програмен език и алгоритми и структури от данни едновременно, мисля също, че въпреки всичко е най-добре алгоритмите да са изложени под формата на код, а не като псевдо-код. смятам, че C е най-подходящ за описание на алгоритми, понеже с него се полагат основите и на синтактично, и на ниво "навици" за цяла фамилия производни на него езици - C++, Java...
и едно вметване...понеже аз отскоро се пиша мааалък фен на Lisp, ученето поне на основните алгоритми с Lisp също не е лоша идея - няма затормозяване с излишен синтаксис - просто, чисто и ясно...
и за накрая - няколко примерни книги за начинаещите, които обединяват идеите ми:
- Algorithms in C - Robert Sedgewick
- Computing Concepts with C++ Essentials
- Algorithms and Data Structures - Bruno Preiss (лично мене много ме кефи - templatized single rooted OO hierarchy, има дори и малко patterns, има я съвсем официално в нета free)
- Structure and Implementation of Computer Programs (също free)
аре със здраве
най-често умните хора са и лоши
Редактирано от vroom на
Re: Алгоритми и езици
Трябва да се преподава с много, ама МНОГО програмиране!!!
Сега преподавателите се кефят: вижте колко много и хубави неща преподаваме. Учениците се кефят: виж к'во съм учил, то не е ОО, то не е AI, то не са DB.
Ама повечето не са написали почти нищо.
МНОГО програмиране!!!
Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Сега преподавателите се кефят: вижте колко много и хубави неща преподаваме. Учениците се кефят: виж к'во съм учил, то не е ОО, то не е AI, то не са DB.
Ама повечето не са написали почти нищо.
МНОГО програмиране!!!
Go on, prove me wrong. Destroy the fabric of the universe. See if I care.
Re: Алгоритми и езици
"б) алгоритми и принципите на програмиране, без предварително да се преподава език"
Много ясно, даже за мен е глупаво да се преподава някакъв език за пропрЪмиране. Нека да ги учат да мислият как трябва да говориш на машината, а не на какъв език да и говориш. А езика за домашно, и да недоволен съм от това че дават малко и лесни задачи. Трябва да ни късат трибуквеника, а то как може хора, които ме питат: "Как ще ми покажеш сорс-а, та тук няма Word", да завършват КСТ.
I wanna read interesting postingz
Много ясно, даже за мен е глупаво да се преподава някакъв език за пропрЪмиране. Нека да ги учат да мислият как трябва да говориш на машината, а не на какъв език да и говориш. А езика за домашно, и да недоволен съм от това че дават малко и лесни задачи. Трябва да ни късат трибуквеника, а то как може хора, които ме питат: "Как ще ми покажеш сорс-а, та тук няма Word", да завършват КСТ.
I wanna read interesting postingz
Re: Алгоритми и езици
и как ще разбират правилно ли говорят на машината? обратната връзка даскала ли ще го играе? щото той ще се пообърква от време на време.
аз съм фен твърдо на практическото научаване на нещо. да се научи език, колкото да се започне писане не е толкова трудно - няколко ключови думи и малко правила. по лесно е от стихотворение наизуст даже. винаги съм се присмивал на тези дето учат теоретично, и когато седнат да напишат нещо ревът " ама аз нямам грешка, а то не става". не само че първо трябва да се научи език, ами първо трябва малко да се попрограмира без теория за да се подготви почвата за алгоритмите. тогава човек наистина оценява това което научава, защото вижда как задачи които без теорията са го мъчили се решават елегантно с методите от материала. а иначе разликата между езиците не е много голяма, и според мене няма нужда да се учи първо паскал, (макар че аз точно паскал съм учил) може да се почне направо на ц.
аз съм фен твърдо на практическото научаване на нещо. да се научи език, колкото да се започне писане не е толкова трудно - няколко ключови думи и малко правила. по лесно е от стихотворение наизуст даже. винаги съм се присмивал на тези дето учат теоретично, и когато седнат да напишат нещо ревът " ама аз нямам грешка, а то не става". не само че първо трябва да се научи език, ами първо трябва малко да се попрограмира без теория за да се подготви почвата за алгоритмите. тогава човек наистина оценява това което научава, защото вижда как задачи които без теорията са го мъчили се решават елегантно с методите от материала. а иначе разликата между езиците не е много голяма, и според мене няма нужда да се учи първо паскал, (макар че аз точно паскал съм учил) може да се почне направо на ц.
Re: Алгоритми и езици
И аз започнах с паскал, и никога не съм имал достъп до, кой знае каква тория, но ми липсва. Спомням си че когато започвах когато, научех нещо първо практикувах и заедно с това си го обяснявах. Сега и с ООП-то е така първо пиша после мисля, но това не е сериозно, не е професионално и други такива. Разбира се не ми дреме на ****, защото не съм професионалист и пиша за кефа. Обаче това, което vse повече ми tриабва е теорията, а ми я представят във прекалено смешен вид, поне в университета.
I wanna read interesting postingz
I wanna read interesting postingz
Редактирано от expeler на
Re: Алгоритми и езици
хм, аз винаги съм се надсмивал над преподаването в университета, но мога да кажа че много нещо научих там, не благодарение на, а въпреки начина на преподаване. ооп никой не ми е преподавал, научих си го сам. в университета учихме нещо, ама беше смешно. освен това според мене структурите данни като че ли най ми помогнаха. алгоритмите и сам си ги измислях преди това, ама за номерата с указателите и динамичните данни не се бях сещал. като гледам старите си програми от гимназията виждам че пак съм правил графове от масиви, но именно когато си го правил по сложния начин, идеята за динамичните данни се възприема с ентусиазъм и истинско разбиране. най добре е според мен ученето на теория и практиката да вървят в паралел, но ако трябва да поверя свършването на нещо на практик без теория или теоретик без практика, без колебание избирам практика.
и още нещо - освен "програмистката" теория аз се старая да поддържам форма и в близките дисциплини - математика, електроника, обработка на сигнали и др. адски много помага!!! разбира се зависи с какво се занимаваш :) ако редиш бутони на vb келепира не е голям, ама то тогава и алгоритмите и структури данни не са от полза :)
и още нещо - освен "програмистката" теория аз се старая да поддържам форма и в близките дисциплини - математика, електроника, обработка на сигнали и др. адски много помага!!! разбира се зависи с какво се занимаваш :) ако редиш бутони на vb келепира не е голям, ама то тогава и алгоритмите и структури данни не са от полза :)
Re: Алгоритми и езици
razbira se 4e parvo algoritmi i principi
i estesveno cialoto tova obu4enie da stava sas hubavite stari no zlatni block shemi . ezik vseki sulio i pulio moze da nau4i (az poznavam niakolko takiva), vaprosa e da go nau4i6 da misli i strukturira. realizaciata posle e v silite na vseki. Edin sviastno napraven algoritam sled tova moze da se realizira na N na broi razli4ni ezici po N na N-ta stepen razli4ni podrobnosti. Naposledak kadrite koito izlizat ot universitetite (viziram SU, TU) ili pone (za moe ne6tastie) horata s koito sam imal dopir ot tiah znaiat ezik, funkcii i kakvi li ne podrobnosti po-dobre ot avtorite im no se zatrudniavat (ili ne mogat) da izmisliat edin prost algoritam za sortirane ne 4isla po golemina (klasika v zanra) :-)))
Vidiah 4e se obsazda Paskal malko po-nadolu .....
Kade ostana hubavia star BASIC (za 8M ili ROM v pravec16) ...
E tuk ni6to niama :[линк]
i estesveno cialoto tova obu4enie da stava sas hubavite stari no zlatni block shemi . ezik vseki sulio i pulio moze da nau4i (az poznavam niakolko takiva), vaprosa e da go nau4i6 da misli i strukturira. realizaciata posle e v silite na vseki. Edin sviastno napraven algoritam sled tova moze da se realizira na N na broi razli4ni ezici po N na N-ta stepen razli4ni podrobnosti. Naposledak kadrite koito izlizat ot universitetite (viziram SU, TU) ili pone (za moe ne6tastie) horata s koito sam imal dopir ot tiah znaiat ezik, funkcii i kakvi li ne podrobnosti po-dobre ot avtorite im no se zatrudniavat (ili ne mogat) da izmisliat edin prost algoritam za sortirane ne 4isla po golemina (klasika v zanra) :-)))
Vidiah 4e se obsazda Paskal malko po-nadolu .....
Kade ostana hubavia star BASIC (za 8M ili ROM v pravec16) ...
E tuk ni6to niama :[линк]
Re: Алгоритми и езици
10x на всички за отговорите, явно колкото хора толкова и мнения.
Аз лично като размислих също реших, че е добре да се започне с ударна доза алгоритми и малко Паскал или С за домашно и по мужду другото. В никой случай обаче не бива да се изостава практиката.
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Аз лично като размислих също реших, че е добре да се започне с ударна доза алгоритми и малко Паскал или С за домашно и по мужду другото. В никой случай обаче не бива да се изостава практиката.
Мечтата е мисъл, мисълта е идея, всяка идея се реализира. Аз не мечтая, а реализирам идеите си.
Re: Алгоритми и езици
И аз се старая в математиката, но стигнах до решението че с учебника под ръка и равнината и пространството са лесни, но на изпит не е така. Иначе да не се обиждаме не съм пипал вб няма и да го докосна. Иначе е ясно за какво помага математиката, но виж електрониката, и там кво беше сигнали ли не ми е ясно, е освен ако става дума за нещо различно от приложно програмиране.
I wanna read interesting postingz
I wanna read interesting postingz
Първо езика
Според мен езикът за програмиране е една рамка, която позволява формализирането на теорията. Мисля, че не е случайно това, че във ФМИ например по логика първите няколко лекции отиват за въвеждането на апарат с който ще се работи.
Само дето аз съм за C++. Няма нищо по-лесно в Pascal от C++. Виж, чистото C не е за начинаещи, то е за джигити.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Само дето аз съм за C++. Няма нищо по-лесно в Pascal от C++. Виж, чистото C не е за начинаещи, то е за джигити.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Re: Алгоритми и езици
Да, ама ако знаеш някакъв език, можеш да напишеш нещо. А така е много по-интересно и ефективно да се учи, отколкото само да решаваш теоретични задачи.
--
The#Project - лайфстайл списание в мрежата
--
The#Project - лайфстайл списание в мрежата
Re: Алгоритми и езици
пък в MIT основите на програмирането се учат на Lisp (и правилно IMHO).
Re: Алгоритми и езици
защо смяташ че ще ме обидиш като кажеш че не си пипал вб? аз не съм писач на вб... писал съм само дипломната си на него.
за дисциплините които ти споменах - предполагам че не само те са на далавера, но аз ти дадох пример с тях защото от тях съм усетил ползата. ето например ти си съгласен че от математиката има полза, но много програмисти не са. защо? - ами защото не я умеят. всъщност решаването на задачи не е математика, и да не каже някой "аз имам 6, но пак не виждам полза от нея".
аз широко ги използвам и не веднъж колеги са ме питали "как ги правиш тия работи?". ще ти дам пример - наскоро на работа се наложи да се прави отдалечена на няколко метра многоканална комуникация с няколко подвижни устройства. стандартния подход в случая е да се изработи хардуер (приемници - предаватели) и интерфейс за връзка. аз намалих хардуера в пъти (а той е много по скъп за разработване) като направих софтуер заместващ приемниците - само се закача фотоклетка на входа на звуковата карта, останалото (разделяне на сигнали,демодулация декодиране) го поема софтуера.
за дисциплините които ти споменах - предполагам че не само те са на далавера, но аз ти дадох пример с тях защото от тях съм усетил ползата. ето например ти си съгласен че от математиката има полза, но много програмисти не са. защо? - ами защото не я умеят. всъщност решаването на задачи не е математика, и да не каже някой "аз имам 6, но пак не виждам полза от нея".
аз широко ги използвам и не веднъж колеги са ме питали "как ги правиш тия работи?". ще ти дам пример - наскоро на работа се наложи да се прави отдалечена на няколко метра многоканална комуникация с няколко подвижни устройства. стандартния подход в случая е да се изработи хардуер (приемници - предаватели) и интерфейс за връзка. аз намалих хардуера в пъти (а той е много по скъп за разработване) като направих софтуер заместващ приемниците - само се закача фотоклетка на входа на звуковата карта, останалото (разделяне на сигнали,демодулация декодиране) го поема софтуера.