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

StackOverflow https://stackoverflow.com/questions/263834

  •  06-07-2019
  •  | 
  •  

Frage

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 (da Programmierstil ist ziemlich viel Konsens-basiert)

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

  1. Der Test für die Pseudo-Code gefragt, die wir in der Klasse nie wirklich "definiert"; 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 klar.

  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 auf meinen Prüfungen reiten.

  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 wissen will, 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 mir ziemlich sicher, dass dieses Thema kaum eine Chance, kommt in der realen Welt hat).

Nochmals vielen Dank für jede Hilfe / Beratung.

War es hilfreich?

Lösung

Sie möchten 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 die Begründung Spüren Sie, der ganze Sinn des Lernens ist, dass Sie verstehen, das Konzept zu zeigen, 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.


Im Hinblick 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önnten)

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

Oft kann dies den Pseudo-Code macht beide mehr terse und verständlich.

Pseudocode auch nicht auf dem 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 Begriffe verwendet.

Wenn Sie die durchschnittliche Person einen Algorithmus in Perl zum Beispiel geben, würden die meisten Leute aus Entsetzen sterben, nur weil sie an den Estrichen von Leitungsrauschen nicht sehen.

Während:

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

kann etwas kohärenten Sinn, jemand in Perl, Codeleser auf die durchschnittlichen versiert macht alles, was sie bekommen, ist eine „was zum Teufel hast du gerade gesagt“ 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 

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

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

gibt es auch dieses fieses kleines Problem mit dem Code, der in einem Algorithmus existiert nicht, und das ist der Code aussieht in Ordnung, aber nicht tun, was Sie denkt es tut, und wenn es funktioniert es nicht richtig machen, und Sie nicht erkennen, den Code Reverse Engineering Lesen Leute es es versauen und kopieren Sie eine gebrochen Algorithmus. nicht gut. der Algorithmus in menschlicher Gestalt besser übersetzt ‚das ist, was ich will es tun‘

Andere Tipps

In diesem Fall müssen Sie den Professor verschieben.

Sie benötigen mehr Informationen zu 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).

So beantworten werde ich meine eigenen Erfahrungen basiert. 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, die die oben genannten Fall ist, 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“. ; -)

Cheers,

R

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

einfach Manche Dinge können 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 Groß-O-Notation für die raum- und zeit Komplexität des Algorithmus .

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

Das Problem mit dem 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 der Lehrer hat das Recht, Sie frei zu bewerten, so ... auszukommen mit ihm!

Sie einfach zu Ihrem Professor sprechen 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 geschrieben wurde nicht korrekt?

-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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top