This repository contains tasks for the educational practice in programming.
First semester includes the basics of programming in C language, essential algorithms and data structures, data representations and file management, lexical analysis, use of version control systems and other command line tools.
.
├── week01 : introduction to the C programming language
│
├── week02 : algorithm complexity analysis
│
├── week03
│ ├── mostCommonElement : most common element search algorithm
│ │
│ ├── search : binary search algorithm
│ │
│ └── smartQSort : quick sort implementation using insertion sort for small partitions
│
├── week04
│ ├── binaryRepresentation : addition of integers using binary representation
│ │
│ ├── modulesAndFiles : module architecture of programs, basic file handling
│ │
│ └── phoneBook : simple command line app for managing phone records
│
├── week05
│ ├── advancedBracketBalance : parentheses validation algorithm
│ │
│ ├── postfixCalculator : evaluation of expressions in postfix notation
│ │
│ └── sortStation : infix to postfix form transformation of expressions
│
├── week06
│ ├── counting : cyclic linked lists
│ │
│ ├── mergeSort : merge sort algorithm
│ │
│ └── sortedList : sorted linked lists
│
├── week07
│ ├── parsingTree : parse trees of ariphmetic expressions
│ │
│ └── searchTree : dictionary implemented with binary search tree
│
├── week08
│ └── avlTree : dictionary implemented with AVL self-balancing tree
│
├── week09
│ └── hashTable : word frequency analysis using hash tables
│
├── week10
│ └── states : states simulation using graphs
│
├── week11
│ └── substring : substring search algorithm
│
└── week12
└── realNumbersLexer : lexical analysis of real numbers using finite automata