STEP IT STEP | We have been teaching since 1999. High-quality IT-education for adults and children. We prepare programmers, designers and system engineers who cannot be replaced by artificial intelligence. In order to achieve this, we teach how to understand tasks, run projects and work in a team, in addition to core knowledge.
Your browser Internet Explorer is out of date!
Please, use Google Chrome, Safari, Mozilla Firefox, Opera
Computer becomes more a work tool rather than a gaming device
Get full understanding of computer hardware
Get prepared for coding competitions
Define college pathway and future career while in school
Become independent and confident in your abilities
Programmers career allows you to work from anywhere in the world
All graduates will receive an international diploma
Our graduates often get internships in the big tech companies
This 3-year course is designed so students get to the level of solving real world technical problems that are used during technical interview at big tech companies at the end of the second year of study.
Year 1
Year 2
Year 3
CPU architecture. Position numeral systems (decimal, binary, hexadecimal).
Information theory basics. Measuring information. Understanding PC specification
Quick recap of C syntax. Variables. Loops. Conditions
Functions. Strings in C. Passing parameters. Scanf, printf, stdin
Arrays. Pointers
Introduction to algorithms. Insertion sort
Bubble sort
Merge sort
Counting Sort
Preprocessor. Compiler. Linker
Profiling code. Comparing performance of sorting algorithms
Bit-wise operations
Operations performance
Multi-dimension arrays
Search algorithms
Structures. Data alignment. Pointer to pointer
Linked list definition. Difference between list and array
Implementing linked list. Passing arguments to functions
Working on linked list. Basic operations, adding, deleting, searching on list
Introduction to file I/O
Introduction of two-way linked list
Implementing CPU. Opcodes
Adding JMP and CMP operations. FLAGS register
Coding for our CPU, improving operation set
Digital image formats. Creating bitmap
Practicing two-dimensional addressing using bitmap as an output
Stack concept. Using RPN to solve arithmetic expressions
Continue to work on RPN. Shunting-yard algorithm
Other examples of stack usage. Solving a maze using stack
Using stack to generate the maze
Definition of queue and dqueue Starting working with queues
Recursion. Factorial implementation. Tower of Hanoi
Fractals using recursion
Debugger in depth
Access violation. Stack overflow. Stack corruption
Debug and Release
AppVerifier
Developing of the algorithm. Measuring the time spent. Worst running case. Counting sort analysis
Bubble sort complexity analysis
Function growth speed (1, N, N^2, N^3). Finalizing bubble sort complexity analysis
Analysis of searching algorithms complexity. Algorithms with log(N) growth
Definition of brute force. Algorithms with O(N^2) complexity
Implementing password generator/cracker. Introduction to TSP
TSP brute force complexity analysis
Quick sort - classic implementation
Quick sort - pivot choosing strategies
Quick sort - hybrid optimizations
Bubble sort in-depth analysis. Cocktail sort. Comb sort.
Radix sort. Bucket sort
Stable sort. Sorting by multiple keys
Cycle sort and it's performance analysis
Definition of Process and Thread. Thread Creation
Events. Wait for multiple objects
Race condition. Mutex intro
Events. Wait for multiple objects
Mutex and Critical Section
Semaphores. Dining philosophers problem
Graphs definition and basic operations. Adjacency matrix
Incidence matrix. Adjacency list. Edges list
DFS algorithm
Implement recursive and iterative versions of DFS. BFS algorithm
Topology graph sorting. Introduction to SPF algorithms
Introduction to x86 instruction set. General purpose registers. MOV, LEA, ADD, SUB, MUL, DIV, JMP
Practicing writing assembler code. Working with MUL, DIV. Golden ratio derivation
Function call conventions. Working with stack. EBP and ESP registers
Debugging assembler code
LOOP command and applications. REP MOVS command
MMX extension set intro
MMX packing and unpacking instructions
Refresh on graphics formats. Opening and writing BMP files. YUV color space
YUV444, 422 and 420 formats. Working with luminance. Edge detection starting
Practice YUV schemes. Chroma vs luma. Noise generation
De-noising algorithms. Image blurring
Introduction to the digital video formats. AVI/RIFF parsing
Creating of AVI file
Generating text
Generating of advanced animation
Generating fractals
Console graphics, practicing 2D addressing. Bit blitting practicing
Hash functions. Hash tables. Open addressing collisions resolving algorithm
Separate chaining. Comparing of separate chaining and open addressing
Hash functions for non-integer data. Hashing the book
Clustering. How to build hash function for a certain table size
Rehashing
Binary search tree. Basic operations
Deleting elements from BST. Searching performance analysis in the binary search tree. Balanced BST
AVL balanced BST. Building AVL tree, inserting elements
Rebalancing AVL tree. Deleting elements in AVL tree
Red-black trees introduction. 2-3-4 BST
Greedy algorithms. Activity selection problem
Coin change problem. Fractional Knapsack Problem
Dynamic Programming vs Greedy Algorithms. Coin change problem using DP
DP Solving Strategy (Recursive and Tabulation). Subset Sum Problem
Lumber Cutting Problem (Cutting a Rod). 0-1 Knapsack Problem. Recursive approach
0-1 Knapsack Problem. Memorization approach
CPU architecture. Position numeral systems (decimal, binary, hexadecimal).
Information theory basics. Measuring information. Understanding PC specification
Quick recap of C syntax. Variables. Loops. Conditions
Functions. Strings in C. Passing parameters. Scanf, printf, stdin
Arrays. Pointers
Introduction to algorithms. Insertion sort
Bubble sort
Merge sort
Counting Sort
Preprocessor. Compiler. Linker
Profiling code. Comparing performance of sorting algorithms
Bit-wise operations
Operations performance
Multi-dimension arrays
Search algorithms
Structures. Data alignment. Pointer to pointer
Linked list definition. Difference between list and array
Implementing linked list. Passing arguments to functions
Working on linked list. Basic operations, adding, deleting, searching on list
Introduction to file I/O
Introduction of two-way linked list
Implementing CPU. Opcodes
Adding JMP and CMP operations. FLAGS register
Coding for our CPU, improving operation set
Digital image formats. Creating bitmap
Practicing two-dimensional addressing using bitmap as an output
Stack concept. Using RPN to solve arithmetic expressions
Continue to work on RPN. Shunting-yard algorithm
Other examples of stack usage. Solving a maze using stack
Using stack to generate the maze
Definition of queue and dqueue Starting working with queues
Recursion. Factorial implementation. Tower of Hanoi
Fractals using recursion
Debugger in depth
Access violation. Stack overflow. Stack corruption
Debug and Release
AppVerifier
Sign upYes, for this program there is a homework for each class. Students can do the assignment and upload it via their MyStat portal.