Explore a technique spammers use to steal sensitive data and launch cyber attacks: spam.
I'm currently pursuing Ph.D. degree in Computer Engineering from the University of Cyprus. I'm also working at KIOS Research and Innovation Center of Excellence. My research area includes Cyber Security, Algorithms, Machine Learning. In my free time, I love watching cricket and movies.
Here's what I've written (so far):
Baeldung on Computer Science
- Networking (39)
- Algorithms (27)
- OS (23)
- Security (22)
- Trees (11)
- Data Structures (9)
- Graphs (8)
- Programming (7)
- Math and Logic (6)
- Path Finding (5)
- Software Architecture (4)
- Sorting (2)
- Searching (2)
- Core Concepts (2)
- Concurrency (2)
- Artificial Intelligence (2)
- Web (1)
- Machine Learning (1)
Explore different types of backups in computing.
Explore web sessions in detail.
Explore multiplexing and demultiplexing techniques.
Learn about an unstructured and quick-to-perform testing technique: ad hoc testing.
Explore a modern security mechanism used for authentication: one-time password (OTP).
Explore two methods for splitting databases into parts to manage them efficiently: sharding and partitioning.
Explore brute-force attacks in detail.
Explore a technique used to inspect and analyze TCP traffic on a network: snooping TCP.
Explore an alternative to traditional passwords: passkeys.
Explore the basic concept of middleware, along with an example.
Learn about the meet-in-the-middle attacks (MITM).
Explore two popular network protocols: Telnet and Secure Shell Protocol (SSH).
Learn how Simple Network Management Protocol (SNMP) works.
Learn about a protocol used for the reliable delivery of data packets in networks: Selective Repeat Protocol (SRP).
Explore the shim concept in software engineering with an example.
Learn how an attacker could launch wireless disassociation attacks on devices connected to a network.
Explore three popular network-switching techniques: circuit, packet, and message switching.
Explore Belady’s anomaly and an example demonstrating its existence in computer memory.
Learn the vertex coloring problem.
Explore a unique graph data structure: a tournament graph.
Explore the credit assignment problem in reinforcement learning with an example.
Learn about the order-one crossover operator in Genetic Algorithms.
Explore a priority-based CPU scheduling algorithm.
Explore two popular network security devices: gateway and firewall.
Learn about functional decomposition in detail with a practical example.
Explore two popular information security variants: network-level and application-level security.
Learn about external fragmentation in the operating system with a practical example.
Explore the state space search concept in detail with an example.
Explore two variants of virtual local area networks (VLAN): standard and extended VLAN.
Explore multiobjective algorithms and Pareto frontiers with examples.
Explore the importance of keywords and reserved words.
Explore the basics of octet string along with the applications.
Explore eavesdropping attacks with a practical example.
Explore the rail fence cryptography technique with an example.
Explore two crucial steps in a genetic algorithm: crossover and mutation.
Explore the fundamental idea behind replay attacks with a practical example.
Explore the different strategies that file systems use to manage concurrent read and write operations.
Learn how to use 1’s complement technique to detect errors in data transmission.
Explore two types of AI agents: goal-based and utility-based agents.
Explore a memory management technique: inverted paging.
Explore the general idea of cloud, grid, and cluster from a computer networking perspective.
Explore the piggybacking technique which allows data centers to connect with each other by using the existing connections of other organizations.
Explore two networking design structures: edge and core networks.
Explore system calls and system interrupts in detail.
Explore direct memory access (DMA) in detail.
Explore two writing methods for memory: sequential and random writes.
Explore two popular concepts in radio frequency technology: baseband and broadband.
Explore the basics of firmware and operating systems.
Explore the role of routing and forwarding tables in networking.
Explore the Network File System in detail.
Learn how to calculate the password entropy with an example.
Explore directories and folders, which are part of a computer’s file system.
Learn about the trapdoor concept in cryptography.
Explore routing, forwarding, and switching with examples.
Explore two types of networking protocols: stateless and stateful.
Learn about the procedure calls in programming.
Explore several reasons for packet loss in UDP.
Explore stream and block ciphers in detail.
Learn about some memory-related concepts in the operating system: private bytes, virtual bytes, and working sets.
Explore three popular data compression techniques: zlib, gzip, and ZIP.
Explore two techniques that can create a channel of information flow in networking: socket and RPC.
Compare two searching methods: binary search and hash lookup.
Explore several types of DNS records and learn how to use the to redirect the traffic.
Learn about antivirus software.
Explore the definition and variants of ransomware.
Explore various methods in I/O operations.
Learn about viruses, worms, and trojans in detail.
Explore the basics of socket and socket programming.
Learn the basics of network bandwidth, latency, packet time in detail.
Learn to check if a given number is a Fibonacci number or not.
Learn about the TLS and SSL protocols.
Explore AVL and red-black tree data structures.
Explore a general overview of the ports used by TCP and UDP sockets.
Explore the basic concept of hostname in networking.
Learn about the IP prefix concept in computer networking.
Explore two tree data structures: binary tree and binary search tree.
Learn about the maximum length of a URL in different browsers.
Explore the concept of random walk in detail.
Explore IP address, broadcast address, network address, and subnet mask thoroughly.
Explore graph density in detail.
Learn about a self-balancing tree data structure: B-tree.
Learn about five variations of the operating systems: batch, distributed, time-sharing, network, real-time operating system.
Explore fragmentation and its variations: internal and external.
Explore flow and congestion control mechanisms in TCP.
Explore two memory allocation techniques: segmented paging and paged segmentation.
Explore three popular ADTs: list, queue, stack.
Explore the fundamentals of computer programs and instructions with examples.
Explore the knight’s shortest path problem on a chessboard.
Compare two very close yet different graph concepts in graph theory: minimum spanning tree, minimum bottleneck spanning tree.
Explore two CPU units in a computer: program counter and instruction register.
Explore the general idea of greedy and heuristic algorithms.
Explore the linked list data structure and its variations.
Explore two important layers in the OSI model: the transport and network layer.
Learn about two popular types of events in the OS: trap and interrupt
Explore the fundamentals of virtual memory and swap space in the OS.
Explore the concept of deadlock in OS thoroughly
Explore the theory behind time and space complexity.
Explore the basic idea of divide and conquer and dynamic programming paradigms.
Learn about Virtual Memory and its importance in modern Operating Systems.
Learn about the IP addresses and networking ports in detail.
Learn about bit stuffing in detail.
Explore various data units in computer networking.
Learn about ports and sockets in networking.
Learn about the time complexity of the tree traversal algorithms.
Learn about integer linear programming (ILP).
Learn how to find a minimum cut by calculating the maximum flow value of a graph.
Learn about the lifecycle of a process in an operating system.
Explore the insertion process of the binary search tree in detail.
Explore 12 network protocols that are most widely used.
Explore the Sieve of Eratosthenes algorithm in detail.
Learn how to find the sum of digits of a factorial.
Explore the general idea of the backtracking technique.
Explore the OSI model in detail.
Learn how to calculate the height of a binary tree.
Explore the heap insertion algorithm.
Learn about the process of max-heapify in a binary heap.
A guide to a dynamic approach for solving the Traveling Salesman Problem.
Explore two algorithms for matrix multiplication: the naive approach and the Solvay Strassen method.
Learn about the cut property in a minimum spanning tree.
Explore the concept of a complete and almost complete binary tree.
Learn about the FIFO page replacement in detail.
Explore the branch and bound method in detail.
Discuss the worst-case scenario for time complexity of the Quicksort algorithm.
Analyze the pseudocode of the bubble sort algorithm and its time complexity.
Learn how to find the total number of spanning trees and minimum spanning trees in a graph.
Learn about the Floyd-Warshall algorithm to find all pair shortest distance in a weighted directed graph.
A quick and practical overview of finding articulation points of a graph.
Discuss the Cook-Levin theorem to show SAT is an NP-Complete problem.
Learn about the concept of incident edges and vertices in both directed and undirected graphs.
Learn how to calculate the maximum number of edges in a directed graph.
Learn about the 0-1 Knapsack problem, why it is NP-Complete, and how it is solvable in pseudo-polynomial time.
Learn about the bipartite graphs in detail.
Learn the key differences between Hamiltonian and Euler paths.
Learn about the Bellman Ford algorithm to find the shortest path in a weighted graph.