Stacks
Queues
Sorting
Searching
Graph Traversal
Time & Space Complexity
Dynamic Programming
Divide & Conquer
Greedy Algorithms
Programming: Object-Oriented Programming (OOP)
C++ Software Development
Procedural and Functional Programming Concepts
Systems & Hardware: Computer Architecture
Instruction Set Architecture
Memory Hierarchy
Pipelining
Parallel Processing
Digital Logic
Combinational and Sequential Circuits
Finite State Machines
Mathematics & Theory: Discrete Mathematics
Set Theory
Logic
Graph Theory
Combinatorics
Automata Theory
Boolean Algebra
Software optimization: Capable of designing efficient computational solutions by applying dynamic programming
divide and conquer
and greedy algorithm techniques
Computer systems: Familiar with instruction set architectures
memory hierarchy
pipelining
and parallel processing techniques to optimize hardware-software interaction