Programmieren in C und Hauptseite: Unterschied zwischen den Seiten

Aus Datenschutz
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
 
 
Zeile 1: Zeile 1:
== Programmieren in C auf dem eigenen Computer ==
+
__NOTOC__
[[Datei:Raspi400.jpg|mini|rechts|Der Raspberry Pi 400 für knapp 100.- € zum Anschluss an den Fernseher (hier mit englischem Netzteil!)]]
+
= Aktuelle Meldungen =
* Um ein Programm in einer Programmiersprache zu schreiben, braucht man ein passendes Übersetzungsprogramm für diese Sprache.
+
* Fotografieren von Falschparkern ist [https://www.tagesspiegel.de/gesellschaft/panorama/kein-datenschutzverstoss-burger-durfen-falschparkende-autos-fotografieren-8828641.html kein Datenschutzverstoß] (Tagesspiegel, 03.11.2022).
* Solche Übersetzungsprogramme übersetzen eine Programmiersprache in die universelle Sprache aller Computer.
+
* Weitere Strafe gegen [https://netzpolitik.org/2022/gesichtserkennung-frankreich-verhaengt-hoechststrafe-gegen-clearview-ai/ Clearview AI].
* Solcher Übersetzungsprogramme heißen '''Compiler'''.
+
* Aufzeichnen des gesprochenen Wortes [https://www.kostenlose-urteile.de/OVG-Nordrhein-Westfalen_19-A-40821_Unzulaessigkeit-einer-heimlichen-Tonbandaufnahme-des-gesprochenen-Wortes.news32255.htm ist verboten]!
* Man benötigt also für C einen C-Compiler und
+
* Zweifel am Incognito-Modus des Chrome - [https://winfuture.de/news,132410.html von Google]!
* einen Editor (Textverarbeitung für Programmierer) zum Erfassen des Programms.
+
* EuGH: Vorratsdatenspeicherung ist [https://www.welt.de/politik/ausland/article241157809/EuGH-Anlasslose-Vorratsdatenspeicherung-in-Deutschland-ist-rechtswidrig.html rechtswidrig] (WELT, 20.09.2022).
* Am besten alles zusammen: eine "Integrierte Entwicklungsumgebung (IDE)".
+
* Google Fonts löst [https://www.kostenlose-urteile.de/LG-Muenchen-I_3-O-1749320_Verletzung-des-Persoenlichkeitsrechts-aufgrund-automatischer-Weitergabe-der-dynamischen-IP-Adresse-an-Google-bei-Aufruf-einer-Webseite.news32160.htm Schadensersatzanspruch] in Höhe von 100.- € aus (LG München 20.01.2022).
* Zum Beispiel diese [https://github.com/Embarcadero/Dev-Cpp/releases hier] (Windows, MacOS).
+
* [https://www.kostenlose-urteile.de/AG-Pforzheim_4-C-184521_Rechtsmissbraeuchlicher-Auskunftsanspruch-nach-DSGVO-bei-Drohungen-und-Beleidigungen-des-Gegners-und-dessen-Anwalt.news32157.htm Kein Missbrauch] der Auskunftspflicht der EU-DSGVO (AG Pforzheim, 05.08.2022).
* Auf einem Raspberry Pi kann man einfach [https://de.wikipedia.org/wiki/Geany Geany] benutzen.
+
* 25 Jahre [https://www.deutschlandfunk.de/anti-korruptionsgesetz-korruption-bestechung-schmiergeld-regelwerk-politik-100.html Anti-Korruptionsgesetz] (Deutschlandfunk, 12.08.2022).
 +
* In eigener Sache: Kleine Artikel zu konkreten Problemkreisen sollen die "Datenschutz-Rezepte" bieten. Das erste, das ich anbiete, ist das [[Datenschutz-Rezept: Videoüberwachung]].
 +
* Ermittlungen des Bundesdatenschutzbeauftragten gegen [https://www.dr-datenschutz.de/facebook-fanpage-ermittlungen-des-bfdi-gegen-das-bundespresseamt/ das Bundespresseamt bei Facebook] (Dr. Datenschutz, 09.06.2022).
 +
* Einheitliche Bußgeldpraxis der EDSA ([https://www.datenschutz-praxis.de/pleiten-pech-pannen/einheitliche-bussgeldpraxis-edsa-legt-leitlinien-vor/ DATENSCHUTZPRAXIS], 09.06.2022)
 +
* Innenminister Herbert Reul fordert [https://www.zeit.de/politik/deutschland/2022-05/reul-datenschutz-befugnisse-missbrauch-wermelskirchen?page=2 Erleichterungen beim Datenschutz] (ZEIT, 01.06.2022, siehe auch [https://www.dr-datenschutz.de/rechtsgrundlage-wann-duerfen-daten-verarbeitet-werden/ hier]).
 +
* Deutschland ist [https://www.zeit.de/digital/datenschutz/2022-05/datenschutz-dsgvo-umfrage-cookies genervt] von Cookies (ZEIT, 25.05.2022).
 +
* Einheitliches [https://www.lto.de/recht/kanzleien-unternehmen/k/datenschutz-verstoesse-unternehmen-bussgeld-eu-dsgvo-leitlinien-edsa/ Bußgeldmodell] beschlossen (LTO, 21.05.2022).
 +
* Die Website "Dr. Datenschutz" hat in einem [https://www.dr-datenschutz.de/zensus-2022-datenschutz-probleme-und-pflicht-zur-teilnahme/ Artikel] alle Fragen zur "Volkszählung 2022" kurz und gut aufgeführt (Dr. Datenschutz, 20.05.2022).
  
== Grundsätzliches Wissen für angehende Programmierer/-innen ==
+
= Fallarchiv =
* Jede Anwendung eines persönlichen Computers, jede Website, jede App ist ein '''Computerprogramm'''.
+
[[Datei:Terminal.png|100px|rechts]]
* Computerprogramme sind Listen von '''Anweisungen''', die vom Computer der Reihe nach abgearbeitet werden.
+
* [[Fall 14/2022: Auskunft über ein entferntes Grundstück]]
* Diese Listen werden in ein Textprogramm eingegeben, in Bits und Bytes übersetzt und dann ausgeführt.
+
* [[Fall 13/2022: Erfassung von Besucherdaten]]
* Anweisungen in Programmen bestehen aus '''Schlüsselwörtern und Parametern''', die die Anweisungen genauer spezifizieren.
+
* [[Fall 12/2022: Vollständiges Löschen von Bewerberdaten]]
* Ein Beispiel "aus dem richtigen Leben" wäre
+
* [[Fall 11/2022: Jugendparlament auf Instagram]]
<pre>"Starte das Auto"</pre>
+
* [[Fall 10/2022: Auskunft nach dem IFG]]
* wobei "Starte" das Schlüsselwort und "das Auto" der Parameter ist.
+
* [[Fall 09/2022: Unfallkasse möchte den Namen eines Kindes erfahren]]
* Ein Schlüsselwort sagt dem Computer, '''was''' zu tun ist.
+
* [[Fall 08/2022: Eingeschränkter Zugriff auf Einwohnermeldewesen für Statistiken]]
* Ein Parameter erklärt, '''womit''' etwas zu tun ist.
+
* [[Fall 07/2022: Teilnehmerliste im Beirat für Menschen mit Behinderungen]]
 +
* [[Fall 06/2022: Landesgesellschaft - wer ist verantwortlich?]]
  
== Funktionen ==
+
= Recht und Urteil =
* Ein Problem wird zur Lösung in viele kleine Probleme zerlegt.
+
[[Datei:Houses.jpg|100px|left]]
* Beispiel: "Kuchen backen" kann in "Mische Mehl, Eier...", "Heize den Backofen", "Knete den Teig" etc. aufgeteilt werden.
 
* Programme können in kleine Abschnitte eingeteilt werden, die einzelne Unter-Aufgaben erfüllen ('''Funktionen''').
 
* Diese Funktionen haben einen festgelegten '''Namen''', '''Parameter''' und können '''Werte''' an das Hauptprogramm zurück geben.
 
* Den '''Typ des Rückgabewertes''' steht vor der Funktion (hier: int = integer = ganze Zahlen).
 
* main ist die ''erste'' Funktion, die in jedem Programm aufgerufen wird. Hier startet also immer das Programm.
 
* In C-Programmen muss es wenigstens ''eine'' Funktion mit dem Namen '''main''' geben.
 
* Von main aus werden andere Funktionen des selben Programms '''aufgerufen''', sofern welche existieren.
 
* Die Hauptfunktion, das ganze Programm, gibt nach der Abarbeitung des Programms einen Wert an den Computer zurück.
 
* Ein einfaches Programm sieht also jetzt so aus ("//" leitet einen Kommentar ein):
 
<pre>
 
int main ()
 
{
 
  // Hier startet das Hauptprogramm
 
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
 
}
 
</pre>
 
  
== Variable ==
 
* Variable sind '''benannte Speicherstellen''', in denen Zwischenergebnisse gespeichert werden können.
 
* Variable müssen dem C-Compiler '''erklärt''' werden, damit sie verwendet werden können: sie werden '''deklariert'''.
 
* Da Programme linear (von oben nach unten) ablaufen, sind '''Variablen erst ab der Deklaration''' nutzbar.
 
* Der Compiler muss wissen, was in den Variablen stehen soll: der '''Variablentyp'''.
 
* Typen für Variable in C: Ganzzahlen (int), Fließkommazahlen (float), Zeichen (char)
 
* Eine Deklaration sieht typischerweise so aus: <Typ><Leerzeichen><Name><Semikolon>
 
* Beispiel: <pre>int nGedachteZahl;</pre>
 
* Das "n" vor dem Namen "GedachteZahl" ist nicht notwendig. Es ist aber [https://de.wikipedia.org/wiki/Ungarische_Notation gute Sitte], den Typ (int, also numerisch) im Namen zu erwähnen.
 
* Variable können auch einen Anfangswert (Initialisierung) enthalten, der einfach dahinter geschrieben wird.
 
* Beispiel: <pre>int nGedachteZahl = 24;</pre>
 
* Die Variable nGedachteZahl ist dem Compiler ab diesem Zeitpunkt als Ganzzahl-Speicherstelle bekannt und hat den Wert 24.
 
* Eine nicht initialisierte Variable hat übrigens '''nicht''' den Wert Null sondern einen unbestimmten Wert (Vorsicht!).
 
* In unserem Beispiel brauchen wir zwei Variable: in einer steht die gedachte Zufallszahl, in der anderen die Vermutung des Benutzers.
 
* Nach der Erwähnung des Datentyps kann man weitere Variablen definieren.
 
* Unser Programm sieht bis hierher also so aus:
 
<pre>
 
  
int nGedachteZahl = 24; // muss erraten werden
+
* In einer Einladung einer Eigentümergemeinschaft von Eigentumswohnungen [https://www.kostenlose-urteile.de/OLG-Muenchen_20-U-705120_Verwalter-darf-in-Einladung-zur-Eigentuemerversammlung-wegen-Legionellenbefalls-Namen-des-betroffenen-Wohnungseigentuemers-mitteilen.news31757.htm durfte der Name des Eigentümers genannt werden], der einen Legionellebefall zu beklagen hatte.
    nVermutung = 0;    // sicher ist sicher
 
  
int main ()
+
= [[Lexikon|Lexikon der Fachbegriffe]] =
{
+
{| class="wikitable"
  // Hier startet das Hauptprogramm
+
|-
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
+
|[[Auftragsverarbeitung]]||[[Datenschutzfolgenabschätzung]]||[[Meldung an die Aufsichtsbehörde]]||[[Personenbezogene Daten]]
}
+
|-
</pre>
+
|[[Beschäftigtendatenschutz]]||[[Datenschutzerklärung]]||[[Räumlicher Anwendungsbereich]]||[[Übermittlung]]
 +
|-
 +
|[[Besondere Kategorien personenbezogener Daten]]||[[Einwilligung]]||[[Rechtmäßigkeit]]||[[Verarbeitung]]
 +
|-
 +
|[[Betroffenenrechte]]||[[Europäische Datenschutzgrundverordnung]]||[[Sachlicher Anwendungsbereich]]||[[Verarbeitungsverzeichnis]]
 +
|-
 +
|[[Datenschutzbeauftragte]]||[[Grundsätze der Verarbeitung]]||[[Videoüberwachung]]||[[Zweckänderung]]
 +
|}
  
== Ein- und Ausgabe ==
+
= Prüfschema =
* Ein Programm braucht grundsätzlich Anweisungen für die '''Eingabe''', die '''Verarbeitung''' und die '''Ausgabe''' von Daten.
+
{{:Prüfschema Datenschutz 2021: Arbeiten wir nach der EU-DSGVO?}}
* Speziell in der Programmiersprache C gibt es '''keine''' Anweisungen zur Ein- und Ausgabe.
 
* C soll auf sehr vielen Computern nutzbar sein und jedes Computersystem hat andere Funktionen für Ein- und Ausgabe.
 
* Deshalb liegt jedem C-Compiler eine Bibliothek von Dateien bei, die Ein- und Ausgabe des jeweiligen Computersystems ermöglicht.
 
* Die Funktionen in diesen Dateien werden aber alle in der gleichen Art und Weise aufgerufen ("C-Standard-Bibliotheken").
 
* Wir verwenden hier zur Eingabe das Schlüsselwort '''scanf''' und zur Ausgabe '''printf''' wegen ihrer Ähnlichkeit.
 
* Im "echten Leben" tun Sie das bitte nicht: die Funktionen sind [https://dasdev.de/nachteile-von-scanf/ nicht krisensicher].
 
  
== Bedingungen ==
+
= Sonstiges =
== Fallunterscheidungen ==
+
* [[KURT]] - Programm zur Prüfung der Korruptionsvorbeugung (Version 21.07.2020)
== Schleifen mit Zähler ==
+
* [https://www.frankwerner.org/index.php?title=Programmieren_in_Pascal:_KURT_(Korruptionsschutz) KURT (Pascal-Version, Oktober 2021)]
== Kopfgesteuerte Schleifen ==
+
* [[EUGEN]] - Programm zur Prüfung von Datenschutzfällen (Version 24.06.2020)
== Fußgesteuerte Schleifen ==
+
* [[Pizza 2000]] - Einfaches Programm für Lieferdienste (Version 14.08.2020, Freizeitspaß)
== Dateien ==
+
* [[Programmieren in Pascal: Zahlenraten]] (Version 21.12.2021, Formatübung)
 +
* [[Programmieren in C]] (Version 06.09.2022, Formatübung)
 +
* [https://www.frankwerner.org/pascal/ Turbo-Pascal® online]
 +
* [https://www.scullinsteel.com/apple2/#pascal1|pascal2 Apple® Pascal online]
 +
* [https://c64emulator.111mb.de/index.php?site=pp_javascript&lang=de&group=c64# Commodore 64 online]

Version vom 3. November 2022, 14:49 Uhr

Aktuelle Meldungen

Fallarchiv

Terminal.png

Recht und Urteil

Houses.jpg


Lexikon der Fachbegriffe

Auftragsverarbeitung Datenschutzfolgenabschätzung Meldung an die Aufsichtsbehörde Personenbezogene Daten
Beschäftigtendatenschutz Datenschutzerklärung Räumlicher Anwendungsbereich Übermittlung
Besondere Kategorien personenbezogener Daten Einwilligung Rechtmäßigkeit Verarbeitung
Betroffenenrechte Europäische Datenschutzgrundverordnung Sachlicher Anwendungsbereich Verarbeitungsverzeichnis
Datenschutzbeauftragte Grundsätze der Verarbeitung Videoüberwachung Zweckänderung

Prüfschema

  • Geben Sie dem Fall ein eindeutiges Aktenzeichen und einen eindeutigen Titel.
  • Beschreiben Sie den Sachverhalt (ohne personenbezogene Daten zu erfassen, da dies selbst ein Datenschutzfall sein könnte).
  • Prüfen Sie dann die folgenden Verhältnisse:
  1. Fand der Sachverhalt nach dem 28.05.2018, 0:00 Uhr statt?
  2. Sind personenbezogene Daten betroffen? Wenn ja, welcher Art?
  3. Werden diese Daten verarbeitet und brauchen Sie eine Datenschutzerklärung!
  4. Ist die EU-DSGVO räumlich anwendbar?
  5. Besteht eine Rechtsgrundlage oder müssen Sie eine Einwilligung einholen?
  6. Werden besondere Kategorien personenbezogener Daten verarbeitet?
  7. Besteht eine legale Auftragsverarbeitung, sind alle Betroffenenrechte gewährleistet?
  8. Muss ein Verarbeitungsverzeichnis durch Verantwortliche erstellt werden?
  9. Müssen Datenschutzbeauftragte benannt werden?
  10. Muss eine Datenschutzfolgenabschätzung abgegeben werden?
  11. Sind geeignete technische und organisatorische Maßnahmen ergriffen worden?

Sonstiges