探索计算机科学基础 - 公路图,这是一项综合指南,旨在建立对计算机科学的强有力理解。从编程基础知识到数据结构和操作系统等高级概念,该路线图提供了一个结构化的学习路径,并提供了推荐的视频资源,动手练习和鼓舞人心的项目。该存储库非常适合初学者和旨在加深知识的人,是计算机科学和相关领域有抱负的专业人员的宝贵资源。
在制作此路线图的同时,我的主要重点是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许可