探索計算機科學基礎 - 公路圖,這是一項綜合指南,旨在建立對計算機科學的強有力理解。從編程基礎知識到數據結構和操作系統等高級概念,該路線圖提供了一個結構化的學習路徑,並提供了推薦的視頻資源,動手練習和鼓舞人心的項目。該存儲庫非常適合初學者和旨在加深知識的人,是計算機科學和相關領域有抱負的專業人員的寶貴資源。
在製作此路線圖的同時,我的主要重點是YouTube視頻是促進更輕鬆的學習路徑的主要學習資源。但是,必須注意,學習者不僅限於這些資源。計算機科學是一個廣泛的領域,在此路線圖中,我試圖封裝其廣度。因此,潛入並享受學習之旅!
python for初學者 - 在1小時內學習python
學習Python-初學者的完整課程[教程]
初學者Python編程多合一教程系列(6小時!)
實踐
Hello World:編寫一個打印“ Hello,World!”的程序。到控制台
添加兩個數字:創建一個程序,該程序添加用戶輸入的兩個數字並顯示結果
矩形的區域:創建一個程序,該程序根據用戶提供的長度和寬度來計算和顯示矩形區域。
攝氏至華氏度:創建一個將攝氏溫度轉換為華氏溫度的程序。該程序應作為用戶的輸入接收攝氏的溫度,執行轉換,並以兩個小數位置顯示結果。
交換兩個數字:創建一個程序,該程序在不使用第三個變量的情況下交換兩個數字。提示用戶輸入兩個數字,並且程序應互換其值,以確保換成原始值並有效地逆轉數字。
陰影區域:在帶有刻有圓圈的正方形中計算陰影區域的面積。鑑於刻有圓圈的半徑(R),找到平方的面積減去圓的面積。將結果呈現兩個小數位,以準確表示陰影區域
註冊用戶信息:開發一個程序,該程序收集和註冊用戶信息,包括其名稱,姓氏,年齡,性別,學生狀態,高度為單位,以及千克的體重。
有效的三角形:創建一個程序,該程序確定是否可以使用具有給定長度a,b和c的三個棍棒形成有效的三角形。該程序應將棍棒的長度作為用戶的輸入,並檢查它們是否滿足三角形不等式,其中任何兩個棍子的長度的總和必須大於第三桿的長度。如果滿足條件,則將結果顯示為“可以形成三角形”,或者如果不是這樣,則將結果顯示為“三角形”。
等級分類:開發一個程序,該程序從用戶(0-100範圍內)接收數值等級,並將等級分為預定義的信函等級類別。該程序應使用IF-ELSE語句根據典型的等級範圍來確定適當的字母等級(例如,在90-100之間的成績,“ B”的成績為80-89之間的“ B”)。分類後,向用戶顯示計算的字母等級。
在一行中顯示星號:創建一個程序,該程序將整數值W作為輸入,並在一行中顯示星號(*)字符w時間。該程序應使用W值來確定連續顯示多少個星號。確保W在0 <W <80的範圍內。如果用戶輸入W = 5,則該程序將顯示: ****
在矩形中顯示星號:開發一個程序,該程序採用兩個整數值W和H,作為輸入,並以帶有W列和H行的矩形格式顯示星號(*)字符的佈置。該程序應使用W和H的值來確定矩形的尺寸,並相應地用星號填充它。確保W在0 <w <80的範圍內,並且H在0 <H <24的範圍內。
如果用戶輸入W = 4和H = 3,則該程序將顯示:
****
****
****
右角三角形模式:創建一個程序,該程序顯示具有給定高度(H)的右角三角形圖案。
如果用戶輸入h = 4,則該程序將顯示:
*
**
***
****
右角三角模式(倒置):開發一個程序,以顯示具有給定高度(H)的倒置的右角三角形模式。
如果用戶輸入h = 4,則該程序將顯示:
****
***
**
*
金字塔模式:創建一個程序,該程序顯示具有給定高度(H)的金字塔模式。
如果用戶輸入h = 4,則該程序將顯示:
*
***
*****
*******
空心三角形圖案:開發一個程序以打印具有給定高度(H)的空心三角形圖案,如以下:
如果用戶輸入h = 5,則該程序將顯示:
*
**
* *
* *
*****
數字三角模式:編寫一個程序,該程序創建一個具有給定高度(H)的數字三角模式,例如:
如果用戶輸入h = 4,則該程序將顯示:
1
12
123
1234
Pascal的三角形:創建一個程序來生成和顯示Pascal三角形的第一個“ H”行,一種數學模式:
如果用戶輸入h = 4,則該程序將顯示:
1
1 1
1 2 1
1 3 3 1
弗洛伊德(Floyd)的三角形:開發一個程序,用“ h”行打印弗洛伊德(Floyd)的三角形,其中每一行包含連續的數字:
如果用戶輸入h = 4,則該程序將顯示:
1
2 3
4 5 6
7 8 9 10
鑽石圖案:創建一個程序,該程序使用帶有給定高度(H)的星號(*)顯示鑽石圖案,例如:
如果用戶輸入h = 3,則該程序將顯示:
*
***
*****
***
*
沙漏圖案:編寫一個程序,以給定高度(H)打印一個沙漏圖案,例如:
如果用戶輸入h = 3,則該程序將顯示:
*****
***
*
*
***
*****
FizzBuzz:編寫一個程序,該程序通過一系列數字(通常從1到N)迭代,並對每個數字執行以下操作:
查找工作日:制定一個計劃,該計劃以“ DD/mm/yyyy”格式確定給定日期的工作日。該計劃應將日期作為輸入,包括日期,月和年,併計算相應的工作日。它應佔LEAP年份,並在提供的日期提供工作日的名稱(例如,“星期一,“星期二”)。
假設用戶輸入日期如下:15/11/2023。
該計劃應計算出2023年11月15日是星期三,並提供了以下結果:
The weekday for 15/11/2023 is Wednesday.
計算器功能:構建一個執行基本算術操作(加法,減法,乘法和除法)的簡單計算器程序。通過為每個操作創建單獨的功能來組織代碼(例如,添加,減去,乘,劃分)。將這些功能調用以根據用戶輸入執行計算。
待辦事項列表函數:創建一個待辦事項列表應用程序,允許用戶添加,查看和標記任務完成。實現用於添加任務,顯示列表和標記任務的功能。利用函數來保持代碼組織且易於擴展。
數組中的最大數字:編寫一個程序,該程序在整數數組中找到並顯示最大數字。實現算法通過數組迭代,並跟踪找到的最大值。
字符串反轉:創建一個程序,該程序將字符串作為輸入並逆轉字符串中的字符。開發一種算法以相反順序重新排列字符,從而產生反向字符串。
排序數據:實現分類算法以按上升順序排列整數列表。開發一個程序,將上升排序應用於給定數據並顯示排序結果。
在數組中找到最小數字:編寫一個程序,以查找和顯示整數數組中的最小數字。
字符串palindrome檢查器:創建一個程序,該程序檢查給定的字符串是否為palindrome(向前和向後讀取相同的讀取)。開發一種算法,該算法比較了兩端的字符串字符,以確定它是否是回文。
數組中的計數發生:開發一個程序,該程序計算數組中特定元素的出現。實現通過數組迭代的算法,並跟踪元素出現的次數。
找到數組的平均值(平均):編寫一個程序,該程序計算並顯示數字數組數組的平均值(平均)。開發一種算法來總結數組中的元素,然後除以元素的數量以找到平均值。
在數組中搜索元素:創建一個程序,該程序在數組中搜索特定元素,並在發現其索引中返回其索引。實現通過數組迭代的算法以找到所需的元素。
在字符串中計算單詞:編寫一個程序,該程序計算給定字符串中的單詞數。開發一種算法,該算法可以識別單詞邊界併計算字符串中的單詞。
階乘計算:實施一個程序,該程序計算給定整數的階乘(例如5!= 5 * 4 * 3 * 2 * 1)。開發一種算法來執行階乘計算。
平方根:開發一個函數,該函數用指定的精度為“ p”計算正數'n'的平方根。該函數應使用二進制搜索方法將平方根近似為“ P”小數位。
找到最小數字。鏈接:https://www.hackerrank.com/contests/w30/challenges/find-the-minimin-number/problem
猜測遊戲:創建一個猜測遊戲,用戶必須猜測一個隨機生成的數字。
Prime或不實施一個程序,該程序檢查給定的數字是否為素數。
添加兩個相同大小的矩陣:創建一個程序,該程序添加兩個相同大小的矩陣。用戶應輸入矩陣的尺寸(行和列),然後在兩個矩陣中提供每個元素的值。您的程序應驗證矩陣具有相同的尺寸以添加並顯示結果矩陣。
乘以兩個矩陣:創建一個乘以兩個矩陣的程序。用戶應輸入兩個矩陣的尺寸(行和列),並為兩個矩陣中的每個元素提供值。您的程序應驗證矩陣具有兼容尺寸用於乘法並顯示所得矩陣。
專案
為小學生構建一個互動算術學習遊戲
基於控制台的蛇遊戲
我如何研究數據結構和算法(作為自學成才)
為初學者解釋了算法 - 我希望我如何被教導
數據結構和算法在15分鐘內
數據結構易於高級課程 - 來自Google工程師的完整教程
實踐:
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

專案:
HashTable的類,該類別支持以下基本操作:insert ):實現一種將鍵值對插入哈希表中的方法。如果密鑰已經存在,請更新相應的值。get ):實現一種方法來檢索與給定密鑰關聯的值。如果找不到鍵,請返回指定的值表示缺失的值(例如, None或null )。delete ):實現一種基於提供的密鑰從哈希表中刪除鍵值對的方法。什麼是Linux?
什麼是Linux? - Linux解釋了
Linux目錄在100秒內解釋
實踐:
前20個命令每個Linux用戶都必須知道
初學者的10個Linux終端命令
Linux Ubuntu(初學者Ubuntu教程)中的基本終端命令
實踐:
mkdir命令在桌面上創建名為“ foo”的目錄。 cd導航到“ Foo”目錄中,並使用mkdir創建一個名為“ bar'的子目錄”。 mv命令將“ path.txt”文件重命名為“ bar”目錄中的“ pwd.txt”。 mkdir創建一個名為“ TMP”的子目錄。 touch命令創建三個名為“ file1.c',file2.cpp”和“ file3.py”的文件。 cp命令將所有文件從“ TMP”目錄複製到“ BAR”目錄。 rm命令刪除及其所有內容的“ TMP”目錄。 ls命令,其中包含適當的選項,以列出“ bar”目錄中的所有文件(包括隱藏的文件)。使用>運算符將輸出重定向到名為“ report.txt”的新文件。 grep命令與r選項一起搜索所有包含“ foo”或'bar'的行,從主目錄中遞歸。 wget命令從指定的URL(https://raw.githubusercontent.com/dwyl/english-words/master/master/words.txt)下載文件。 grep命令”搜索最近下載的文件中的“ John”一詞(Word.txt)。顯示包含“ John”的線以及連續的行號。 100秒內狂歡
外殼腳本速成課程 - 初學者級別
專案:
從命令歷史記錄中生成腳本,並具有進度迴聲:
history.txt中的命令序列(以前的練習任務的結果)轉換為shell腳本( script.sh ),並帶有添加的echo語句以顯示進度。history.txt (以前的練習任務的結果)文件,然後仔細查看命令。script.sh的新文件。history.txt複製並粘貼到script.sh 。echo語句以提供視覺進度指示。script.sh的示例模板。 SH,帶有添加的echo語句: #! /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文件保存到桌面文件夾。script.sh的目錄。chmod +x script.sh使腳本可執行。./script.sh運行腳本。echo語句有助於可視化每個命令的執行進度。 捕獲屏幕的屏幕截圖
# 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使其可執行。./screenshot.sh運行腳本。 git&github速效課程
git和github for初學者教程
初學者的GIT教程:命令行基礎知識
git和github for初學者 - 速成課程
專案:
安裝git:在計算機上安裝git。
配置git:設置您的git用戶名和電子郵件。
創建一個本地存儲庫:
git init添加並提交更改:將文件添加到登台區域並提交對存儲庫的更改。
git add .
git commit -m " Initial commit "查看存儲庫狀態:檢查存儲庫的狀態。
git status創建readme.md:為您的項目創建一個README.md文件。
在readme.md中寫下自己
裝飾readme.md:通過添加格式,標頭,項目符號或任何其他提高可讀性的元素來增強README.md文件的美學。
提交更改:使用git上台並提交對README.md文件進行的更改。
寫有意義的提交消息:提供一個描述性和有意義的提交信息,總結了提交的目的。
查看提交歷史記錄:查看存儲庫的提交歷史記錄。
git log創建一個github帳戶:
在github上創建一個遠程存儲庫:
將本地存儲庫連接到GitHub:
git remote add origin < repository_url >
git branch -M main
git push -u origin main克隆一個存儲庫:
git clone < repository_url >創建一個分支:
git branch < branch_name >
git checkout < branch_name >在分支之間切換:
git checkout < branch_name >合併分支:
git checkout < target_branch >
git merge < source_branch >解決合併衝突:
從遠程拉更改:
git pull origin main將更改推向遠程:
git push origin < branch_name >創建並應用拉力請求:
叉一個存儲庫:
克隆並為分叉存儲庫做出貢獻:
git clone < forked_repository_url >
# Make changes
git add .
git commit -m " Description of changes "
git push origin < branch_name >審查並合併拉的請求:
計算機科學基金會路線圖©2023 by Saidamir Botirov由CC BY-SA 4.0許可