# 4AHIF 2024/25 ## Leistungsfeststellungen und mündliche Prüfungen ### Termine Wintersemester | Datum | Hinweis | | ----------------- | ------------------------------------- | | 8. November 2024 | EDV 10 | | 13. Dezember 2024 | EDV 10 | | 17. Januar 2025 | EDV 2 | Möglichkeiten für mündliche Prüfungen: | Datum | Hinweis | | --------------- | ----------------------------------------------- | | 31. Januar 2025 | | | 7. Februar 2025 | Ausweichtermin bei Krankheit beim ersten Termin | ### Termine Sommersemester | Datum | Hinweis | | -------------- | ------------------------------------------------ | | 7. März 2025 | EDV 10 | | 11. April 2025 | EDV 10 | | 23. Mai 2025 | EDV 10 | Möglichkeiten für mündliche Prüfungen: | Datum | Hinweis | | ------------- | ----------------------------------------------- | | 6. Juni 2025 | | | 13. Juni 2025 | Ausweichtermin bei Krankheit beim ersten Termin | ### Ablauf Leistungsfeststellungen - Dauer: 3 Einheiten - Nur praktisches Coding, keine Theoriefragen - Nur vom Lehrer bereitgestellte Unterlagen erlaubt (wird in der Regel vorab im Unterricht besprochen) - Kein Internetzugang möglich, keine KI ### Ablauf mündliche Prüfungen - Vorbereitungszeit: 10-15 Minuten - Prüfungszeit: max. 10 Minuten - Kombination aus Theoriefragen und praktischen Aufgaben (d.h. skizzieren von Code auf Papier) - Keine Unterlagen erlaubt ### Benotungsschema - Maximal 20 Punkte je LF - Gliederung in Pflichtaufgaben und Bonusaufgaben - **Alle** Pflichtaufgaben müssen gelöst werden, um positiv zu sein - Maximal 20 Punkte für mündliche Prüfung - Bei LF Wiederholungen zählt die bessere Note - Bei aufbauenden LFs wird die letzte Note höher gewichtet (individuelle Einschätzung) | Note | Min. Prozente (inkl.) | | ---- | --------------------- | | 1 | 89 | | 2 | 76 | | 3 | 63 | | 4 | 50 | | 5 | Less than 50 perc. | ## Lightning Talks Kurzvorträge, um Themen kennenzulernen, für die ansonsten im Unterricht keine oder wenig Zeit ist. Dauer: 5-7 Minuten. 7 Minuten sind das absolute Maximum, danach wird der Vortrag abgebrochen. Jeder Schüler und jede Schülerin **müssen** einen Lightning Talk im Jahr halten. Mögliche Themen: 1. TypeScript, HTML und CSS 1. Introduction in [Nx tools](https://nx.dev/) for Angular 1. [CSS transitions](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions) and [Angular animations](https://angular.dev/guide/animations) 1. How [ESLint](https://eslint.org/) can help to write better code 1. Creating installable client apps with [ElectronJS](https://www.electronjs.org/) 1. Responsive design with [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) and [CSS flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) 1. What is [tailwindcss](https://tailwindcss.com/) and why is it useful? 1. What is [Vite](https://vitejs.dev/) and why should web developers care? 1. What is [WebAssembly (Wasm)](https://webassembly.org/) and why is it important for web development? 1. Is [esbuild](https://esbuild.github.io/) worth to look into? 1. What are [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) and how do they compare to Angular and React? 1. C# and .NET 1. What is [*Roslyn*](https://github.com/dotnet/roslyn/)? 1. Turning [C# *XML Documentation Comments*](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) into a professional documentation site with [*DocFX*](https://dotnet.github.io/docfx/) 1. Cool things you can do with [*dnSpyEx*](https://github.com/dnSpyEx/dnSpy) 1. Working with Microsoft's [*.NET Core Source Browser*](https://source.dot.net/) 1. Why is [*Dapper*](https://github.com/StackExchange/Dapper) useful when writing simple to medium-sized database applications in C#? 1. Cool things you can do with [*Tuples*](https://docs.microsoft.com/en-us/dotnet/csharp/tuples) 1. What is [sharplab.io](https://sharplab.io/) and why is it interesting for C# developers? 1. What is [*.NET Aspire*](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview) and where can it help? 1. Whirlwind tour through [*Blazor*](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor) 1. Server and Cloud 1. What is [*Serverless Computing*](https://en.wikipedia.org/wiki/Serverless_computing) and how is it different from traditional [*Web Hosting*](https://en.wikipedia.org/wiki/Web_hosting_service)? 2. What is the difference between [*OpenAI*](https://platform.openai.com/docs/overview) and [*Azure OpenAI*](https://azure.microsoft.com/en-us/products/ai-services/openai-service) 3. What is [*Azure*](https://azure.microsoft.com/) and why is it important for developers? 4. What is [*Firebase*](https://firebase.google.com/) and why is it important for developers? 5. What are the [*OWASP Top 10*](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project) and why are they important for web development? 1. Code Quality, Testing 1. What are [*SonarQube*](https://www.sonarqube.org/) and [*SonarLint*](http://www.sonarlint.org/index.html)? 2. What is [*PerfView*](https://github.com/Microsoft/perfview) and how can it help improving application performance? 3. What is [*BenchmarkDotNet*](https://github.com/dotnet/BenchmarkDotNet) and how can it help improving application performance? 4. What is [Bogus](https://github.com/bchavez/Bogus) and why is it interesting for C# developers? 5. What is [*Open Telemetry*](https://opentelemetry.io/) and why is it useful for .NET developers? 1. General 1. What is [*Markdown*](https://daringfireball.net/projects/markdown/), why is it useful, and what cool things can you do with it? 2. Developing in the [*GitHub Flow*](https://guides.github.com/introduction/flow/) 3. Cool things you can do with [*mitmproxy*](https://mitmproxy.org/) 4. Cool things you can do with [*Postman*](https://www.getpostman.com/) 7. What every developer should know about the [*Datenschutzgrundverordnung*](https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung) 8. [*Subreddits*](https://www.reddit.com/reddits/) that every developer should follow 9. What is [*Chocolatey*](https://chocolatey.org/) and how can developers make good use of it? 10. What is [*CEFSharp*](http://cefsharp.github.io/) and what scenarios does it enable for .NET applications? 1. Why should I read... (**no spoilers!**) 1. [*Daemon* trilogy by Daniel Suarez](https://www.amazon.de/Daemon-Daniel-Suarez/dp/0451228731/ref=sr_1_2?ie=UTF8&qid=1500878463&sr=8-2&keywords=daniel+suarez+daemon) 2. [*Armada* by Ernest Cline](https://www.amazon.de/Armada-Ernest-Cline/dp/0099586746/ref=sr_1_2?ie=UTF8&qid=1500878895&sr=8-2&keywords=armada+ernest+cline) 3. [*Off to be the Wizard* by Scott Meyer](https://www.amazon.de/Off-Wizard-Magic-2-0-Band/dp/1612184715/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1500879290&sr=1-1&keywords=off+to+be+the+wizard) 4. [*TED Talks* by Chris Anderson](https://www.amazon.de/TED-Talks-official-public-speaking/dp/1472244443/ref=sr_1_2?ie=UTF8&qid=1500879361&sr=8-2&keywords=ted+talks) 5. [*Ready Player One* by Ernest Cline](https://www.amazon.de/Ready-Player-One-Ernest-Cline/dp/0099560437/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1500879569&sr=1-1&keywords=ready+player+one) 6. [*Elon Musk* by Ashlee Vance](https://www.amazon.de/Elon-Musk-SpaceX-Fantastic-Future/dp/0062469673/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1500879616&sr=1-1&keywords=elon+musk) 7. [*The Martian* by Andy Weir](https://www.amazon.de/Martian-Movie-Tie-EXPORT-Novel/dp/1101905557/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1500879660&sr=1-1&keywords=the+martian) 8. [*Artemis* by Andy Weir](https://www.amazon.de/Artemis-Novel-Andy-Weir/dp/052557266X/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1536249124&sr=1-1) 9. [*Zero Day* by Mark Russinovich](https://www.amazon.de/Zero-Day-Novel-Mark-Russinovich/dp/1250007305/ref=sr_1_3?s=books-intl-de&ie=UTF8&qid=1500879702&sr=1-3&keywords=russinovich) 10. [*Ghost in the Wires* by Kevin Mitnick](https://www.amazon.de/Ghost-Wires-Adventures-Worlds-Wanted/dp/0316212180/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1500879747&sr=1-1&keywords=ghost+in+the+wire) 11. [*Nexus* by Ramez Naam](https://www.amazon.de/Nexus-Arc-Book-1/dp/0857665502/ref=sr_1_2?s=books-intl-de&ie=UTF8&qid=1500879826&sr=1-2&keywords=nexus) 12. [*Homo Deus* by Yuval Noah Harari](https://www.amazon.de/Homo-Deus-Brief-History-Tomorrow/dp/1784703931/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1502971002&sr=8-2) 13. [*The Black Swan* by Nassim Nicholas Taleb](https://www.amazon.de/Black-Swan-Impact-Highly-Improbable-ebook/dp/B002RI99IM/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1504354087&sr=1-1&keywords=the+black+swan) 14. [*The Code Book: Science of Secrecy from Ancient Egypt to Quantum Cryptography* by Simon Singh](https://www.amazon.de/Code-Book-Science-Secrecy-Cryptography/dp/0385495323/ref=tmm_pap_swatch_0?_encoding=UTF8&qid=1505031255&sr=1-3) 15. [*The Thrilling Adventures of Lovelace and Babbage* by Sydney Padua](https://www.amazon.de/Thrilling-Adventures-Lovelace-Babbage-Computer/dp/0141981539/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=8YK9ZWZ5HZ919Q87S5TR) 16. [*Lock In* by John Scalzi](https://www.amazon.de/Lock-Novel-Future-John-Scalzi/dp/076538132X/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1536249077&sr=1-1) 17. [*Quality Land* by Marc-Uwe Kling](https://www.amazon.de/QualityLand-Roman-dunkle-Marc-Uwe-Kling/dp/3550050151/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1536249190&sr=8-1) 18. [*Life 3.0* by Max Tegmark](https://www.amazon.de/Life-3-0-Being-Artificial-Intelligence/dp/0141981806/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1536249228&sr=1-1) 19. [*Bobiverse* Trilogy by Dennis E. Taylor](https://www.amazon.de/We-Are-Legion-Bob-Bobiverse/dp/1680680587/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1536249269&sr=1-1) 20. [*Singularity Trap* by Dennis E. Taylor](https://www.amazon.de/Singularity-Trap-English-Dennis-Taylor-ebook/dp/B07FBRRL2Z/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=1536251142&sr=1-1) 21. [*Murderbot Diaries* by Martha Wells](https://www.goodreads.com/series/191900-the-murderbot-diaries) 22. [*First Man* by James R. Hansen](https://www.goodreads.com/book/show/205589.First_Man) 23. [*NSA - Nationales Sicherheits-Amt* by Andreas Eschbach](https://de.wikipedia.org/wiki/NSA_%E2%80%93_Nationales_Sicherheits-Amt) 25. [*Permanent Record*](https://www.amazon.de/Permanent-Record-Edward-Snowden/dp/152903566X) 26. [*We Are the Nerds*](https://www.amazon.com/Are-Nerds-Tumultuous-Internets-Laboratory-ebook/dp/B079L5FTJD) 27. [*Project Hail Mary*](https://www.amazon.de/Project-Hail-Mary-Andy-Weir/dp/0593135202) 28. [*Team Topologies*](https://www.amazon.de/Team-Topologies-Organizing-Business-Technology/dp/1942788819) 29. [*Brave New Words: How AI Will Revolutionize Education (and Why That’s a Good Thing)* by Salman Khan](https://www.amazon.com/Brave-New-Words-Revolutionize-Education/dp/0593656954) 30. [*The Android's Dream* by John Scalzi](https://www.amazon.de/-/en/John-Scalzi/dp/1250174759) 31. [*The Billionaire Who Wasn't: How Chuck Feeney Made and Gave Away a Fortune*](https://www.amazon.de/Billionaire-Who-Wasnt-Secretly-Fortune/dp/1610393341/) Suggestions for finding other topics: * Think about a technology that you like and use frequently? * Have you learned something interesting during an internship? * What technology is currently all over the news? ## Hausübungen Hausübungen **müssen** gemacht werden. Sie werden nicht benotet, aber es wird erwartet, dass sie gemacht werden. Sie sind ein wichtiger Bestandteil des Lernprozesses. Wenn mehrere Hausübungen nicht gemacht wurde, führt das zu einer verpflichtenden, mündlichen Prüfung. ## Recordings ### JS/TS Recap (Minesweeper) <iframe width="560" height="315" src="https://www.youtube.com/embed/n2oB_d82iT4?si=2rw1IB3YvRFHzKRA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ### Introduction to Angular 18 <iframe width="560" height="315" src="https://www.youtube.com/embed/7k50uz31xys?si=GipxsbW6WcQGnuE1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ### Signals and Services in Angular <iframe width="560" height="315" src="https://www.youtube.com/embed/hknEfs-h-mE?si=cIfQts26_yJ28v7I" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ### Fundamentals of using Web APIs <iframe width="560" height="315" src="https://www.youtube.com/embed/YmwZT_zpMiI?si=5AQ5DEfzFOHfQSiT" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ### Building an AI chatbot with Angular <iframe width="560" height="315" src="https://www.youtube.com/embed/W9G50sUhJMs?si=LCGCTUkQ65C6fep9" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> ## Angular Notes ### Getting Started * Installing Angular CLI and creating a project ```bash npm install --global @angular/cli ng new --help ng new --directory <folder-name> --routing --skip-tests --standalone --strict --style css --view-encapsulation ShadowDom --ssr false <project-name> ``` * Required extensions for VSCode * [Angular Essentials (Version 18)](https://marketplace.visualstudio.com/items?itemName=johnpapa.angular-essentials) * [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) * Adding [Angular Bootstrap](https://ng-bootstrap.github.io/#/home) * Add [_component input binding_](https://justangular.com/blog/bind-route-info-to-component-inputs-new-router-feature) to _src/app/app.config.ts_: ```ts export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes, withComponentInputBinding()) // ^ // | // +--- Add this ] }; ``` * Creating a component: `ng generate component <component-name>`