Ist das Schreiben von Code aus einer algorithmischen Darstellung noch in Betracht gezogen?

stimmen
2

Ich verlor nur 50% meiner Antwort auf einen Test, weil ich den Code aus, anstatt eines Algorithmus auf meinem midterm, stoßen Sie mich von einem A zu einem C. schrieb noch eine algorithmische Darstellung gilt das Schreiben von Code aus?

Wikipedia: Algorithmus Darstellung (seit Programmierstil ist ziemlich viel Konsens-basiert)

EDIT: Ok, also lassen Sie mich ein paar Punkte machen deutlich:

  1. Der Test für die Pseudo-Code gefragt, die wir nie wirklich „definiert“ in der Klasse; schrieben wir gerade aus Englisch für unsere Algorithmen.

  2. Es ist eine Java-Klasse und schrieb die gesamte Lösung in einer Java-Methode aus, zusammen mit Kommentaren. All dies wurde von Hand geschrieben, und dauerte länger als Pseudo-Code zu schreiben. Ich dachte, es wäre mehr klar sein.

  3. Ich würde normalerweise kein Problem über solche Dinge machen, aber es ist der Unterschied zwischen einem A und einem C, und ich habe ein Stipendium Reiten auf meinen Prüfungen.

  4. Schließlich mache ich diesen Beitrag aus zwei Gründen:

    4.1 Ich möchte zeigen, was die moderne Programmierung Gemeinschaft denkt über Pseudo-Code und algorithmische Darstellung.

    4.2 Ich möchte wissen, was in der „realen Welt“ akzeptabel ist; Ich habe seit einiger Zeit der Programmierung, aber ich mag Projekte bald dazu beitragen können, Quelle zu öffnen, und ich will nicht auf jemandem auf die Zehen treten. (Obwohl ich bin ziemlich sicher, dass dieses Thema kaum eine Chance, kommt in der realen Welt hat).

Nochmals vielen Dank für jede Hilfe / Beratung.

Veröffentlicht am 05/11/2008 um 00:12
quelle vom benutzer
In anderen Sprachen...                            


8 antworten

stimmen
0

Alles was ich weiß ist, dass Sie keinen Code, bis schreiben sollen, nachdem Sie einen algorithmus haben.

Beantwortet am 05/11/2008 um 00:15
quelle vom benutzer

stimmen
5

Vielleicht möchten Sie ein Beispiel geben. Wenn Ihr Code zu viel konzentriert sich Besonderheiten auf Sprache, die nicht Teil des Algorithmus ist, dann Verständlicherweise könnte man sagen, Sie nicht-Algorithmus hatten mit dem Algorithmus gemischt, in einem falschen Ergebnis führen.

Ich fühle mich für die Argumentation, der ganze Sinn des Lernens zu zeigen, ist, dass Sie das Konzept zu verstehen, nicht zu bücken und die richtigen Felder ankreuzen.

Ein Computer kann gelehrt werden, Universität passieren, aber ein Computer kann nicht noch tatsächlich gelehrt wird für sich selbst denken und Wissen anwenden.

Essen und erbrechen Mentalität ist, warum ich nie absolviert.


In Bezug auf Ihren letzten Kommentar, es ist wichtig zu erkennen , Pseudo - Code nicht definiert ist. Es gibt in es in der Regel wieder verwendet Begriffe, aber es ist nicht eine strenge Sprache mehr als Englisch ist (sonst wäre es sein eine Programmiersprache, die wörtlich analysiert und ausgeführt werden könnte)

Die Bedeutung von Pseudo - Code ist aus dem Fleisch zu Logik Teil des Systems und nicht übermäßig über die Syntax kümmern mußte darüber hinaus ‚macht es Sinn‘

Oft kann dies der Pseudo - Code sowohl mehr machen terse und verständlicher.

Pseudo-Code auch nicht auf den Leser angewiesen ist ein Verständnis für die ‚magische Syntax‘ in der Sprache, um sie zu verarbeiten hat, alles, was sie brauchen, zu verstehen ist, die verwendeten Begriffe.

Wenn Sie der durchschnittliche Person einen Algorithmus in Perl zum Beispiel geben, würden die meisten Menschen nur aus Entsetzen sterben, weil sie die Estriche von Leitungsrauschen nicht sehen Vergangenheit.

Während:

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

kann einigen kohärenten Sinn, jemand in Perl, Codeleser auf die durchschnittlichen versiert macht alles, was sie bekommen, ist eine „was zum Teufel hast du nur sagen,“ Antwort. Dokumentieren es nicht viel helfen, entweder.

| 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 

Plötzlich wird es weniger zweideutig und ein größerer Prozentsatz der Völker kann es verstehen.

Also vielleicht die Hälfte der Übung mit den Algorithmus zu schreiben ist eine Übung in „Nicht nur, dass Sie zu beweisen, haben Sie es verstehen, man muss auch beweisen, dass Sie Ihre Argumentation anderen erklären kann dem nichts von dem Problem wissen“, die eine lebenswichtig Fähigkeit, die Sie benötigen. Wenn Sie nicht kommunizieren können, was Sie getan haben, niemand kann es verwenden.

es gibt auch dieses fiese kleines Problem mit dem Code, der in einem Algorithmus existiert nicht, und das ist der Code aussieht Recht, aber tut nicht , was Sie denken , es tut, und wenn es es nicht richtig machen, und Sie don ‚t erkennen, die Menschen den Code Reverse Engineering liest , wird es es versauen und eine Kopie gebrochen Algorithmus. nicht gut. der Algorithmus in der menschlichen Form übersetzt besser ‚das ist , was ich will es tun‘

Beantwortet am 05/11/2008 um 00:20
quelle vom benutzer

stimmen
3

In diesem Fall müssen Sie den Professor verschieben.

Beantwortet am 05/11/2008 um 00:23
quelle vom benutzer

stimmen
0

Das Problem bei der Verwendung von Code statt Pseudo-Code ist, dass theoretisch gesprochen, könnte man annehmen, dass es Code war, nicht Pseudo-Code. Wie auch immer, die Lehrer Noten Dank für Ihre Antwort, nicht für Ihr Wissen - würden Sie besser dran zu beantworten, was Sie für, mag der Lehrer in den Bedingungen gefragt wurden. Ja, wir alle wissen, wissen Sie besser. Aber es ist nie eine schlechte Übung, um zu versuchen eine andere Person der Art und Weise an der Vernunft, wissen Sie. Und zumindest in meinem Land hat der Lehrer das Recht vor, frei zu bewerten, so ... auszukommen mit ihm!

Beantwortet am 05/11/2008 um 00:29
quelle vom benutzer

stimmen
2

Sie müssen sich mehr Informationen liefern. Sie wurden für einen Algorithmus gefragt, aber Code geliefert. Haben Sie den Code kommentieren? Wie viel? (Ich möchte die Frage und die Antwort sehen, aber vielleicht zu viel, dass angefordert wird).

Also werde ich auf Grund meiner eigenen Erfahrung beantworten. Wenn ich für einen Algorithmus bin gefragt, dann will ich etwas, das, in anständigem Englisch erklärt, wie das Problem zu lösen und / oder die Anforderungen der Frage entsprechen. Diagramme sind auch gut (manchmal besser). Absatz, Punktform, was auch immer - es muss nur klar, präzise und korrekt sein.

Wenn Sie mich mit dem Code liefern, der tut die oben, dann die volle Punktzahl. Wenn Sie jedoch Code liefern, die reinen „Sprache“ ist und eher kryptisch, dann werden Markierungen verloren - mehr oder weniger, je nachdem wie kryptische der Code tatsächlich ist. Auch mit Code, würde Ich mag auch ein Diagramm, um zu sehen, gerade vollständigeres Verständnis der Konzepte zu zeigen.

Eines der schwierigsten Dinge, die ich konfrontiert werden, wenn die Programmierung Unterricht ist in immer Studenten, mehr zu schreiben, nicht weniger. Manchmal habe ich auch habe sie daran zu erinnern, dass eine Zuweisung (oder Prüfung) ist kein Eintrag in dem „most verschleierten Code-Wettbewerb“. ;-)

Prost,

-R

Beantwortet am 05/11/2008 um 00:49
quelle vom benutzer

stimmen
0

Sprechen Sie mit Ihrem Professor und ihn fragen, warum Sie die Frage falsch. Fragen Sie ihn, was eine richtige Antwort wäre, und was der grundlegende Unterschied zwischen den beiden.

Könnte es sein, dass der Algorithmus Sie schrieb, war nicht korrekt?

Beantwortet am 05/11/2008 um 01:56
quelle vom benutzer

stimmen
0

Code ist ein Algorithmus geschrieben, so dass eine Maschine es ausführen kann. Es gibt nichts in dieser Definition, die sagt, dass es nicht auch für einen Menschen zu verstehen geschrieben. Hat das Schreiben des Algorithmus in Java verschleiern? Das wäre festzustellen, ob ich mit dem Lehrer vereinbart.

Beantwortet am 05/11/2008 um 02:22
quelle vom benutzer

stimmen
2

Als grader für eine erweiterte Algorithmen Natürlich würde ich immer Punkte ausziehen , wenn es einfach eine codierte Lösung.

Manche Dinge können einfach nicht so eloquent in Code ausgedrückt werden, wie sie können in englischer Sprache. Pseudo-Code ist ein Versuch, frei von strengen Compiler Syntax zu brechen und einer Ausdruckskraft zu ermöglichen. Es ist ein Schritt in der richtigen Richtung der Verständlichkeit, aber nicht immer genug.

Gerade in einer Algorithmen Klasse, es ist immer wichtig, einen Beweis der Korrektheit zu schaffen (ob es durch Induktion sein, Widerspruch, etc.), sowie eine Big-O-Notation für die raum- und zeit Komplexität des Algorithmus.

Beantwortet am 13/11/2008 um 21:04
quelle vom benutzer

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