Styleguide für Algorithmen

Schriftbild, Absätze und Auflistungen einstellen


neudabei

Styleguide für Algorithmen

Beitrag von neudabei »

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 :)
algo.png

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2704
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Styleguide für Algorithmen

Beitrag von Stefan Kottwitz »

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:
algorithmus.png
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

neudabei

Re: Styleguide für Algorithmen

Beitrag von neudabei »

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 :D

Ich habe noch eine Frage:
Sollten die Variablen im Pseudocode heißen "x,y,z..." oder sollte ich denen sprechende Namen geben wie "exponent"?

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2704
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Styleguide für Algorithmen

Beitrag von Stefan Kottwitz »

neudabei hat geschrieben:
So 10. Mär 2024, 09:58
Mein Prof hat angemerkt, dass "typewriter" im Pseudocode gut aussehen würde.
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.

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. :-)
neudabei hat geschrieben:
So 10. Mär 2024, 09:58
Sollten die Variablen im Pseudocode heißen "x,y,z..." oder sollte ich denen sprechende Namen geben wie "exponent"?
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.

Stefan

neudabei

Re: Styleguide für Algorithmen

Beitrag von neudabei »

Da habe ich in der Tat ein Beispiel greifbar :)
Bisher sieht es bei mir so aus:
Dateianhänge
Bildschirmfoto vom 2024-03-10 10-19-34.png

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2704
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Styleguide für Algorithmen

Beitrag von Stefan Kottwitz »

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

Stefan

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2704
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Styleguide für Algorithmen

Beitrag von Stefan Kottwitz »

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

Mephisto
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: So 10. Mär 2024, 10:27

Re: Styleguide für Algorithmen

Beitrag von Mephisto »

So, nun habe ich mich mal angemeldet, das macht einfach mehr Sinn :D

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:
Bildschirmfoto vom 2024-03-10 10-37-27.png
Ich habe "jacobisymbol" deshalb in typewriter gesetzt, weil es eine Funktion (auch als Pseudocode) in meiner Arbeit gibt, die so heißt.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2704
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Styleguide für Algorithmen

Beitrag von Stefan Kottwitz »

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

Mephisto
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: So 10. Mär 2024, 10:27

Re: Styleguide für Algorithmen

Beitrag von Mephisto »

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:
Bildschirmfoto vom 2024-03-10 11-11-49.png
Meine Gedanken sind hier die gleichen: Variablennamen im typewriter, insbesondere weil es jetzt auch um Vektoren geht (und auch mengen in anderen Algorithmen).

Antworten