You are currently browsing a repository that serves as my notes on the elementary basics of computer science.
The repository contains elementary theory related to computer science and programming. Each notebook includes practical programs divided into sections that are currently being discussed. The goal of the repository is not to create a guide but to group fundamental concepts in one place so that it always serves as a reference whenever I forget something or find a topic unclear. However, I have tried to simplify and generalize definitions and complex concepts as much as possible. So, if you want to use it as a learning aid for computer science, it will likely be more helpful to you than complex books with a strong focus on theory.
The project aims to:
- Organizing existing knowledge.
- Acquiring new useful skills.
01-introduction-to-python.ipynb
02-iterative-programs.ipynb
03-functions.ipynb
04-numerical-methods.ipynb
05-algorithmic-complexity.ipynb
06-data-structures.ipynb
07-sorting.ipynb
08-object-oriented-programming.ipynb
09-graph-algorithms.ipynb
10-greedy-algorithms.ipynb
11-dynamic-programming.ipynb
12-caches.ipynb
13-string-searches.ipynb
14-unified-modeling-language.ipynb
15-design-patterns.ipynb
To run the notebooks, you need:
- Python 3.12+
- Installed libraries listed in the
requirements.txt
file.
Environment setup:
git clone https://github.com/DanielFaltynowski/learn-computer-science.git
cd learn-computer-science
pip install -r requirements.txt
- Open the repository in your favorite Jupyter environment:
jupyter notebook
-
Browse and run the notebooks in any order.
-
Experiment with the code and customize it to your needs.
The project includes:
- Basics of the Python language.
- Concepts of various data structures.
- Computational and memory complexity of algorithms.
- Fundamental algorithms.
- Methods for algorithm optimization.
- Design patterns.
Have questions or suggestions? Feel free to reach out to me:
- Email: [email protected]
- LinkedIn: Daniel Faltynowski