# Preface

## Preface

I am an civil engineer who have a great passion for Computer Science.

Actually, for quite many years, I forgot how fascinate I was when I first touched a computer (i386) and had a small code of Pascal (Turbo Pascal 3.x) running. Luckily, before turning 40, I have another chance to see Algorithms again and codes much more than I need in a daily work. This starts quite accidentally when I was involved in a project in my company to develop a tool for automation design [1](#fn01). Then I started remembering how I love coding and a colleague motivates me looking more into that direction. I took three courses [2](#fn02) in **Data Structures and Algorithms** and I really love them :) Hopefully, I soon can combine coding into my work more and more. I have no doubt about that.

This note reflects what I am studying on Computer Science.

[1](https://chitn.gitbook.io/aip/master): A proof-of-concept tool for Automation Jetty Design in the maritime field.

[2](https://chitn.gitbook.io/aip/master): More information about these courses can be found [here](http://bigocoding.com/). Those courses are highly recommended, not only becasue of their contents and a practical and highly illustrative approach they are delivered, but also because you will have supports from highly trained and enthuastic TAs to have a smooth start with DS & Algo.

## Briefing on the contents

Main contents of this page include:

* [Data structures and Algorithms](https://chitn.gitbook.io/aip/ds-algo)
* [Tips for coding interview](https://chitn.gitbook.io/aip/interview)

Please note that some sections starting with the prefix **ny** are not yet finished. However, they should be there and I keep their places to remind myself to finalise them gradually.

You may need some preparation before diving into the main contents above, please skip those parts if you are already familiar with what they are about:

* [Preparation](https://chitn.gitbook.io/aip/preparation) Markdown, basic Python and C/C++

## Table of contents

* [Preface](https://chitn.gitbook.io/aip/master)
* [Data structures and Algorithms](https://chitn.gitbook.io/aip/ds-algo)
  * [Algorithm complexity](https://chitn.gitbook.io/aip/ds-algo/algorithm-complexity)
  * [Algebra](https://chitn.gitbook.io/aip/ds-algo/algebra)
    * [Fundamentals](https://chitn.gitbook.io/aip/ds-algo/algebra/fundamentals)
    * [*ny* Number theories](https://chitn.gitbook.io/aip/ds-algo/algebra/number_theory)
    * [*ny* Modular arithmetic](https://chitn.gitbook.io/aip/ds-algo/algebra/mod_arithmetic)
    * [*ny* Primers](https://chitn.gitbook.io/aip/ds-algo/algebra/primers)
    * [*ny* Miscellaneous](https://chitn.gitbook.io/aip/ds-algo/algebra/miscellaneous)
  * [*ny* Combinatorics](https://chitn.gitbook.io/aip/ds-algo/combinatorics)
  * [Basic data structures](https://chitn.gitbook.io/aip/ds-algo/data-structures)
    * [Fundamentals](https://chitn.gitbook.io/aip/ds-algo/data-structures/basic)
    * [Stack and *ny* Queue](https://chitn.gitbook.io/aip/ds-algo/data-structures/stack-and-queue)
    * [*ny* Linked-list](https://chitn.gitbook.io/aip/ds-algo/data-structures/linked-list)
  * [Tree](https://chitn.gitbook.io/aip/ds-algo/tree)
    * [Heap](https://chitn.gitbook.io/aip/ds-algo/tree/heap)
    * [Trie](https://chitn.gitbook.io/aip/ds-algo/tree/trie)
    * [Disjoint Set Union](https://chitn.gitbook.io/aip/ds-algo/tree/disjoint-set-union)
    * [*ny* Binary search tree](https://chitn.gitbook.io/aip/ds-algo/tree/binary-search-tree)
    * [*ny* Red-Black tree](https://chitn.gitbook.io/aip/ds-algo/tree/red-black-tree)
    * [*ny* Segment tree](https://chitn.gitbook.io/aip/ds-algo/tree/segment-tree)
  * [Graph](https://chitn.gitbook.io/aip/ds-algo/graphs)
    * [Graph traversal](https://chitn.gitbook.io/aip/ds-algo/graphs/elementary-algorithms)
    * [Shortest paths](https://chitn.gitbook.io/aip/ds-algo/graphs/shortest-paths)
    * [Minimum spanning trees](https://chitn.gitbook.io/aip/ds-algo/graphs/spanning-trees)
    * [Topological sort](https://chitn.gitbook.io/aip/ds-algo/graphs/topo-sort)
    * [*ny* Connected components](https://chitn.gitbook.io/aip/ds-algo/graphs/connected-components)
    * [*ny* Maximum flow](https://chitn.gitbook.io/aip/ds-algo/graphs/maximum-flow)
    * [*ny* Miscellaneous](https://chitn.gitbook.io/aip/ds-algo/graphs/miscellaneous)
  * [Popular techniques](https://chitn.gitbook.io/aip/ds-algo/tech)
    * [Two-pointer technique](https://chitn.gitbook.io/aip/ds-algo/tech/two-pointer-technique)
    * [Recursion technique](https://chitn.gitbook.io/aip/ds-algo/tech/recursion-technique)
    * [Backtracking](https://chitn.gitbook.io/aip/ds-algo/tech/backtracking)
    * [*ny* Bit manipulation](https://chitn.gitbook.io/aip/ds-algo/tech/bit-manipulation)
    * [Sorting](https://chitn.gitbook.io/aip/ds-algo/tech/sorting)
    * [*ny* Greedy algorithm](https://chitn.gitbook.io/aip/ds-algo/tech/greedy-algorithm)
    * [*ny* Divide and Conquer](https://chitn.gitbook.io/aip/ds-algo/tech/divide-and-conquer)
    * [Dynamic programming](https://chitn.gitbook.io/aip/ds-algo/tech/dynamic-programming)
  * [Searching](https://chitn.gitbook.io/aip/ds-algo/searching)
    * [*ny* Binary search](https://chitn.gitbook.io/aip/ds-algo/searching/binary-search)
    * [*ny* Ternary search](https://chitn.gitbook.io/aip/ds-algo/searching/ternary-search)
    * [*ny* Hash table](https://chitn.gitbook.io/aip/ds-algo/searching/hash-table)
    * [*ny* Knuth–Morris–Pratt](https://chitn.gitbook.io/aip/ds-algo/searching/knuth-morris-pratt)
* [Tips for coding interview](https://chitn.gitbook.io/aip/interview)
* [Preparation](https://chitn.gitbook.io/aip/preparation)
  * [Markdown](https://chitn.gitbook.io/aip/preparation/markdown)
  * [Python](https://chitn.gitbook.io/aip/preparation/python-language)
  * [C/C++](https://chitn.gitbook.io/aip/preparation/c-c++)
* [Miscellaneous](https://chitn.gitbook.io/aip/miscellaneous)
  * [Syllabus to practice](https://chitn.gitbook.io/aip/miscellaneous/syllabus)
  * [Brief note on Design patterns](https://chitn.gitbook.io/aip/miscellaneous/design_pattern)
  * [Brief userguide for Git](https://chitn.gitbook.io/aip/miscellaneous/git_userguide)
  * [Tips/tricks in Latex](https://chitn.gitbook.io/aip/miscellaneous/tips_latex)
  * [Text-to-speech with Python](https://chitn.gitbook.io/aip/miscellaneous/tts_python)
