Founder-CEO and CS Teacher

Many people realize their hearts desires late in life. Continue learning, never stop striving and keep your curiosity sharp, and you will never become too old to appreciate life.

## Introduction to trees

A tree is an acyclic graph, a tree of which each vertex has at most 2 children is called a binary tree. Since each vertex of a binary tree can only have 2 children, we generally name them left child (under left tree) and right child (under right tree).

## Introduction to graph theory

A graph G is represented by a pair (S, A) where S is a finite set and A a binary relation on S. The set S is the set of vertices of G and A is the set of arcs of G.

## Loops in Python

loops are a powerful tools used in various problems, that's why we focus on this course in how to use them in Python. In the other programming languages like C/C++ and Java we found three different kinds of loops, In Python, there are only two ways to execute loops. Although all methods offer similar basic functionality, their syntax and time for checking conditions differ.

## Sets in Python

A set is an unordered collection of items. Each element is unique (no duplicates) and must be immutable (which cannot be changed). However, the set itself is mutable. We can add or remove items. If your application doesn't care how the items are stored, use sets rather than lists, because when it comes to handling items, a set is much more efficient than a list.

## Input and Output in Python

There will be situations where your program has to interact with the user. For example, you want to take input from the user and then display some results. We can do this by using the input() function and the print() function, respectively. The easiest way to produce output is to use the print () function where you can pass zero or more comma-separated expressions.

## Dictionaries in Python

A Python dictionary works similarly to a dictionary in a real world. The keys in a dictionary must be unique and of immutable data type, such as strings, integers, and tuples, but the key-values can be repeated and be of any type. Each key corresponds to a value, so we cannot have duplicate keys. Dictionaries are editable objects, which means that we can add, delete, or update items after they are created.

## Tuples in Python

Tuples are sequences that function like lists, the only difference is that they are immutable, which means that we cannot add, delete or modify its elements once created. It also makes them super efficient compared to the list. Tuples are used to store a list of items that do not change.

## Lists or arrays in Python

Lists are like arrays, declared in other programming languages. Lists don't always have to be homogeneous, which makes them an extremely powerful tool in Python. Lists are also very useful for implementing stacks and queues. The lists are modifiable and can therefore be modified even after their creation.