Erforschen Sie die Computer-Science-Fundation-Roadmap, einen umfassenden Leitfaden, der ein robustes Verständnis der Informatik aufbauen soll. Diese Roadmap bietet einen strukturierten Lernpfad mit empfohlenen Videoressourcen, praktischen Übungen und inspirierenden Projekten. Dieses Repository ist perfekt für Anfänger und diejenigen, die ihr Wissen vertiefen möchten, und dient als unschätzbare Ressource für angehende Fachkräfte in Informatik und verwandten Bereichen.
Während ich diese Roadmap bastelte, lag mein Hauptaugenmerk auf YouTube -Videos als Hauptlernressourcen, um einen einfacheren Lernweg zu ermöglichen. Es ist jedoch wichtig zu beachten, dass die Lernenden nicht allein auf diese Ressourcen beschränkt sind. Informatik ist ein umfangreiches Feld, und in dieser Roadmap habe ich versucht, seine Breite zu verkörpern. Also tauche ein und genieße die Lernreise!?
Python für Anfänger - Lerne Python in 1 Stunde
Python lernen - Voller Kurs für Anfänger [Tutorial]
Anfänger Python Programming All-in-One Tutorial Series (6 Stunden!)
Übungen
Hallo Welt: Schreiben Sie ein Programm, das "Hallo, Welt!" Druckt, die druckt. zur Konsole
Fügen Sie zwei Zahlen hinzu: Erstellen Sie ein Programm, das zwei vom Benutzer eingegebene Zahlen hinzufügt und das Ergebnis anzeigt
Bereich eines Rechtecks: Erstellen Sie ein Programm, das den Bereich eines Rechtecks berechnet und zeigt, basierend auf der von der Benutzer bereitgestellten Länge und Breite.
Celsius zu Fahrenheit: Erstellen Sie ein Programm, das eine Temperatur in Celsius in Fahrenheit umwandelt. Das Programm sollte die Temperatur in Celsius als Eingabe vom Benutzer erhalten, die Konvertierung durchführen und das Ergebnis mit zwei Dezimalstellen anzeigen.
Tauschen Sie zwei Nummern aus: Erstellen Sie ein Programm, das zwei Zahlen auswirkt, ohne eine dritte Variable zu verwenden. Der Benutzer wird aufgefordert, zwei Zahlen einzugeben, und das Programm sollte seine Werte austauschen und sicherstellen, dass die ursprünglichen Werte ausgetauscht und die Zahlen effektiv umgekehrt werden.
Schattierte Region: Berechnen Sie die Fläche des schattierten Bereichs in einem Quadrat mit einem beschrifteten Kreis. Finden Sie angesichts des Radius (R) des eingeschriebenen Kreises die Fläche des Quadrats abzüglich der Fläche des Kreises. Präsentieren Sie das Ergebnis mit zwei Dezimalstellen, um den Bereich der schattierten Region genau darzustellen 
Registrieren Sie Benutzerinformationen: Entwickeln Sie ein Programm, das Benutzerinformationen sammelt und registriert, einschließlich des Vornamens, des Nachnamens, des Alters, des Geschlechts, des Schülerstatus, der Größe in Messgeräten und dem Gewicht in Kilogramm.
Gültiges Dreieck: Erstellen Sie ein Programm, das feststellt, ob es möglich ist, ein gültiges Dreieck mit drei Stöcken mit den bestimmten Längen A, B und c zu bilden. Das Programm sollte die Längen der Sticks als Eingabe des Benutzers einnehmen und prüfen, ob sie die Dreiecksungleichheit erfüllen, wobei die Summe der Längen von zwei Stöcken größer sein muss als die Länge des dritten Sticks. Zeigen Sie das Ergebnis als "Dreieck gebildet werden" angezeigt, wenn der Zustand erfüllt ist, oder "Dreieck kann nicht gebildet werden", wenn dies nicht der Fall ist.
Klassifizierung: Entwickeln Sie ein Programm, das eine numerische Note als Eingabe vom Benutzer (innerhalb eines Bereichs von 0 bis 100) erhält und die Note in eine vordefinierte Kategorie der Buchstabenqualität eintastet. Das Programm sollte IF-ELSE-Anweisungen verwenden, um die entsprechende Buchstabenqualität basierend auf typischen Sortierbereichen (z. B. "A" für die Klassen zwischen 90 bis 100, "B" für die Klassen zwischen 80 und 89 und so weiter) zu bestimmen. Zeigen Sie nach der Klassifizierung dem Benutzer die berechnete Buchstabenqualität an.
Zeigen Sie Sternchen in einer Zeile an: Erstellen Sie ein Programm, das einen ganzzahligen Wert w, als Eingabe annimmt und ein Sternchen (*) -Schzeichen in einer einzelnen Zeile anzeigt. Das Programm sollte den Wert von W verwenden, um festzustellen, wie viele Sternchen nacheinander in einer Reihe angezeigt werden. Stellen Sie sicher, dass W im Bereich von 0 <w <80 liegt. Wenn der Benutzer W = 5 eingibt, wird das Programm angezeigt: ****
Zeigen Sie Sternchen in einem Rechteck anzeigen: Entwickeln Sie ein Programm, das zwei Ganzzahlwerte W und H als Eingabe aufnimmt und eine Anordnung von Sternchen (*) -Spels in einem Rechteckformat mit W -Spalten und H -Zeilen anzeigt. Das Programm sollte die Werte von W und H verwenden, um die Abmessungen des Rechtecks zu bestimmen und sie entsprechend mit Sternchen zu füllen. Stellen Sie sicher, dass W im Bereich von 0 <w <80 liegt und H im Bereich von 0 <h <24 liegt.
Wenn der Benutzer W = 4 und H = 3 eingibt, wird das Programm angezeigt:
****
****
****
Rechtwinkliger Dreiecksmuster: Erstellen Sie ein Programm, das ein rechtwinkliges Dreiecksmuster mit einer bestimmten Höhe (H) anzeigt.
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
*
**
***
****
Rechtwinkliger Dreiecksmuster (invertiert): Entwickeln Sie ein Programm, um ein invertiertes rechtwinkliges Dreiecksmuster mit einer bestimmten Höhe (H) anzuzeigen.
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
****
***
**
*
Pyramidenmuster: Erstellen Sie ein Programm, das ein Pyramidenmuster mit einer bestimmten Höhe (H) anzeigt.
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
*
***
*****
*******
Hohldreieck -Muster: Entwickeln Sie ein Programm zum Drucken eines hohlen Dreiecksmusters mit einer bestimmten Höhe (H) wie folgt:
Wenn der Benutzer H = 5 eingibt, wird das Programm angezeigt:
*
**
* *
* *
*****
Zahlen -Dreieck -Muster: Schreiben Sie ein Programm, das zum Beispiel ein Zahlen -Dreieck -Muster mit einer bestimmten Höhe (H) erstellt:
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
1
12
123
1234
Pascals Dreieck: Erstellen Sie ein Programm, um die ersten 'H' -Zeilen von Pascals Dreieck zu generieren und anzuzeigen, ein mathematisches Muster:
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
1
1 1
1 2 1
1 3 3 1
Floyds Dreieck: Entwickeln Sie ein Programm zum Drucken von Floyds Dreieck mit "H" -Filen, wobei jede Zeile aufeinanderfolgende Zahlen enthält:
Wenn der Benutzer H = 4 eingibt, wird das Programm angezeigt:
1
2 3
4 5 6
7 8 9 10
Diamantmuster: Erstellen Sie ein Programm, das ein Diamantmuster mit Sternchen (*) mit einer bestimmten Höhe (h) wie folgt zeigt:
Wenn der Benutzer H = 3 eingibt, wird das Programm angezeigt:
*
***
*****
***
*
Hourglass -Muster: Schreiben Sie ein Programm, das ein Sanduhr -Muster mit einer bestimmten Höhe (H) druckt, zum Beispiel:
Wenn der Benutzer H = 3 eingibt, wird das Programm angezeigt:
*****
***
*
*
***
*****
FIZZBUZZ: Schreiben Sie ein Programm, das durch eine Folge von Zahlen (normalerweise von 1 bis n) iteriert und die folgenden Aktionen für jede Zahl ausführt:
Finden Sie Wochentag: Entwickeln Sie ein Programm, das den Wochentag eines bestimmten Datums im Format "DD/MM/YYYY" bestimmt. Das Programm sollte ein Datum als Input dauern, einschließlich des Tages, des Monat und des Jahres, und den entsprechenden Wochentag berechnen. Es sollte Schaltjahre ausmachen und den Namen des Wochentags (z. B. "Montag", "Dienstag") für das angegebene Datum angeben.
Angenommen, der Benutzer tritt wie folgt wie folgt ein: 15/11/2023.
Das Programm sollte berechnen, dass der 15. November 2023 ein Mittwoch ist und das Ergebnis liefern wie:
The weekday for 15/11/2023 is Wednesday.
Taschenrechnerfunktionen : Erstellen Sie ein einfaches Taschenrechnerprogramm, das grundlegende arithmetische Operationen ausführt (Zugabe, Subtraktion, Multiplikation und Abteilung). Organisieren Sie den Code, indem Sie separate Funktionen für jeden Vorgang erstellen (z. B. hinzufügen, subtrahieren, multiplizieren, teilen). Rufen Sie diese Funktionen an, um Berechnungen basierend auf Benutzereingaben durchzuführen.
To-Do-List-Funktionen : Erstellen Sie eine To-Do-List-Anwendung, mit der Benutzer Aufgaben hinzufügen, anzeigen und markieren können. Implementieren Sie Funktionen zum Hinzufügen von Aufgaben, zum Anzeigen der Liste und zum Markieren von Aufgaben wie möglich. Verwenden Sie Funktionen, um den Code organisiert und leicht zu erweitern.
Maximale Zahl in einem Array : Schreiben Sie ein Programm, das die maximale Zahl in einem Array von Ganzzahlen findet und zeigt. Implementieren Sie einen Algorithmus, der durch das Array iteriert wird und den maximalen Wert verfolgt.
String -Umkehr : Erstellen Sie ein Programm, das eine Zeichenfolge als Eingabe aufnimmt und die Zeichen in der Zeichenfolge umkehrt. Entwickeln Sie einen Algorithmus, um die Zeichen in umgekehrter Reihenfolge neu zu ordnen und die umgekehrte Zeichenfolge zu erzeugen.
Sortieren von Daten : Implementieren Sie einen Sortieralgorithmus, um eine Liste von Ganzzahlen in aufsteigender Reihenfolge zu arrangieren. Entwickeln Sie ein Programm, das die aufsteigende Sortierung auf die angegebenen Daten anwendet und das sortierte Ergebnis anzeigt.
Finden der Mindestnummer in einem Array : Schreiben Sie ein Programm, das die Mindestnummer in einem Array von Ganzzahlen findet und zeigt.
String Palindrome Checker : Erstellen Sie ein Programm, das überprüft, ob eine bestimmte Zeichenfolge ein Palindrom ist (liest dieselben Stürmer und rückwärts). Entwickeln Sie einen Algorithmus, der die Zeichen der Zeichenfolge von beiden Enden vergleicht, um festzustellen, ob es sich um ein Palindrom handelt.
Zählen von Vorkommen in einem Array : Entwickeln Sie ein Programm, das die Vorkommen eines bestimmten Elements in einem Array zählt. Implementieren Sie einen Algorithmus, der durch das Array iteriert und verfolgt, wie oft das Element erscheint.
Finden des Mittelwerts (Durchschnitt) eines Arrays: Schreiben Sie ein Programm, das den Mittelwert (Durchschnitt) eines Arrays von Zahlen berechnet und zeigt. Entwickeln Sie einen Algorithmus, um die Elemente im Array zusammenzufassen und durch die Anzahl der Elemente zu teilen, um den Mittelwert zu finden.
Suche nach einem Element in einem Array: Erstellen Sie ein Programm, das in einem Array nach einem bestimmten Element sucht, und gibt seinen Index zurück, falls gefunden. Implementieren Sie einen Algorithmus, der durch das Array iteriert, um das gewünschte Element zu lokalisieren.
Zählen von Wörtern in einer Zeichenfolge : Schreiben Sie ein Programm, das die Anzahl der Wörter in einer bestimmten Zeichenfolge zählt. Entwickeln Sie einen Algorithmus, der Wortgrenzen identifiziert und die Wörter in der Zeichenfolge zählt.
Faktenberechnung: Implementieren Sie ein Programm, das das Faktor für eine bestimmte Ganzzahl berechnet (z. B. 5! = 5 * 4 * 3 * 2 * 1). Entwickeln Sie einen Algorithmus, um die faktorielle Berechnung durchzuführen.
Quadratwurzel: Entwickeln Sie eine Funktion, die die Quadratwurzel einer positiven Zahl 'n' mit einem bestimmten Genauigkeitsniveau 'P' berechnet. Die Funktion sollte die binäre Suchmethode verwenden, um die Quadratwurzel an 'P' Dezimalstellen zu approximieren.
Finden Sie die Mindestzahl . Link: https://www.hackerrank.com/contests/w30/chalenschaften/find-the-minimum-number/problem
Ratenspiel: Erstellen Sie ein Ratenspiel, bei dem der Benutzer eine zufällig generierte Nummer erraten muss.
Prime oder nicht implementieren Sie ein Programm, das überprüft, ob eine bestimmte Zahl Primzahl ist oder nicht.
Fügen Sie zwei Matrizen derselben Größe hinzu: Erstellen Sie ein Programm, das zwei Matrizen derselben Größe hinzufügt. Der Benutzer sollte die Abmessungen (Zeilen und Spalten) der Matrizen eingeben und dann die Werte für jedes Element in beiden Matrizen bereitstellen. Ihr Programm sollte bestätigen, dass die Matrizen die gleichen Abmessungen für die Addition haben und die resultierende Matrix anzeigen.
Multiplizieren Sie zwei Matrizen: Erstellen Sie ein Programm, das zwei Matrizen multipliziert. Der Benutzer sollte die Dimensionen (Zeilen und Spalten) beider Matrizen eingeben und die Werte für jedes Element in beiden Matrizen bereitstellen. Ihr Programm sollte bestätigen, dass die Matrizen kompatible Abmessungen zur Multiplikation haben und die resultierende Matrix anzeigen.
Projekte
Bauen Sie ein interaktives arithmetisches Lernspiel für Schulkinder auf
Konsolenbasierter Schlangenspiel
Wie ich Datenstrukturen und Algorithmen studiere (wie selbst gelehrt)
Algorithmen für Anfänger erklärt - wie ich mir wünschte, ich würde unterrichtet
Datenstrukturen und Algorithmen in 15 Minuten
Datenstrukturen Einfach zu erweitertem Kurs - Vollständiges Tutorial eines Google -Ingenieurs
Übungen :
Input:
nums = [8, 7, 2, 5, 3, 1]
target = 10
Output:
Pair found (8, 2)
or
Pair found (7, 3)
Input:
nums = [5, 2, 6, 8, 1, 9]
target = 12
Output: Pair not found

Projekte :
HashTable , die die folgenden Grundvorgänge unterstützt:insert ): Implementieren Sie eine Methode, um ein Schlüsselwertpaar in die Hash-Tabelle einzufügen. Wenn der Schlüssel bereits vorhanden ist, aktualisieren Sie den entsprechenden Wert.get ): Implementieren Sie eine Methode, um den mit einem bestimmten Schlüssel zugeordneten Wert abzurufen. Wenn der Schlüssel nicht gefunden wird, geben Sie einen festgelegten Wert zurück, der Abwesenheit (z. B. None oder null ) angibt.delete ): Implementieren Sie eine Methode zum Löschen eines Schlüsselwertpaars aus der Hash-Tabelle basierend auf dem bereitgestellten Schlüssel.Was ist Linux?
Was ist Linux? - Linux erklärt
Linux -Verzeichnisse in 100 Sekunden erläutert
Übungen :
Top 20 -Befehle, die jeder Linux -Benutzer wissen muss
10 Linux -Terminalbefehle für Anfänger
Grundlegende Terminalbefehle in Linux Ubuntu (Ubuntu -Tutorial für Anfänger)
Übungen :
mkdir , um ein Verzeichnis mit dem Namen "Foo" auf dem Desktop zu erstellen. cd in das 'foo' Verzeichnis und erstellen Sie mit mkdir ein Unterverzeichnis mit dem Namen "Bar". mv , um die Datei 'path.txt' in 'pwd.txt' im Verzeichnis 'Bar' umzubenennen. mkdir . touch , um drei Dateien mit dem Namen "Datei1.c", "file2.cpp" und "file3.py" zu erstellen. cp , um alle Dateien aus dem Verzeichnis "TMP" in das Verzeichnis "Bar" zu kopieren. rm , um das TMP -Verzeichnis mit seinem gesamten Inhalt zu entfernen. ls mit den entsprechenden Optionen, um alle Dateien (einschließlich versteckter) im Verzeichnis "Bar" aufzulisten. Umleiten Sie die Ausgabe mit dem Operator > in eine neue Datei namens 'Report.txt'. grep mit der r -Option, um nach allen Zeilen zu suchen, die "Foo" oder "Bar" rekursiv aus dem Home -Verzeichnis enthalten. wget , um die Datei aus der angegebenen URL (https://raw.githubuSercontent.com/dwyl/english-words/master/words.txt) herunterzuladen. grep , um nach dem Wort "John" aus der kürzlich heruntergeladenen Datei (Words.txt) zu suchen. Zeigen Sie die Zeilen mit John zusammen mit aufeinanderfolgenden Zeilennummern an. In 100 Sekunden verprügeln
Shell Scripting Crashkurs - Anfängerstufe
Projekte :
Generieren Sie das Skript aus dem Befehlsgeschichte mit Progress -Echo:
history.txt (das Ergebnis der vorherigen Übungsaufgaben) in ein Shell -Skript ( script.sh ) mit hinzugefügten echo -Anweisungen, um den Fortschritt anzuzeigen.history.txt (das Ergebnis der vorherigen Praxisaufgaben) und überprüfen Sie die Befehle sorgfältig.script.sh .history.txt in script.sh ein und fügen Sie ihn ein und fügen Sie ihn ein.echo -Anweisungen vor jedem Befehl hinzu, um Hinweise auf den visuellen Fortschritt zu geben.script.sh mit hinzugefügten echo -Anweisungen: #! /bin/bash
# Displaying current progress
echo " Creating 'foo' directory on Desktop... "
mkdir ~ /Desktop/foo
# Displaying current progress
echo " Creating 'bar' directory inside 'foo'... "
cd ~ /Desktop/foo
mkdir bar
# Displaying current progress
echo " Creating 'path.txt' and inserting absolute path... "
echo " $( cd ~ /Desktop/foo/bar && pwd ) " > path.txt
# (Repeat for each command)
# Displaying final progress
echo " Script execution completed! "script.sh -Datei in einem Desktop -Ordner.script.sh .chmod +x script.sh ausführbar../script.sh aus.echo -Anweisungen helfen dabei, den Ausführungsfortschritt jedes Befehls zu visualisieren. Erfasst Screenshots Ihres Bildschirms
# User input for time interval
Enter the time interval for taking screenshots (in seconds): 60
# Script output during execution
Creating folder: screenshot data
Creating folder: 2022-03-28
Capturing screenshot: Screen Shot 2022-03-28 at 17.48.06.jpg
Capturing screenshot: Screen Shot 2022-03-28 at 17.49.06.jpg
...screenshot.sh .chmod +x screenshot.sh ausführbar../screenshot.sh aus. Git & Github Crashkurs für Anfänger
Git- und Github -Tutorial für Anfänger
Git-Tutorial für Anfänger: Befehlszeilen Grundlagen
Git und Github für Anfänger - Crashkurs
Projekte:
Installieren Sie GIT: Installieren Sie GIT auf Ihrem Computer.
Konfigurieren Sie GIT: Richten Sie Ihren Git -Benutzernamen und Ihre E -Mail ein.
Erstellen Sie ein lokales Repository:
git initÄnderungen hinzufügen und begehen: Fügen Sie Dateien zum Staging -Bereich hinzu und verpflichten Sie Änderungen am Repository.
git add .
git commit -m " Initial commit "Repository Status anzeigen: Überprüfen Sie den Status Ihres Repositorys.
git status Erstellen Sie Readme.md: Erstellen Sie eine README.md -Datei für Ihr Projekt.
Schreiben Sie über sich selbst in Readme.md: Schreiben Sie über sich selbst
Dekorieren Sie Readme.md: Verbessern Sie die Ästhetik der Datei README.md , indem Sie Formatierung, Header, Kugelpunkte oder andere Elemente hinzufügen, die die Lesbarkeit verbessern.
Änderungen des Festschreibens: Verwenden Sie Git, um die Änderungen an der README.md -Datei vorzunehmen.
Schreiben Sie eine aussagekräftige Commit -Nachricht: Geben Sie eine beschreibende und aussagekräftige Commit -Nachricht an, die den Zweck des Commits zusammenfasst.
Sehen Sie sich die Feststellungsgeschichte an: Sehen Sie sich die Festungsgeschichte Ihres Repositorys an.
git logErstellen Sie ein GitHub -Konto:
Erstellen Sie ein Remote -Repository auf GitHub:
Schließen Sie das lokale Repository mit GitHub an:
git remote add origin < repository_url >
git branch -M main
git push -u origin mainKlon ein Repository:
git clone < repository_url >Erstellen Sie einen Zweig:
git branch < branch_name >
git checkout < branch_name >Wechseln Sie zwischen Zweigen:
git checkout < branch_name >Zweige zusammenführen:
git checkout < target_branch >
git merge < source_branch >Entschlossene Zusammenführungskonflikte:
Ziehen Sie Änderungen von der Fernbedienung an:
git pull origin mainVerschieben von Änderungen in die Fernbedienung:
git push origin < branch_name >Pull -Anfragen erstellen und anwenden:
Fork ein Repository:
Klonen und zum Forked -Repository beitragen:
git clone < forked_repository_url >
# Make changes
git add .
git commit -m " Description of changes "
git push origin < branch_name >Überprüfung und Zusammenführen von Pull -Anfragen:
Roadmap der Informatik Foundation © 2023 von Saidamir Botirov ist unter CC BY-SA 4.0 lizenziert