Je psaní kódu se stále považuje za algoritmické reprezentace?

hlasů
2

Prostě jsem ztratil 50% své odpovědi na test, protože jsem napsal kód ven namísto algoritmu na svém střednědobém horizontu narážela mi od A do C. Je psaní kódu se stále považuje za algoritmické reprezentace?

Wikipedia: Algoritmus reprezentace (od programovací styl je do značné míry shoda na bázi)

EDIT: Dobře, tak mi dovolte učinit několik bodů jasné:

  1. Zkouška požádal o pseudo-kódu, který jsme nikdy „definované“ ve třídě; jsme prostě napsal angličtinu pro naše algoritmy.

  2. To je třída Java, a napsal kompletní řešení v metodě Java, spolu s poznámkami. To vše bylo ručně psaný a trvalo déle než vypsat pseudo-kódu. Myslel jsem, že to bude jasnější.

  3. I za normálních okolností by neměla činit problém o takových věcech, ale je rozdíl mezi A a C, a mám stipendium na koni na mé zkoušky.

  4. A konečně, Dělám tento příspěvek ze dvou důvodů:

    4.1 Chci ukázat, co moderním programování komunita myslí o pseudo-kódu a algoritmické reprezentace.

    4.2 Chci vědět, co je přijatelné v „reálném světě“; Byl jsem programování nějakou dobu, ale já chci, aby bylo možné přispět k brzy open-source projekty, a já nechci, aby krok na něčí prsty. (I když jsem si jistý, že toto téma má malou šanci přijít v reálném světě).

Opět díky za jakoukoliv pomoc / radu.

Položena 05/11/2008 v 00:12
zdroj uživatelem
V jiných jazycích...                            


8 odpovědí

hlasů
0

Vše co vím je, neměli byste psát nějaký kód, dokud máte algorithim.

Odpovězeno 05/11/2008 v 00:15
zdroj uživatelem

hlasů
5

Možná budete chtít dát příklad. Pokud váš kód se příliš zaměřuje na jazykových specifik, které nejsou součástí algoritmu, pak pochopitelné, že by to mohlo být říkal, že máte non-algoritmus smíchanou s algoritmem, což vede k chybnému výsledku.

Cítím s odůvodněním, smyslem výuky je ukázat vám pochopit pojem, ne ohnout a zaškrtněte všechny správné krabice.

Počítač lze naučit projít vysokou školu, ale počítač nedá dosud naučil vlastně myslet na sebe a aplikovat poznatky.

Jíst a opakovat mentalita je důvod, proč jsem nikdy absolvoval.


S ohledem na nedávné komentáře, její důležité si uvědomit, pseudokód je definován. Tam jsou obecně opakovaně výrazy v něm, ale to není striktní jazyk nic víc, než angličtina je (jinak by to být programovací jazyk, který by mohl být analyzován a provedeny doslovně)

Význam z pseudocode je zhmotnit na logické části systému a nebudou se muset starat příliš o syntaxi za ‚má smysl‘

Často to může učinit pseudocode oba více strohá a srozumitelnější.

Pseudocode také nespoléhá na čtenáře, který má porozumění ‚magického syntaxe‘ v jazyce, aby ji zpracovat, vše, co je třeba pochopit, že výrazy použité.

Pokud byste měli dát průměrného člověka algoritmu v jazyce Perl například, většina lidí by prostě umírá hrůzou, protože nevidí kolem potěru hluku linky.

Zatímco:

sub foo { 
   my @args = @_ ; 
   my( $a, $b )=(@args[0],@args[1]); 
   for( @{ $a } ){
       $b .= $_ ; 
       s/id//g; 
   }
   return [$b,$a];
}

může vydělat nějaké koherentní smysl pro někoho zběhlý v perl, s průměrnou kód čtenáře všechno, co dostanete, je „co to sakra jste právě řekl“ odpověď. Dokumentuje to nepomůže hodně jeden.

| there is a subroute foo which can take a list of strings, and a default string, 
\-  which then iterates all items in  that list, 
| \-  and for each item in that list 
|     1. appends the contents of that item to the end of the default string
|     2. removes all instances of the string "id" in that item
| 
 \ and returns a list, which contains 
    1. the concatentated default string 
    2. the modified input list 

Najednou se stává méně nejednoznačný a větší procento lidí to může pochopit.

Takže možná, poloviční výkon s psaním algoritmus je cvičení v „Nejenže budete muset prokázat, že jste to pochopili, musíte také prokázat, můžete vysvětlit své argumenty k ostatním, koho znají nic o problému“, což je velmi důležité schopnost budete potřebovat. Pokud nemůžete sdělit, co jste udělal, nikdo ji používat.

tam je také to ošklivý malý problém s kódem, který neexistuje v algoritmu, a to je kód může vypadat správně, ale nemusí dělat to, co myslím , že ano, a pokud to není to pravé, a vy don ‚t si uvědomit, lidé čtou kód reverzní inženýrství to bude znečistit ho a kopírovat zlomené algoritmus. špatný. algoritmus v lidské podobě lepšího překládá ‚je to, co chci, je to dělat‘

Odpovězeno 05/11/2008 v 00:20
zdroj uživatelem

hlasů
3

V takovém případě budete muset odložit na profesora.

Odpovězeno 05/11/2008 v 00:23
zdroj uživatelem

hlasů
0

Problém s pomocí kódu místo pseudokódu je, že teoreticky vzato by se dalo předpokládat, že je to kód, není pseudokód. Každopádně stupně učitel vám za vaši odpověď, ne pro své znalosti - vám bude lépe odpovídat na to, co jste byli požádáni, v podmínkách učitel má rád. Ano, všichni víme, víte lépe. Ale nikdy to není špatný výkon, aby se pokusili zdůvodnit, jak někoho jiného, ​​víte. A alespoň v mé zemi učitel má právo svobodně posoudit, takže ... si spolu s ním!

Odpovězeno 05/11/2008 v 00:29
zdroj uživatelem

hlasů
2

Je potřeba dodat další informace. Jste byli požádáni o algoritmu, ale dodávají kód. Věděli jste komentovat kód? Jak moc? (Já bych si přál, aby na otázku a vaši odpověď, ale možná, že se žádá o příliš mnoho).

Takže budu odpovědět na základě vlastní zkušenosti. Pokud se ptám na algoritmu, pak chci něco, co vysvětluje, ve slušné anglicky, jak řešit tento problém a / nebo splnění požadavků na otázku. Diagramy jsou také dobré (někdy i více). Odstavec, bod forma, ať už - to prostě musí být jasné, stručné a správné.

Pokud jste mi dodat s kódem, který nemá výše uvedené, pak plný počet bodů. Nicméně, pokud dodáte kód, který je čistý „jazyk“ a poněkud záhadný, pak budou ztraceny známky - více či méně v závislosti na tom, jak mystický kód ve skutečnosti je. I s kódem, rád bych vidět schéma stejně, jen aby ukázal úplné pochopení pojmů.

Jedna z nejtěžších věcí, které jsem čelí při výuce programování je v tom, studenti psát více, ne méně. Někdy jsem si musel připomínat, že úkol (nebo zkouška) není záznam v „nejvíce zatemnil kód soutěže“. ;-)

Na zdraví,

-R

Odpovězeno 05/11/2008 v 00:49
zdroj uživatelem

hlasů
0

Jen mluvit do svého profesora a zeptat se ho, proč máte otázku špatně. Zeptejte se ho, co je správná odpověď bude, a co je zásadní rozdíl mezi těmito dvěma.

Je možné, že algoritmus jste napsal nebylo správné?

Odpovězeno 05/11/2008 v 01:56
zdroj uživatelem

hlasů
0

Kód je algoritmus napsaný tak, že stroj může ji provést. Na tom není nic v této definici, která říká, že to není také psaný pro lidská pochopit. Líbilo se psát v Javě zakrýt svůj algoritmus? To by zjistit, zda bych souhlasil se svým učitelem.

Odpovězeno 05/11/2008 v 02:22
zdroj uživatelem

hlasů
2

Jako srovnávač pro vyspělé algoritmy samozřejmě bych vždy sundat body, pokud tam je prostě kódované řešení.

Některé věci prostě nelze vyjádřit, jak výmluvně v kódu, jak se dá v angličtině. Pseudo-kód je snaha vymanit se z přísné syntaxe kompilátoru a nechte trochu výraznost. Je to krok správným směrem srozumitelnosti, ale ne vždy dost.

Zejména v třídy algoritmů, je vždy důležité, aby doklad o správnosti (ať už je to indukcí, rozpor, atd), stejně jako velký-O zápis na na prostor a časově složitosti algoritmu.

Odpovězeno 13/11/2008 v 21:04
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more