Исследуйте компьютерный научный фонд-Roadmap, всеобъемлющее руководство, предназначенное для создания надежного понимания компьютерных наук. Эта дорожная карта, от основных оснований до передовых концепций, таких как структуры данных и операционные системы, предлагает структурированный путь обучения с рекомендуемыми видео ресурсами, практическими упражнениями и вдохновляющими проектами. Идеально подходит для начинающих и тех, кто стремится углубить свои знания, этот репозиторий служит бесценным ресурсом для начинающих специалистов в области компьютерных наук и связанных с ними областей.
Создавая эту дорожную карту, моя основная была сосредоточена на видео на YouTube в качестве основных учебных ресурсов, чтобы облегчить путь обучения. Тем не менее, важно отметить, что учащиеся не ограничены только этими ресурсами. Информатика - это обширная область, и в этой дорожной карте я попытался инкапсулировать его широту. Итак, погрузитесь и наслаждайтесь учебным путешествием!?
Python для начинающих - изучать Python за 1 час
Учитесь Python - полный курс для начинающих [Учебное пособие]
Новичок Python Programming All-In-One Series (6 часов!)
Практики
Hello World: Напишите программу, которая печатает "Привет, мир!" к консоли
Добавить два номера: создайте программу, которая добавляет два номера, введенные пользователем, и отображает результат
Область прямоугольника: создайте программу, которая вычисляет и отображает область прямоугольника на основе предоставленной пользователем длины и ширины.
Цельсия в Фаренгейт: Создайте программу, которая преобразует температуру в Цельсия в Фаренгейт. Программа должна получить температуру в Цельсии в качестве входных данных пользователя, выполнить преобразование и отображать результат двумя десятичными местами.
Обменивайте два числа: создайте программу, которая меняет два числа без использования третьей переменной. Пользователю предложено ввести два числа, и программа должна обменивать свои значения, гарантируя, что исходные значения заменялись и числа эффективно обращаются на противоположных.
Заштрихованная область: Рассчитайте область затененной области на квадрате с надписью. Учитывая радиус (r) вписанного круга, найдите область квадрата за вычетом площади круга. Представьте результат с двумя десятичными местами, чтобы точно представлять площадь затененной области 
Зарегистрируйте информацию пользователя: Разработайте программу, которая собирает и регистрирует информацию о пользователе, включая их имя, фамилию, возраст, пол, статус студента, рост в метрах и вес в килограммах.
Допустимый треугольник: создайте программу, которая определяет, возможно ли сформировать действительный треугольник, используя три палочки с данными длиной A, B и C. Программа должна взять длину палочек в качестве ввода от пользователя и проверить, удовлетворяют ли они неравенству треугольника, где сумма длины любых двух палочек должна быть больше длины третьей палки. Показать результат как «Треугольник может быть сформирован», если условие выполнено, или «Треугольник не может быть сформирован», если это не так.
Классификация оценки: разработать программу, которая получает численную оценку в качестве входных данных от пользователя (в пределах диапазона 0-100) и классифицирует оценку на предопределенную категорию букв. Программа должна использовать операторы IF-ELSE для определения соответствующего буквенного оценки на основе типичных диапазонов оценок (например, «A» для сортов между 90-100, «B» для сортов между 80-89 и т. Д.). После классификации отобразите рассчитанную буквенную оценку пользователю.
Отображение звездочек в строке: Создайте программу, которая принимает целочисленное значение, w, как вход и отображает время w Time Wime Wime Asterisk (*) в одной строке. Программа должна использовать значение 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
Треугольник Паскаля: Создайте программу для создания и отображения первых рядов «H» треугольника Паскаля, математический узор:
Если пользователь входит в H = 4, программа будет отображать:
1
1 1
1 2 1
1 3 3 1
Треугольник Флойда: разработать программу для печати треугольника Флойда с рядами «H», где каждая строка содержит последовательные числа:
Если пользователь входит в H = 4, программа будет отображать:
1
2 3
4 5 6
7 8 9 10
Алмазный рисунок: Создайте программу, которая отображает алмазный рисунок, используя звездочки (*) с данной высотой (h), например, это:
Если пользователь входит в H = 3, программа будет отображать:
*
***
*****
***
*
Образец песочных часов: напишите программу, которая печатает шаблон песочных часов с данной высотой (H), например:
Если пользователь входит в H = 3, программа будет отображать:
*****
***
*
*
***
*****
Fizzbuzz: Напишите программу, которая итерация проходит через последовательность чисел (обычно от 1 до N) и выполняет следующие действия для каждого числа:
Найдите Weekday: Разработайте программу, которая определяет будний день данной даты в формате «dd/mm/yyyy». Программа должна принять дату в качестве вклада, включая день, месяц и год, и рассчитать соответствующий буд. Он должен учитываться в течение годов и предоставлять название буднего дня (например, «понедельник», «во вторник») для предоставленной даты.
Предположим, что пользователь входит в дату следующим образом: 15/11/2023.
Программа должна подсчитать, что 15 ноября 2023 года - это среда и обеспечить результат как:
The weekday for 15/11/2023 is Wednesday.
Функции калькулятора : Создайте простую калькуляторную программу, которая выполняет основные арифметические операции (добавление, вычитание, умножение и деление). Организуйте код, создав отдельные функции для каждой операции (например, добавьте, вычитайте, умножьте, разделяйте). Вызовите эти функции, чтобы выполнить вычисления на основе пользовательского ввода.
Функции списка дел : Создайте приложение для списка дел, которое позволяет пользователям добавлять, просматривать и отмечать задачи по мере выполнения. Реализуйте функции для добавления задач, отображения списка и маркировки задач, как это сделано. Используйте функции, чтобы поддерживать организованный код и легко расширять.
Максимальное число в массиве : Напишите программу, которая находит и отображает максимальное число в массиве целых чисел. Реализовать алгоритм для итерации через массив и отслеживать максимальное значение найдено.
Реверс String : Создайте программу, которая принимает строку в качестве ввода и изменяет символы в строке. Разработайте алгоритм, чтобы изменить символы в обратном порядке, создавая обратную строку.
Сортировка данных : реализуйте алгоритм сортировки, чтобы организовать список целых чисел в порядке возрастания. Разработать программу, которая применяет восходящую сортировку к данным данным, и отображает отсортированный результат.
Поиск минимального числа в массиве : напишите программу, которая находит и отображает минимальное число в массиве целых чисел.
String Palindrome Checker : Создайте программу, которая проверяет, является ли данная строка палиндром (считывает те же вперед и назад). Разработайте алгоритм, который сравнивает символы строки с обоих концов, чтобы определить, является ли это палиндром.
Подсчет событий в массиве : разработать программу, которая считает возникновение конкретного элемента в массиве. Реализуйте алгоритм, который итерация проходит через массив и отслеживает, сколько раз появляется элемент.
Поиск среднего (среднего) массива: напишите программу, которая вычисляет и отображает среднее (среднее) массив чисел. Разработайте алгоритм, чтобы подвести итог элементов в массиве и разделите по количеству элементов, чтобы найти среднее значение.
Поиск элемента в массиве: Создайте программу, которая ищет конкретный элемент в массиве и возвращает свой индекс, если найдено. Реализуйте алгоритм, который итерация проходит через массив, чтобы найти желаемый элемент.
Подсчет слов в строке : Напишите программу, которая считает количество слов в данной строке. Разработайте алгоритм, который идентифицирует границы слов и считает слова в строке.
Факторный расчет: реализуйте программу, которая вычисляет факторию данного целого числа (например, 5! = 5 * 4 * 3 * 2 * 1). Разработать алгоритм для выполнения факторного расчета.
Квадратный корень: Разработайте функцию, которая вычисляет квадратный корень положительного числа 'n' с указанным уровнем точности 'p'. Функция должна использовать метод бинарного поиска для аппроксимации квадратного корня в «P» десятичных мест.
Найдите минимальное число . Ссылка: https://www.hackerrank.com/contests/w30/challenges/find-the-minimum-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 секунд
Практики :
Top 20 команд, которые должен знать каждый пользователь Linux
10 команд терминала Linux для начинающих
Основные команды терминала в Linux Ubuntu (учебник Ubuntu для начинающих)
Практики :
mkdir для создания каталога с именем «Foo» на рабочем столе. cd и создайте подкаталог с именем «Бар» с использованием mkdir . mv , чтобы переименовать файл «path.txt» в «pwd.txt» в каталоге «Бар». mkdir . touch , чтобы создать три файла с именем 'file1.c', 'file2.cpp' и 'file3.py'. cp , чтобы копировать все файлы из каталога «TMP» в каталог «Бар». rm , чтобы удалить каталог «TMP» с его всем содержимым. ls с соответствующими параметрами для перечисления всех файлов (включая скрытые) в каталоге «Бар». Перенаправить вывод в новый файл с именем «report.txt» с использованием оператора > . grep с параметром r , чтобы найти все строки, содержащие «foo» или «bar», рекурсивно из домашнего каталога. wget , чтобы загрузить файл с указанного URL (https://raw.githubusercontent.com/dwyl/english-words/master/words.txt). grep для поиска слова «Джон» из недавно загруженного файла (words.txt). Отображайте линии, содержащие «Джон», вместе с последовательными номерами строк. Провести за 100 секунд
Курс сценария сценариев - уровень начинающего
Проекты :
Генерировать сценарий из истории команд с прогрессом Echo:
script.sh history.txt echohistory.txt (результат предыдущих задач практики) и тщательно просмотрите команды.script.sh .history.txt в script.sh .echo перед каждой командой, чтобы предоставить показания визуального прогресса.script.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 для начинающих
Учебное пособие по GIT для начинающих: основные основы командной строки
Git и github для начинающих - аварийный курс
Проекты:
Установите 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 от Сайтимира Ботирова лицензирована в соответствии с CC By.4.0