{{ :public_pics:c_for_noobs.jpeg?nolink&300 |}} ===== Herzlich willkommen bei den C-Noobs ! ===== * **Was**: Wir sind eine heterogene Gruppe die sich das Ziel gesetzt hat [[http://de.wikipedia.org/wiki/C_(Programmiersprache)|C]] zu lernen * **Wann**: Alle 2 Wochen um 19:00 Uhr. Für genaue Termine siehe unten ([[c-noobs#anwesenheit|Anwesenheit]]). Termine werden in der [[https://lists.muc.ccc.de/cgi-bin/mailman/listinfo/talk|Talk-Mailing Liste]] angekündigt. * **Wo**: Schleißheimer Strasse ++41, München * **Wer**: Mitmachen darf jeder: neue Gesichter, auch non-CCC-members, sind gerne willkommen! * **Kontakt**: Siehe: [[communication#irc]] * **Kosten**: Alles gratis * **Weitere Infos**: [[c-noobs#fragen_antworten|Fragen&Antworten]] und [[c-noobs#offene_fragen|Offene Fragen]] ===== Aktuelles ===== ... stay tuned! ===== Anwesenheit ===== ^ 16.05.14 19:00 ^ |Dr.Elch| |Joon| |Nastia| |Alex| Alte Termine ^ 10.01.14 19:00 ^ 24.01.14 19:00 ^ 07.02.14 19:00 ^ 21.02.14 19:00 ^ 07.03.14 19:00 ^ 21.03.14 19:00 ^ 04.04.14 19:00 ^ | Joon | Joon | Joon | Joon | Joon | Joon | Joon | | Richard | Richard | Richa | | Peete | | | | n_to | n_to | | | **Ausgefallen!** | | | | accxev (nicht ganz sicher) | | | | | | | | Dr.Elch | Dr.Elch | Dr.Elch | Dr.Elch | | Dr.Elch | Dr.Elch | | Nastia | Nastia | Nastia | Nastia | | Nastia | Nastia | | Lukas | (l. verhindert) | | | | Lukas (evtl.) | | | Uwe (nicht ganz sicher) | | Uwe (nicht ganz sicher) | | | | | | Martina (nicht ganz sicher) | | | | | | | | | elian | elian | elian | | | | | | | | | | | Alex (non-CCC-member)| ===== Ideen ===== Netzwerkprogrammierung Spiel programmieren? gui ===== Offene Fragen ===== Wer Fragen hat hier stellen ===== Fragen&Antworten ===== * Wie oft trefft ihr euch? ** Wir versuchen es alle 2 Wochen zu machen * Was ist die Zielgruppe? ** Dieser Workshop richtet sich an $noobs. Ob totaler Noob oder nur Semi-Noob etc. Noob = Anfänger. Es richtet sich nicht an Kernel-Hacker, Treiber Programmierer, oder Grafik-Zauberer. * Was ist der Scope? ** Wir gehen Beispiele durch die man Online findet. Als theoretische Grundlage nehmen wir das K&R oder eben menschliche Wissensquelle. http://www.c-howto.de/tutorial-einfuehrung.html * Welche Voraussetzungen sollte man mit bringen (Wissen und Technik)? ** Keine. Laptop mitzuhaben ist vielleicht ganz sinnvoll. Da der Workshop auf die vorigen Workshops aufbaut, können wir leider nicht immer bei 0 beginnen. Aber es wird jedes Mal eine Zusammenfassung der Themen hier im Wiki erstellt. So kann man sich vorbereiten * Wer moderiert das ganze (wird es moderiert)? ** Erstmal Int80. Aber wir können gerne das mal rotieren lassen. Dr. Elch moderiert auch manchmal ;-) * Wie kann ich mich vorbereiten? ** Siehe Zusammenfassungen (unten) ** [[http://www.programmingsimplified.com/c-hello-world-program]] ** [[http://net.pku.edu.cn/~course/cs101/2008/resource/The_C_Programming_Language.pdf]] * Für Windows-Benutzer eignen sich folgende Entwicklungsumgebungen: ** Code::Blocks [[http://www.codeblocks.org/]] ** Bloodshed [[http://bloodshed.net/]] * Nur für CCC-Members? ** Nein. Für alle! * Wo findet das Treffen statt? ** Im Club. Schleißheimer Str. ++41 (München) ===== Treffen 16.05.14 ===== 2048 Spielregeln http://pastebin.com/zz2che52 ===== Treffen 04.04.14 ===== * Ideensammlung: Welches Spiel möchten wir Programmieren? * Einigung auf ein Spiel * Analyse der Spielregeln und des Spiels ansich * Erstellung einer kleinen Architektur für das Spiel * Identifizierung welche C-Techniken wir noch benötigen für die Umsetzung * Let's code! :-) * Buffer Overflow * Reverse Engineering ===== Treffen 21.03.14 ===== * Einführung Pointers ** Adressierung vs. Referenzierung ** Beispiel für Pointer - Wozu eigentlich? ** Pointers vs. Arrays ** Malloc und Free ** Übungen Übungen: http://ideone.com/Zzjcf9 http://ideone.com/SXULSl http://ideone.com/N5fUBy http://ideone.com/ko3ViX ===== Treffen 21.02.14 ===== Themen: * Wiederholung Funktionen, Kontrollstrukturen, Datentypen * Arrays ** Einführung zum Thema Arrays ** Zugriffe ** Indexierung ** sizeof Operator ** Übungen Source-Code: * Übung1: ** http://ideone.com/HQbUqi * Übung2: ** http://ideone.com/cq0dJG * Übung3: ** http://ideone.com/UxZmnm * Übung4: ** http://ideone.com/eGUhzt * Tutorial: ** http://www.c-howto.de/tutorial-arrays-felder.html ===== Treffen 07.02.14 ===== Themen: * Funktionen ** Was sind Funktionen ** Wie werden Funktionen verwendet ** Nützliche Details zu Funktionen * Getränkeautomat wird erweitert * Rekursion Source-Code: * Folienbegleitender Code: ** http://ideone.com/5hPgDd * Getränkeautomat 0.3: ** http://ideone.com/oy6eTn * Getränkeautomat 0.4: ** http://ideone.com/YMyXLi * Getränkeautomat 0.5: ** http://ideone.com/CJ3zga C-Howto Sektion: * http://www.c-howto.de/tutorial-funktionen.html ===== Treffen 24.01.14 ===== Themen: * Verzweigungen: [[http://www.c-howto.de/tutorial-verzweigungen.html]] * Schleifen [[http://www.c-howto.de/tutorial-schleifen.html]] * Pentabug * Matemat goes Console ===== Treffen 10.01.14 ===== Themen: - Hello World - Datentypen - Speicherverwaltung - Kernel - Parameter - Funktionen - Was ist C? - Deklaration - Bits und Bytes - Variablen ===== Diskussion ===== * (Dr.Elch) Können wir für das zweite Treffen eine Liste an Themen erstellen, die wir behandeln wollen? Ich mach hier mal Vorschläge (@Joon: Ich will dir hier nix vorwegnehmen oder deinen Vortrag hijacken): ** Review vom letzten Mal anhand eines kleinen Beispiels. ** Dann: Erweiterung des Beispiels mit den Themen, die neu erlernt werden sollen. ** Erläuterung Schleifen ** While-Loop; Do-Loop; For-Loop; ** Kurz: Break; Continue; ** Boolean Operations und ihre Möglichkeiten ** Optional: Kommt auf die Zeit drauf an: Arrays und ganz kurze Einführung in Strings. Aber würde ich lieber aufs nächste mal verschieben, bevor es zu viel Input ist. ** Review Libraryfunktionen. Einführung des Zufallszahlengenerators ** Erstellung eines Beispielprogramms durch die Teilnehmer, um das gelernte Anzuwenden. Zum Beispiel ein kleines Ratespiel, bei dem durch den User eine vom PC vorgegebene Zahl erraten werden muss. (Joon): Moin Dr. Elch (Hilf, mir auf die Sprünge, wer warst du nochmal? :-) Danke das du dich so interessierst für den Workshop. 1. Wir können gerne zum Start immer ein kurzes Review vom letzten Workshop machen. Ist ne gute Idee. 2. Die Ganzen Themen die es bei der C Programmierung gibt, wollen wir natürlich auch alle behandeln. 3. Ich würde gerne die Struktur von hier nehmen: http://www.c-howto.de/tutorial-einfuehrung.html 4. Das heißt als Nächstes Thema würde ich gerne die **Verzweigungen** in Angriff nehmen: http://www.c-howto.de/tutorial-verzweigungen.html 5. Die Erklärungen sind gut und brauchbar. Zum Schluss gibt es auch immer eine Übungsaufgabe! 6. Desweiteren würde ich es gerne so machen: 1 Workshop, 1 Thema. 7. **Schleifen** wären dann das Thema für den übernächsten Workshop! @Dr.Elch: Du kannst aber gerne eine Präse oder ähnliches Vorbereiten und vortragen (also nur wenn du willst)... (Dr.Elch): Ich war der Typ der links von dir saß und mit Anastasia da war. :-) Ich dachte, da Verzweigungen letztes mal schon dran waren, du gleich weiter zu Schleifen gehen wolltest, aber mir auch recht, die Themen nicht zu schnell durchzuboxen. Wobei man vielleicht auch ein wenig Material zu Schleifen haben sollte, da Bedingungen gerade mit Schleifen doch ganz nett harmonieren :-) Aber it's up to you. Ich mach gern mal nen Vortrag bei einem der nächsten Themen, dann hast du nicht die ganze Arbeit. P.S: ich finds lustig, dass du das C-Tutorial von Elias Fischer nimmst. Das is nämlich ein alter Kollege von mir :-) (joon): du kennst E. FIscher? Nice ;-) Also, für den kommenden Freitag: Verzweigungen+Schleifen = MateMat Du kannst dann gerne dir dieses etwas komplexeren Themen schnappen, wobei ich nicht weiß ob man die zusammen durch kriegt oder ob man die an einzelnen Tagen machen sollte:Funktionen und Pointers... Pointers ist ein wichtiges aber schweres Thema. Vielleicht solltest du das vortragen, da du ja skilled bist ;) (Dr.Elch): Funktionen und Pointer würde ich nicht an einem Tag machen. Vielmehr würde ich Funktionen mit etwas mehr Wissen über Library Funktionen verknüpfen und die Limitationen aufzeigen, an die wir stoßen ohne Pointer. Alternativ auch Rekursion einführen. Quasi als Hinführung an Pointer. Pointer und Arrays "kann" man an einem Tag machen, wenn alle Mitkommen, sonst eben nur Pointer. Dieses Thema kann ich gern übernehmen. ===== Chaosknoten zum Mitnehmen ===== ..;;;+++@@@@@@@+++';,. #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# @@@++;,,.```````.......``.,'@@@. ;@#`,,:::::::;@+;;;;;;@@;;;:::'@@.` #@ ,;;;;::::::;@;,,,,,@@,,,,:::@@;, @@`:;:.````` #@,` @@`,` ``@@;:` @+`;:` @@, @@.;. @@:;. @;.;, @#. @@.;. `.,;, `. @;.;. .@+. ,@@@@++++++++#@@@@++;` @: @+ @;,:` ;@;` :@@@@@@@@@@@@@@@@@@@@@; .@`.@: #' @;,:` #@;` `:;,..````..``.....``;@@;'@.#@,,@` @+::` #@@@@@+++++++++++++++++@':,;@'##.@+,@+. @+::` ,;:;;;+++++#@@@@@@@@@@@@@@#;@,@;;@:'@:. @+:;` `,;,....`.....`````````...'@@@;@:@':@,@` @+:;` #@@@@@@@@@@@@@@@@@@@@@@@@@@#+@@#@''@:@@@. @+:;` #@@; ``````................:+@@@@'@:@+@@@:.. @#:;` #@# `.,'#@@@@@@@@@@@@@@@@@@@@@@@@@@@;@@@+@;;, @@,;` '@+ `:@@@@@++;;;;;;;+++++++++#@@@@@@@@@';@;@;, @@,;` ,@+ `,@@.````............,,,,,'@@@@@@@';#@+##;,` @@,;. `@# `,;@# `,::;;@@:::::::::::::::;'';;;+@@''@:#,. @@,;. @@ ,;,@+`::,..`@@```````````````,'+@@@@@;;@+;@:. @@;;. @@` .;,`@#.;. @@`,` #@@@@+:,'@@;@@:.` '@@;, '@, .::` @@,;` `@@.;, `...,@@@:'@',,, .@@;:` .@' `::. @',;` #@;,;, `:;@@@#,.@@,.:, @@@+, ......`,;. :;,.;#@@`,;. @@@@@@:`.@@;.,;. #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`:;` .;.``.:@@+#.;:` .;'';;;;;;;;;;;;;;;;;;;'++++;`,;:` `,:;#@@;#@:;. .;;;::::::::::::::::::::::::;;;, `,+@@;``;@#,` `,:::::::::::::::::::::::;;;;;:. ```@@,;#@;, ````````````````````````````` ;@@;:.@@;` @@@#:.@@@@';@@, +@+@@;::@#@@@@@' `@@ ;@;:`@;;;,.``.. @@ `;@;;.@+;;;;:;;: ;@, ,+@.:.@':;,.,,,. @@ `:#@`:.@,,:` @'`,;@+`::@ ,;` @..;,@;`:+@ ,:` @.,;,@`.;@.`::` ::+@ #@# `:, ,:@@+@#` ,:` #@@@,@##::`,;, ++;. @;.;,:;,` `,,@:,;,:,` .:;@::;.` ```@;::` @@::` @@::` ;@#;` #@;. ';:` ,;, `,,` ``