|
@@ -106,7 +106,7 @@ Liste (Netzwerke, Sicherheit) ansehen.
|
|
- Adjazenzmatrix
|
|
- Adjazenzmatrix
|
|
- Adjazenzliste
|
|
- Adjazenzliste
|
|
- Traversierung: Breitensuche, Tiefensuche
|
|
- Traversierung: Breitensuche, Tiefensuche
|
|
-- [Sonstiges](#even-more-knowledge)
|
|
|
|
|
|
+- [Noch mehr](#even-more-knowledge)
|
|
- [Rekursion](#recursion)
|
|
- [Rekursion](#recursion)
|
|
- [Dynamische Programmierung](#dynamic-programming)
|
|
- [Dynamische Programmierung](#dynamic-programming)
|
|
- [Object-orientierte Programmierung](#object-oriented-programming)
|
|
- [Object-orientierte Programmierung](#object-oriented-programming)
|
|
@@ -868,7 +868,7 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
|
|
- Selection sort and insertion sort are both O(n^2) average and worst case
|
|
- Selection sort and insertion sort are both O(n^2) average and worst case
|
|
- For heapsort, see Heap data structure above.
|
|
- For heapsort, see Heap data structure above.
|
|
|
|
|
|
-- [ ] Not required, but I recommended them:
|
|
|
|
|
|
+- [ ] Nicht vorgeschrieben, aber würde ich empfehlen:
|
|
- [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
|
|
- [ ] [Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
|
|
- [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
|
|
- [ ] [1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
|
|
- [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
|
|
- [ ] [2. Key Indexed Counting](https://www.coursera.org/learn/algorithms-part2/lecture/2pi1Z/key-indexed-counting)
|
|
@@ -882,8 +882,8 @@ Schreib Code auf einer Tafel oder auf Papier, aber nicht am Computer. Teste mit
|
|
- [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- [ ] [Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3_s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
|
|
- [ ] [Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
|
|
|
|
|
|
-As a summary, here is a visual representation of [15 sorting algorithms](https://www.youtube.com/watch?v=kPRA0W1kECg).
|
|
|
|
-If you need more detail on this subject, see "Sorting" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects)
|
|
|
|
|
|
+Als Zusammenfassung hier ist eine grafische Darstellung von [15 Sortieralgorithmen](https://www.youtube.com/watch?v=kPRA0W1kECg).
|
|
|
|
+Falls du noch mehr zu dem Thema wissen willst, schau dir "Sortierung" unter [Weitere Details für ausgewählte Themen](#additional-detail-on-some-subjects) an
|
|
|
|
|
|
</details>
|
|
</details>
|
|
|
|
|
|
@@ -892,17 +892,17 @@ If you need more detail on this subject, see "Sorting" section in [Additional De
|
|
<details>
|
|
<details>
|
|
<summary>Graphen</summary>
|
|
<summary>Graphen</summary>
|
|
|
|
|
|
-Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.
|
|
|
|
|
|
+Graphen können genutzt werden um damit viele verschiedene Probleme in der Informatik darzustellen. Deswegen ist dieser Abschnitt so lang wie Bäume und Sortierung.
|
|
|
|
|
|
- Bemerkungen:
|
|
- Bemerkungen:
|
|
- - There are 4 basic ways to represent a graph in memory:
|
|
|
|
- - objects and pointers
|
|
|
|
- - adjacency matrix
|
|
|
|
- - adjacency list
|
|
|
|
|
|
+ - Es gibt 4 verschiedene Arten einen Graph im Speicher zu repräsentieren:
|
|
|
|
+ - Objekte und Pointer
|
|
|
|
+ - Adjazenzmatrix
|
|
|
|
+ - Adjazenzliste
|
|
- adjacency map
|
|
- adjacency map
|
|
- - Familiarize yourself with each representation and its pros & cons
|
|
|
|
- - BFS and DFS - know their computational complexity, their tradeoffs, and how to implement them in real code
|
|
|
|
- - When asked a question, look for a graph-based solution first, then move on if none.
|
|
|
|
|
|
+ - bekanntmachen mit jeder dieser Repräsentationen und ihrer Vor- und Nachteile
|
|
|
|
+ - BFS und DFS - kenne Komplexität, ihre Kompromisse, und wie man sie mit echten Code umsetzt
|
|
|
|
+ - Wenn eine Frage gestellt wird, suche zuerst nach einer graphbasierten Lösung, dann geh weiter wenn es keine gibt.
|
|
|
|
|
|
- [ ] MIT(videos):
|
|
- [ ] MIT(videos):
|
|
- [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
|
|
- [ ] [Breadth-First Search](https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13)
|
|
@@ -931,59 +931,59 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- [ ] [Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
|
|
- [ ] [Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
|
|
|
|
|
|
-- Full Coursera Course:
|
|
|
|
|
|
+- Kompletter Coursera Kurs:
|
|
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
|
|
- [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
|
|
|
|
|
|
-- I'll implement:
|
|
|
|
- - [ ] DFS with adjacency list (recursive)
|
|
|
|
- - [ ] DFS with adjacency list (iterative with stack)
|
|
|
|
- - [ ] DFS with adjacency matrix (recursive)
|
|
|
|
- - [ ] DFS with adjacency matrix (iterative with stack)
|
|
|
|
- - [ ] BFS with adjacency list
|
|
|
|
- - [ ] BFS with adjacency matrix
|
|
|
|
- - [ ] single-source shortest path (Dijkstra)
|
|
|
|
- - [ ] minimum spanning tree
|
|
|
|
- - DFS-based algorithms (see Aduni videos above):
|
|
|
|
- - [ ] check for cycle (needed for topological sort, since we'll check for cycle before starting)
|
|
|
|
- - [ ] topological sort
|
|
|
|
- - [ ] count connected components in a graph
|
|
|
|
- - [ ] list strongly connected components
|
|
|
|
- - [ ] check for bipartite graph
|
|
|
|
|
|
+- werde ich implementieren:
|
|
|
|
+ - [ ] DFS mit Adjazenzliste (rekursiv)
|
|
|
|
+ - [ ] DFS mit Adjazenzliste (iterativ mit Stack)
|
|
|
|
+ - [ ] DFS mit Adjazenzmatrix (rekursiv)
|
|
|
|
+ - [ ] DFS mit Adjazenzmatrix(iterativ mit Stack)
|
|
|
|
+ - [ ] BFS mit Adjazenzliste
|
|
|
|
+ - [ ] BFS mit Adjazenzmatrix
|
|
|
|
+ - [ ] Kürzester Pfad (Dijkstra)
|
|
|
|
+ - [ ] minimaler Spannbaum
|
|
|
|
+ - DFS-basierte Algorithmen (siehe Aduni Videos oben):
|
|
|
|
+ - [ ] auf Zyklus prüfen (für Topologische Sortierung benötigt, wir prüfen auf Zyklen bevor wir anfangen)
|
|
|
|
+ - [ ] Topologische Sortierung
|
|
|
|
+ - [ ] zähle Zusammenhangskomponenten in einen Graph
|
|
|
|
+ - [ ] liste starke Zusammenhangskomponenten auf
|
|
|
|
+ - [ ] prüfe ob es ein bipartiter Graph ist
|
|
|
|
|
|
</details>
|
|
</details>
|
|
|
|
|
|
-## Even More Knowledge
|
|
|
|
|
|
+## Noch mehr
|
|
|
|
|
|
<details>
|
|
<details>
|
|
-<summary>Even More Knowledge</summary>
|
|
|
|
|
|
+<summary>Noch mehr</summary>
|
|
|
|
|
|
-- ### Recursion
|
|
|
|
- - [ ] Stanford lectures on recursion & backtracking:
|
|
|
|
|
|
+- ### Rekursion
|
|
|
|
+ - [ ] Stanford Vorlesung über Recursion und Backtracking:
|
|
- [ ] [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
|
|
- [ ] [Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
|
|
- [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
|
|
- [ ] [Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
|
|
- [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
|
|
- [ ] [Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
|
|
- [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
|
|
- [ ] [Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
|
|
- - when it is appropriate to use it
|
|
|
|
- - how is tail recursion better than not?
|
|
|
|
|
|
+ - wann sollte man es benutzen
|
|
|
|
+ - Wann ist Endrekursion gut?
|
|
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
|
|
- [ ] [What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
|
|
- [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
|
|
- [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc)
|
|
|
|
|
|
-- ### Dynamic Programming
|
|
|
|
- - You probably won't see any dynamic programming problems in your interview, but it's worth being able to recognize a problem as being a candidate for dynamic programming.
|
|
|
|
- - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky.
|
|
|
|
- - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved.
|
|
|
|
|
|
+- ### Dynamische Programming
|
|
|
|
+ - Wahrscheinlich wirst du im Vorstellungsgespräch nichts mit dynamischer Programmierung zu tun haben, aber es ist wert zu erkennen wann ein Problem für dynaische Programmierung geeignet ist.
|
|
|
|
+ - Dieses Thema kann ziemlich schwer sein. Jedes DP Problem muss als Rekursion dargestellt werden, und darauf zu kommen kann schwer sein.
|
|
|
|
+ - Ich schlage vor, dass man sich viele DP Probleme ansieht bis man ein gutes Verständnis vom zugrundeliegenden Muster hat.
|
|
- [ ] Videos:
|
|
- [ ] Videos:
|
|
- - the Skiena videos can be hard to follow since he sometimes uses the whiteboard, which is too small to see
|
|
|
|
|
|
+ - die Skiena Videos kann man manchmal schwer folgen, weil er manchmal auf einer Tafel schreibt was zu klein zum Lesen ist
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 19 - Introduction to Dynamic Programming (video)](https://youtu.be/Qc2ieXRgR0k?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=1718)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 20 - Edit Distance (video)](https://youtu.be/IsmMhMdyeGY?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=2749)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 21 - Dynamic Programming Examples (video)](https://youtu.be/o0V9eYF4UI8?list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&t=406)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
|
|
- [ ] [Skiena: CSE373 2012 - Lecture 22 - Applications of Dynamic Programming (video)](https://www.youtube.com/watch?v=dRbMC1Ltl3A&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=22)
|
|
- - [ ] [Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
|
|
|
|
|
|
+ - [ ] [Simonson: Dynamic Programming 0 (fängt an bei 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
|
|
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
|
|
- [ ] [Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQ_SOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
|
|
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
|
|
- [ ] [Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
|
|
- - [ ] List of individual DP problems (each is short):
|
|
|
|
|
|
+ - [ ] Liste einzelnen DP Problemen (jedes Problem ist klein):
|
|
[Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
|
|
[Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
|
|
- - [ ] Yale Lecture notes:
|
|
|
|
|
|
+ - [ ] Yale Vorlesungsnotizen:
|
|
- [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
|
|
- [ ] [Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
|
|
- [ ] Coursera:
|
|
- [ ] Coursera:
|
|
- [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
|
|
- [ ] [The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
|
|
@@ -994,71 +994,71 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
|
|
- [ ] [Global pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/UZ7o6/global-pairwise-sequence-alignment)
|
|
- [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
|
|
- [ ] [Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
|
|
|
|
|
|
-- ### Object-Oriented Programming
|
|
|
|
|
|
+- ### Objekt-Orientierte Programmierung
|
|
- [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
|
|
- [ ] [Optional: UML 2.0 Series (video)](https://www.youtube.com/watch?v=OkC7HKtiZC0&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc)
|
|
- [ ] Object-Oriented Software Engineering: Software Dev Using UML and Java (21 videos):
|
|
- [ ] Object-Oriented Software Engineering: Software Dev Using UML and Java (21 videos):
|
|
- - Can skip this if you have a great grasp of OO and OO design practices.
|
|
|
|
|
|
+ - kann man überspringen wenn man gutes Wissen über OO und OO Design Patterns hat
|
|
- [OOSE: Software Dev Using UML and Java (video)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [OOSE: Software Dev Using UML and Java (video)](https://www.youtube.com/playlist?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [ ] SOLID OOP Prinzipien:
|
|
- [ ] SOLID OOP Prinzipien:
|
|
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
|
|
- [ ] [Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
|
|
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
|
- [ ] [SOLID Principles (video)](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A)
|
|
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
|
|
- [ ] S - [Single Responsibility Principle](http://www.oodesign.com/single-responsibility-principle.html) | [Single responsibility to each Object](http://www.javacodegeeks.com/2011/11/solid-single-responsibility-principle.html)
|
|
- - [more flavor](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
|
|
|
|
|
|
+ - [mehr dazu](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk)
|
|
- [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
|
|
- [ ] O - [Open/Closed Principal](http://www.oodesign.com/open-close-principle.html) | [On production level Objects are ready for extension but not for modification](https://en.wikipedia.org/wiki/Open/closed_principle)
|
|
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
|
|
|
|
|
|
+ - [mehr dazu](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
|
|
- [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
|
|
- [ ] L - [Liskov Substitution Principal](http://www.oodesign.com/liskov-s-substitution-principle.html) | [Base Class and Derived class follow ‘IS A’ principal](http://stackoverflow.com/questions/56860/what-is-the-liskov-substitution-principle)
|
|
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
|
|
|
|
|
|
+ - [mehr dazu](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
|
|
- [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
|
|
- [ ] I - [Interface segregation principle](http://www.oodesign.com/interface-segregation-principle.html) | clients should not be forced to implement interfaces they don't use
|
|
- [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
|
|
- [Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
|
|
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
|
|
|
|
|
|
+ - [mehr dazu](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
|
|
- [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
|
|
- [ ] D -[Dependency Inversion principle](http://www.oodesign.com/dependency-inversion-principle.html) | Reduce the dependency In composition of objects.
|
|
- [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
|
|
- [Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
|
|
- - [more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
|
|
|
|
|
|
+ - [mehr dazu](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
|
|
|
|
|
|
-- ### Design patterns
|
|
|
|
|
|
+- ### Design Patterns (Entwurfsmuster)
|
|
- [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
- [ ] [Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvz_LVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
|
|
- - [ ] Learn these patterns:
|
|
|
|
- - [ ] strategy
|
|
|
|
- - [ ] singleton
|
|
|
|
- - [ ] adapter
|
|
|
|
- - [ ] prototype
|
|
|
|
- - [ ] decorator
|
|
|
|
- - [ ] visitor
|
|
|
|
- - [ ] factory, abstract factory
|
|
|
|
- - [ ] facade
|
|
|
|
- - [ ] observer
|
|
|
|
- - [ ] proxy
|
|
|
|
- - [ ] delegate
|
|
|
|
- - [ ] command
|
|
|
|
- - [ ] state
|
|
|
|
- - [ ] memento
|
|
|
|
- - [ ] iterator
|
|
|
|
- - [ ] composite
|
|
|
|
- - [ ] flyweight
|
|
|
|
|
|
+ - [ ] Learn diese Patterns:
|
|
|
|
+ - [ ] Strategy
|
|
|
|
+ - [ ] Singleton
|
|
|
|
+ - [ ] Adapter
|
|
|
|
+ - [ ] Prototype
|
|
|
|
+ - [ ] Decorator
|
|
|
|
+ - [ ] Visitor (Besucher)
|
|
|
|
+ - [ ] Factory (Fabrik), abstract factory (abstrakte Fabrik)
|
|
|
|
+ - [ ] Facade
|
|
|
|
+ - [ ] Observer (Beobachter)
|
|
|
|
+ - [ ] Proxy
|
|
|
|
+ - [ ] Delegate
|
|
|
|
+ - [ ] Command
|
|
|
|
+ - [ ] State
|
|
|
|
+ - [ ] Memento
|
|
|
|
+ - [ ] Iterator
|
|
|
|
+ - [ ] Composite
|
|
|
|
+ - [ ] Flyweight (Fliegengewicht)
|
|
- [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
|
|
- [ ] [Chapter 6 (Part 1) - Patterns (video)](https://youtu.be/LAP2A80Ajrg?list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO&t=3344)
|
|
- [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [ ] [Chapter 6 (Part 2) - Abstraction-Occurrence, General Hierarchy, Player-Role, Singleton, Observer, Delegation (video)](https://www.youtube.com/watch?v=U8-PGsjvZc4&index=12&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [ ] [Chapter 6 (Part 3) - Adapter, Facade, Immutable, Read-Only Interface, Proxy (video)](https://www.youtube.com/watch?v=7sduBHuex4c&index=13&list=PLJ9pm_Rc9HesnkwKlal_buSIHA-jTZMpO)
|
|
- [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
|
|
- [ ] [Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
|
|
- [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
|
- [ ] [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
|
|
- - I know the canonical book is "Design Patterns: Elements of Reusable Object-Oriented Software", but Head First is great for beginners to OO.
|
|
|
|
|
|
+ - Ich weiß das anerkannte Buch ist "Design Patterns: Elements of Reusable Object-Oriented Software", aber Head First ist großartig wenn man mit OO einsteigt.
|
|
- [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
|
- [ ] [Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
|
|
- [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
|
|
- [ ] [Design patterns for humans](https://github.com/kamranahmedse/design-patterns-for-humans#structural-design-patterns)
|
|
|
|
|
|
|
|
|
|
-- ### Combinatorics (n choose k) & Probability
|
|
|
|
|
|
+- ### Kombinatorik (n über k) und Wahrscheinlichkeit
|
|
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
|
- [ ] [Math Skills: How to find Factorial, Permutation and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
|
|
- [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
|
|
- [ ] [Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
|
|
- [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
|
|
- [ ] [Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
|
|
- [ ] Khan Academy:
|
|
- [ ] Khan Academy:
|
|
- - Course layout:
|
|
|
|
|
|
+ - Kursstruktur:
|
|
- [ ] [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
|
|
- [ ] [Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
|
|
- - Just the videos - 41 (each are simple and each are short):
|
|
|
|
|
|
+ - Nur die Videos - 41 (jedes ist kurz und leicht zu verstehen):
|
|
- [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
|
|
- [ ] [Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
|
|
|
|
|
|
-- ### NP, NP-Complete and Approximation Algorithms
|
|
|
|
- - Know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem,
|
|
|
|
- and be able to recognize them when an interviewer asks you them in disguise.
|
|
|
|
- - Know what NP-complete means.
|
|
|
|
|
|
+- ### NP, NP-vollständig und Heuristiken
|
|
|
|
+ - Kenne die bekanntesten NP-vollständigen Probleme, wie z.B. Traveling Salesman und das Rucksackproblem,
|
|
|
|
+ und sei in der Lage die zu erkennen wenn ein Interviewer heimlich danach frägt.
|
|
|
|
+ - Wissen was NP-vollständig bedeutet.
|
|
- [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
|
|
- [ ] [Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=23)
|
|
- [ ] Simonson:
|
|
- [ ] Simonson:
|
|
- [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
|
|
- [ ] [Greedy Algs. II & Intro to NP Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
|
|
@@ -1072,9 +1072,9 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
|
|
- [ ] [Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
|
|
- [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
|
|
- [ ] [Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
|
|
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- [ ] [Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
|
|
- - Peter Norvig discusses near-optimal solutions to traveling salesman problem:
|
|
|
|
|
|
+ - Peter Norvig beschreibt annähernd optimale Lösungen für das Traveling Salesman Problem:
|
|
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
|
|
- [Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
|
|
- - Pages 1048 - 1140 in CLRS if you have it.
|
|
|
|
|
|
+ - Seite 1048 - 1140 in CLRS falls man es besitzt.
|
|
|
|
|
|
- ### Caches
|
|
- ### Caches
|
|
- [ ] LRU cache:
|
|
- [ ] LRU cache:
|
|
@@ -1085,49 +1085,49 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
|
|
- [ ] [MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYF_fAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
|
|
- [ ] [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
|
- [ ] [MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
|
|
|
|
|
|
-- ### Processes and Threads
|
|
|
|
|
|
+- ### Prozesse und Threads
|
|
- [ ] Computer Science 162 - Operating Systems (25 videos):
|
|
- [ ] Computer Science 162 - Operating Systems (25 videos):
|
|
- - for processes and threads see videos 1-11
|
|
|
|
|
|
+ - für Prozesse und Threads siehe Videos 1-11
|
|
- [Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
|
|
- [Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iBDyz-ba4yDskqMDY6A1w_c)
|
|
- [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
|
|
- [What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
|
|
- - Covers:
|
|
|
|
- - Processes, Threads, Concurrency issues
|
|
|
|
- - difference between processes and threads
|
|
|
|
- - processes
|
|
|
|
- - threads
|
|
|
|
- - locks
|
|
|
|
- - mutexes
|
|
|
|
- - semaphores
|
|
|
|
- - monitors
|
|
|
|
- - how they work
|
|
|
|
- - deadlock
|
|
|
|
- - livelock
|
|
|
|
- - CPU activity, interrupts, context switching
|
|
|
|
- - Modern concurrency constructs with multicore processors
|
|
|
|
|
|
+ - behandelt:
|
|
|
|
+ - Prozesse, Threads, Concurrency issues (Probleme von Parallelität)
|
|
|
|
+ - Unterschied zwischen Prozessen und Threads
|
|
|
|
+ - Prozesse
|
|
|
|
+ - Threads
|
|
|
|
+ - Locks
|
|
|
|
+ - Mutexe
|
|
|
|
+ - Semaphoren
|
|
|
|
+ - Monitore
|
|
|
|
+ - wie sie funtionieren
|
|
|
|
+ - Deadlock
|
|
|
|
+ - Livelock
|
|
|
|
+ - CPU Äktivität, Interrupts, Kontextwechsel
|
|
|
|
+ - Moderne Parallelität mit Multicore Prozessoren
|
|
- [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
|
|
- [Paging, segmentation and virtual memory (video)](https://www.youtube.com/watch?v=LKe7xK0bF7o&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=2)
|
|
- [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
|
|
- [Interrupts (video)](https://www.youtube.com/watch?v=uFKi2-J-6II&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8&index=3)
|
|
- [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
|
|
- [Scheduling (video)](https://www.youtube.com/watch?v=-Gu5mYdKbu4&index=4&list=PLCiOXwirraUCBE9i_ukL8_Kfg6XNv7Se8)
|
|
- - Process resource needs (memory: code, static storage, stack, heap, and also file descriptors, i/o)
|
|
|
|
- - Thread resource needs (shares above (minus stack) with other threads in the same process but each has its own pc, stack counter, registers, and stack)
|
|
|
|
- - Forking is really copy on write (read-only) until the new process writes to memory, then it does a full copy.
|
|
|
|
- - Context switching
|
|
|
|
- - How context switching is initiated by the operating system and underlying hardware
|
|
|
|
|
|
+ - Prozess-Ressourcenverwaltung (Speicher: Code, statischer Speicher, Stack, Heap, und auch Datei-Handle, I/O)
|
|
|
|
+ - Thread-Ressourcenverwaltung (teilt sich das obere (minus Stack) mit anderen Threads in selben Prozess aber jeder mit einzelnen Befehlszähler, Stackzähler, Registern, und Stack)
|
|
|
|
+ - Forking ist einfach Copy on Write (nur lesend) bis der neue Prozess in den Speicher schreibt, dann wird eine komplette Kopie erstellt.
|
|
|
|
+ - Kontextwechsel
|
|
|
|
+ - Wie wird Kontextwechsel vom Betriebssystem und der zugrundeliegenden Hardware gehandhabt
|
|
- [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
|
|
- [ ] [threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
|
|
- - [ ] concurrency in Python (videos):
|
|
|
|
|
|
+ - [ ] Parallelität in Python (Videos):
|
|
- [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
|
|
- [ ] [Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6_p8g4F2oy1)
|
|
- [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
|
|
- [ ] [Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
|
|
- [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
|
|
- [ ] [Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
|
|
- - [reference](http://www.dabeaz.com/GIL)
|
|
|
|
|
|
+ - [Referenz](http://www.dabeaz.com/GIL)
|
|
- [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
|
|
- [ ] [David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
|
|
- [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
|
|
- [ ] [Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
|
|
- [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
|
|
- [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
|
|
|
|
|
|
-- ### Testing
|
|
|
|
- - To cover:
|
|
|
|
- - how unit testing works
|
|
|
|
- - what are mock objects
|
|
|
|
- - what is integration testing
|
|
|
|
- - what is dependency injection
|
|
|
|
|
|
+- ### Testen
|
|
|
|
+ - zu behandeln:
|
|
|
|
+ - wie Unit Tests funktionieren
|
|
|
|
+ - was sind Mockobjekte
|
|
|
|
+ - was ist ein Integration Test
|
|
|
|
+ - Was ist dependency injection
|
|
- [ ] [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
|
|
- [ ] [Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36_u5U)
|
|
- [ ] [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
|
|
- [ ] [Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkT_HV9DVU)
|
|
- [ ] [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
|
|
- [ ] [Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
|
|
@@ -1142,10 +1142,10 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
|
|
- [ ] [How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
|
|
|
|
|
|
- ### Scheduling
|
|
- ### Scheduling
|
|
- - in an OS, how it works
|
|
|
|
- - can be gleaned from Operating System videos
|
|
|
|
|
|
+ - in einen Betriebssystem, wie funktioniert es
|
|
|
|
+ - kann von Betriebssystem Videos gelernt werden
|
|
|
|
|
|
-- ### String searching & manipulations
|
|
|
|
|
|
+- ### Stringsuche und -manipulation
|
|
- [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
|
|
- [ ] [Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
|
|
- [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
|
|
- [ ] [Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
|
|
- [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
|
|
- [ ] [1. Introduction to Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/n3ZpG/introduction-to-substring-search)
|
|
@@ -1161,12 +1161,12 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
|
|
- Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits
|
|
to track the path.
|
|
to track the path.
|
|
- I read through code, but will not implement.
|
|
- I read through code, but will not implement.
|
|
- - [ ] [Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
|
|
|
|
|
|
+ - [ ] [Sedgewick - Tries (3 Videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
|
|
- [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
|
|
- [ ] [1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
|
|
- [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
|
|
- [ ] [2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
|
|
- [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
|
|
- [ ] [3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
|
|
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
|
|
- [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
|
|
- - [ ] Short course videos:
|
|
|
|
|
|
+ - [ ] Kurze Kursvideos:
|
|
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
|
|
- [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
|
|
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
|
|
- [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
|
|
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
|
|
- [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
|
|
@@ -1244,7 +1244,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
|
|
- [ ] [How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
|
|
- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
|
|
- [ ] [Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
|
|
- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
|
|
- [ ] [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem/)
|
|
-- [ ] Consensus Algorithms:
|
|
|
|
|
|
+- [ ] Consensus Algorithmen:
|
|
- [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
|
|
- [ ] Paxos - [Paxos Agreement - Computerphile (video)](https://www.youtube.com/watch?v=s8JqcZtvnsM)
|
|
- [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
|
|
- [ ] Raft - [An Introduction to the Raft Distributed Consensus Algorithm (video)](https://www.youtube.com/watch?v=P9Ydif5_qvE)
|
|
- [ ] [Easy-to-read paper](https://raft.github.io/)
|
|
- [ ] [Easy-to-read paper](https://raft.github.io/)
|
|
@@ -1252,7 +1252,7 @@ Graphs can be used to represent many problems in computer science, so this secti
|
|
- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
|
|
- [ ] [Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
|
|
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
|
|
- [ ] [NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
|
|
- [ ] Skalierbarkeit:
|
|
- [ ] Skalierbarkeit:
|
|
- - You don't need all of these. Just pick a few that interest you.
|
|
|
|
|
|
+ - Das braucht man nicht alles. Sucht euch einfach die paar Themen raus die euch interessieren.
|
|
- [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
|
|
- [ ] [Great overview (video)](https://www.youtube.com/watch?v=-W9F__D3oY4)
|
|
- [ ] Kurzreihen:
|
|
- [ ] Kurzreihen:
|
|
- [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
|
|
- [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
|
|
@@ -1916,7 +1916,7 @@ software engineer, and to be aware of certain technologies and algorithms, so yo
|
|
- [ ] [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
|
|
- [ ] [Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
|
|
- [ ] [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
|
|
- [ ] [Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
|
|
|
|
|
|
-- [ ] **More Dynamic Programming** (videos)
|
|
|
|
|
|
+- [ ] **Mehr Dynamische Programmierung** (Videos)
|
|
- [ ] [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
|
|
- [ ] [6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=OQ5jsbhAv_M&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=19)
|
|
- [ ] [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
|
|
- [ ] [6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=ENyox7kNKeY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=20)
|
|
- [ ] [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
|
|
- [ ] [6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=ocZMDMZwhCY&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=21)
|
|
@@ -1981,7 +1981,7 @@ Lehn dich zurück und genieße. "Netflix and skill" :P
|
|
<details>
|
|
<details>
|
|
<summary>Videoreihen</summary>
|
|
<summary>Videoreihen</summary>
|
|
|
|
|
|
-- [ ] [List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
|
|
|
|
|
|
+- [ ] [Liste einzelnen Dynamische Programmierung Probleme (jedes ist kurz)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPP_jHHDx_os9ItYXr)
|
|
|
|
|
|
- [ ] [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
|
|
- [ ] [x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
|
|
|
|
|
|
@@ -1996,7 +1996,7 @@ Lehn dich zurück und genieße. "Netflix and skill" :P
|
|
- [ ] [Discrete Mathematics Part 1 von Sarada Herke (5 videos)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
|
|
- [ ] [Discrete Mathematics Part 1 von Sarada Herke (5 videos)](https://www.youtube.com/playlist?list=PLGxuz-nmYlQPOc4w1Kp2MZrdqOOm4Jxeo)
|
|
|
|
|
|
- [ ] CSE373 - Analysis of Algorithms (25 videos)
|
|
- [ ] CSE373 - Analysis of Algorithms (25 videos)
|
|
- - [Skiena lectures from Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
|
|
|
|
|
|
+ - [Skiena Vorlesungen vom Algorithm Design Manual](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
|
|
|
|
|
|
- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
|
|
- [ ] [UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd)
|
|
|
|
|
|
@@ -2035,7 +2035,7 @@ Lehn dich zurück und genieße. "Netflix and skill" :P
|
|
- [ ] [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/view_play_list?p=9D558D49CA734A02)
|
|
- [ ] [Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/view_play_list?p=9D558D49CA734A02)
|
|
|
|
|
|
- [ ] [Introduction to Cryptography von Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
|
|
- [ ] [Introduction to Cryptography von Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
|
|
- - [Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/)
|
|
|
|
|
|
+ - [KurswWebseite mit Folien und Problemstellungen](http://www.crypto-textbook.com/)
|
|
|
|
|
|
- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
|
|
- [ ] [Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV)
|
|
|
|
|
|
@@ -2043,10 +2043,10 @@ Lehn dich zurück und genieße. "Netflix and skill" :P
|
|
|
|
|
|
</details>
|
|
</details>
|
|
|
|
|
|
-## Computer Science Courses
|
|
|
|
|
|
+## Informatikkurse
|
|
|
|
|
|
-- [Directory of Online CS Courses](https://github.com/open-source-society/computer-science)
|
|
|
|
-- [Directory of CS Courses (many with online lectures)](https://github.com/prakhar1989/awesome-courses)
|
|
|
|
|
|
+- [Liste von Online Informatkkursen](https://github.com/open-source-society/computer-science)
|
|
|
|
+- [Liste von Informatkkursen (viele mit Online Vorlesungen)](https://github.com/prakhar1989/awesome-courses)
|
|
|
|
|
|
## Paper (Wissenschaftliche Artikel)
|
|
## Paper (Wissenschaftliche Artikel)
|
|
|
|
|