Styleguide für Algorithmen
Styleguide für Algorithmen
Hallo
Ich schreibe gerade einige Algorithmen und tue mir sehr schwer, den richtigen Stil zu finden.
Generell möchte ich gerne die Variablen im Typewriterfont setzen.
Allerdings frage ich mich gerade, ob das auch in Feldern wie "Eingabe" und "Ausgabe" so sein muss.
Ich habe hier mal einen beispielhaften Pseudocode und würde mich über ein Feedback sehr freuen
Ich schreibe gerade einige Algorithmen und tue mir sehr schwer, den richtigen Stil zu finden.
Generell möchte ich gerne die Variablen im Typewriterfont setzen.
Allerdings frage ich mich gerade, ob das auch in Feldern wie "Eingabe" und "Ausgabe" so sein muss.
Ich habe hier mal einen beispielhaften Pseudocode und würde mich über ein Feedback sehr freuen
- Stefan Kottwitz
- Admin
- Beiträge: 2704
- Registriert: Di 8. Jul 2008, 00:39
- Kontaktdaten:
Re: Styleguide für Algorithmen
Willkommen im Forum!
Hier würde ich unterscheiden zwischen Algorithmus darstellen versus Code drucken. Code sehr gern in typewriter-Schrift setzen, sowie Bezüge auf Code-Variablen im Text ebenfalls.
Die Algorithmus-Darstellung hat jedoch den großen Vorteil, dass man darin Mathematik-Schrift und -Symbole verwenden kann. Das sieht schöner aus, mathematischer, mehr wissenschaftlich als technisch.
Hier ein Beispiel aus meinem LaTeX Cookbook, das vor ein paar Tagen in zweiter, erweiterter Auflage erschienen ist:
Ich habe das absichtlich sehr mathematisch aussehen lassen.
Typewriter-Schrift kannst Du Dir immer noch für echten Code aufheben, entweder in Code-Beispielen oder vllt. auch bei den Funktions-Namen (die ja für späteren Code vllt. gedacht sind); ich habe hier small caps für die Namen gelassen.
Viele Grüße,
Stefan
Hier würde ich unterscheiden zwischen Algorithmus darstellen versus Code drucken. Code sehr gern in typewriter-Schrift setzen, sowie Bezüge auf Code-Variablen im Text ebenfalls.
Die Algorithmus-Darstellung hat jedoch den großen Vorteil, dass man darin Mathematik-Schrift und -Symbole verwenden kann. Das sieht schöner aus, mathematischer, mehr wissenschaftlich als technisch.
Hier ein Beispiel aus meinem LaTeX Cookbook, das vor ein paar Tagen in zweiter, erweiterter Auflage erschienen ist:
Ich habe das absichtlich sehr mathematisch aussehen lassen.
Typewriter-Schrift kannst Du Dir immer noch für echten Code aufheben, entweder in Code-Beispielen oder vllt. auch bei den Funktions-Namen (die ja für späteren Code vllt. gedacht sind); ich habe hier small caps für die Namen gelassen.
Viele Grüße,
Stefan
Re: Styleguide für Algorithmen
Hi Stefan,
super, vielen Dank. Das hilft mir schonmal sehr!
In der Tat schreibe ich den Code mit in den Anhang und dort nutze ich typewriter.
Mein Prof hat angemerkt, dass "typewriter" im Pseudocode gut aussehen würde. Ich dachte daher, das wäre eine übliche Konvention
Ich habe noch eine Frage:
Sollten die Variablen im Pseudocode heißen "x,y,z..." oder sollte ich denen sprechende Namen geben wie "exponent"?
super, vielen Dank. Das hilft mir schonmal sehr!
In der Tat schreibe ich den Code mit in den Anhang und dort nutze ich typewriter.
Mein Prof hat angemerkt, dass "typewriter" im Pseudocode gut aussehen würde. Ich dachte daher, das wäre eine übliche Konvention
Ich habe noch eine Frage:
Sollten die Variablen im Pseudocode heißen "x,y,z..." oder sollte ich denen sprechende Namen geben wie "exponent"?
- Stefan Kottwitz
- Admin
- Beiträge: 2704
- Registriert: Di 8. Jul 2008, 00:39
- Kontaktdaten:
Re: Styleguide für Algorithmen
Es würde halt mehr nach Code und weniger nach mathematischem Vorgehen aussehen. Vielleicht kannst Du ein Beispiel erschaffen, in dem Du mehr Mathematik verwendest, Summenzeichen, oder sowas wie Exponenten, Indizes, Akzente (wie Komplement-Symbol) oder Transpose-Zeichen etc.neudabei hat geschrieben: ↑So 10. Mär 2024, 09:58Mein Prof hat angemerkt, dass "typewriter" im Pseudocode gut aussehen würde.
Und dann das gleiche mit typewriter, wo man a^2 und x_n etc. schreiben muss. Beides mal auf die gleiche Seite legen und die Seite dem Prof zeigen mit der Meinung, mathematische Symbolik im Algorithmus wäre schöner und dass es hier ja noch nicht um Code-Umsetzung geht. Dort heißen Variablen nämlich auch oft so wie sum, prod, result, etc. weil man im echten Code ja nicht nur einbuchstabig bleibt sondern auch sprechende Variablen für lesbaren Code verwendet.
Vielleicht sind hier paar Argumente dabei.
Das würde ich situationsabhängig entscheiden. Ist es kurz mit wenigen Variablen, dann einbuchstabig mit gängiger Konvention; wie i,j für Zähler, m und n für natürliche Zahlen, a,b,c für Zahlenwerte, x,y,z für unbekannte Variablen, t für Zeit usw. Wenn es länger ist bzw. wenn viele Variablen auftauchen, sind sprechende Variablen vielleicht besser zum Durchblicken.neudabei hat geschrieben: ↑So 10. Mär 2024, 09:58Sollten die Variablen im Pseudocode heißen "x,y,z..." oder sollte ich denen sprechende Namen geben wie "exponent"?
Stefan
Re: Styleguide für Algorithmen
Da habe ich in der Tat ein Beispiel greifbar
Bisher sieht es bei mir so aus:
Bisher sieht es bei mir so aus:
- Stefan Kottwitz
- Admin
- Beiträge: 2704
- Registriert: Di 8. Jul 2008, 00:39
- Kontaktdaten:
Re: Styleguide für Algorithmen
Ich persönlich finde Konsistenz wichtig, und würde die Variablen im Algorithmus nicht einmal "mathematisch" und einmal typewriter schreiben. Konsistenz kannst Du hier ja mal ansprechen. Für mich klingt die typewriter-Wahl (übertrieben gesagt) wie demonstrativ dekorativ dass es Code sein soll, obwohl der Algorithmus mit mathematischen Variablen und Konstanten funktioniert, und nicht nach echter Funktion.
Typerweiter aka Monospace verbessert halt Lesbarkeit und Strukturierung von Code, da die Ausrichtung von Zeichen in verschiedenen Zeilen konsistent bleibt, gut bei Einrückungen und vertikalen Ausrichtungen in Programm. Es erleichtert auch das Erkennen von Strukturmustern und Fehlern.
Hier ist der Algorithmus aber sowieso nicht konstant monospace/typewriter, siehe die fetten Schlüsselwörter, das ist ein totaler Mix von Fonts, hier wird mit vertikalen Linien ausgerichtet etc. Der obengenannte Sinn von typewriter ist hinfällig, bleibt nur noch cool nach Code aussehen. Oder cooler nach Mathematik.
Stefan
Typerweiter aka Monospace verbessert halt Lesbarkeit und Strukturierung von Code, da die Ausrichtung von Zeichen in verschiedenen Zeilen konsistent bleibt, gut bei Einrückungen und vertikalen Ausrichtungen in Programm. Es erleichtert auch das Erkennen von Strukturmustern und Fehlern.
Hier ist der Algorithmus aber sowieso nicht konstant monospace/typewriter, siehe die fetten Schlüsselwörter, das ist ein totaler Mix von Fonts, hier wird mit vertikalen Linien ausgerichtet etc. Der obengenannte Sinn von typewriter ist hinfällig, bleibt nur noch cool nach Code aussehen. Oder cooler nach Mathematik.
Stefan
- Stefan Kottwitz
- Admin
- Beiträge: 2704
- Registriert: Di 8. Jul 2008, 00:39
- Kontaktdaten:
Re: Styleguide für Algorithmen
Btw. Du kannst Dich gern auf mein Buch berufen, LaTeX Cookbook, Kapitel 11, Using LaTeX in
Science and Technology, Abschnitt Typesetting an algorithm, Abbildung 11.1.
Sowie auf das algorithmicx-Handbuch.
Soll aber natl. keine dolle Diskussion mit dem Prof werden, nur kannst gern zeigen dass Du nachgedacht hast und etwas begründet besser findest, vllt. Beispiele beider Varianten nebeneinander legen und gute Gründe nennen.
Stefan
Science and Technology, Abschnitt Typesetting an algorithm, Abbildung 11.1.
Sowie auf das algorithmicx-Handbuch.
Soll aber natl. keine dolle Diskussion mit dem Prof werden, nur kannst gern zeigen dass Du nachgedacht hast und etwas begründet besser findest, vllt. Beispiele beider Varianten nebeneinander legen und gute Gründe nennen.
Stefan
Re: Styleguide für Algorithmen
So, nun habe ich mich mal angemeldet, das macht einfach mehr Sinn
Stefan, ich danke dir vielmals für die Zeit die du hier investierst und deine Tipps.
Ich bin noch nicht ganz durch deine letzte Antwort durchgestiegen.
Schlüsselwörter fett und vertikale Linien... findest du die hier unangebracht?
Ich habe mal folgendes gemacht: Ich habe "jacobisymbol" deshalb in typewriter gesetzt, weil es eine Funktion (auch als Pseudocode) in meiner Arbeit gibt, die so heißt.
Stefan, ich danke dir vielmals für die Zeit die du hier investierst und deine Tipps.
Ich bin noch nicht ganz durch deine letzte Antwort durchgestiegen.
Schlüsselwörter fett und vertikale Linien... findest du die hier unangebracht?
Ich habe mal folgendes gemacht: Ich habe "jacobisymbol" deshalb in typewriter gesetzt, weil es eine Funktion (auch als Pseudocode) in meiner Arbeit gibt, die so heißt.
- Stefan Kottwitz
- Admin
- Beiträge: 2704
- Registriert: Di 8. Jul 2008, 00:39
- Kontaktdaten:
Re: Styleguide für Algorithmen
Anmelden ist gut, so kann man seine Themen automatisch abonnieren und kriegt eine mail, wenn eine Antwort kommt, findet seine Themen wieder, etc. Gern mit Pseudonym und unwichtiger Zweit-Email-Adresse, wir wollen gern anonym bleiben. Und hier bin ich der einzige Forum-Admin und mache das nur privat, kein Datensammeln, kein Unternehmen.
Schlüsselwörter fett ist gut, vertikale Linien sind gut weil sie die teils verschachtelten Umgebungen super repräsentieren, alles ok! Ich meinte damit nur, dass hier eh kein Monospace/Typewriter-Konzept in der Darstellung ist, sondern es anders gelöst ist.
Auch wenn ich das default small caps für Funktionsnamen ok finde, kann es in Deinem Fall wirklich gut sein, hier die typewriter-Hervorhebung zu nehmen, das unterstreicht den direkten Bezug auf die Code-Funktionsnamen. Perfekt eigentlich, weil direkter Code-Bezug, während Variablen noch ursprünglich Mathe-Bezug haben.
Stefan
Schlüsselwörter fett ist gut, vertikale Linien sind gut weil sie die teils verschachtelten Umgebungen super repräsentieren, alles ok! Ich meinte damit nur, dass hier eh kein Monospace/Typewriter-Konzept in der Darstellung ist, sondern es anders gelöst ist.
Auch wenn ich das default small caps für Funktionsnamen ok finde, kann es in Deinem Fall wirklich gut sein, hier die typewriter-Hervorhebung zu nehmen, das unterstreicht den direkten Bezug auf die Code-Funktionsnamen. Perfekt eigentlich, weil direkter Code-Bezug, während Variablen noch ursprünglich Mathe-Bezug haben.
Stefan
Re: Styleguide für Algorithmen
Super, vielen Dank für deine Ausführungen, das hat sehr geholfen!
Ich werde mir gleich mal das Kochbuch reinziehen. Vielleicht werden meine Fragen die ich hier stelle auch darin beantwortet, bestimmt sogar. Trotzdem würde ich gerne weiter fragen, ich tue mir oft schwer bei solchen Sachen.
Daher habe ich hier mal den nächsten Algorithmus: Meine Gedanken sind hier die gleichen: Variablennamen im typewriter, insbesondere weil es jetzt auch um Vektoren geht (und auch mengen in anderen Algorithmen).
Ich werde mir gleich mal das Kochbuch reinziehen. Vielleicht werden meine Fragen die ich hier stelle auch darin beantwortet, bestimmt sogar. Trotzdem würde ich gerne weiter fragen, ich tue mir oft schwer bei solchen Sachen.
Daher habe ich hier mal den nächsten Algorithmus: Meine Gedanken sind hier die gleichen: Variablennamen im typewriter, insbesondere weil es jetzt auch um Vektoren geht (und auch mengen in anderen Algorithmen).