Skip to content

You are currently browsing a repository that serves as my notes on the elementary basics of computer science.

Notifications You must be signed in to change notification settings

DanielFaltynowski/learn-computer-science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn Computer Science 🖥️

You are currently browsing a repository that serves as my notes on the elementary basics of computer science.

About the Project

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.

Contents

Jupyter Notebooks:

  • 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

Requirements

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  

How to Use?

  1. Open the repository in your favorite Jupyter environment:
jupyter notebook
  1. Browse and run the notebooks in any order.

  2. Experiment with the code and customize it to your needs.

Topics Covered

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.

Contact

Have questions or suggestions? Feel free to reach out to me:

References

  1. John V. Guttag. Introduction to Computation and Programming Using Python With Application to Understanding Data. MIT Press. 2016

  2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. MIT Press. 2022

  3. GeeksForGeeks