Latest Posts
See what's new
What is the Purpose of Cache Memory and How Does It Work?
On January 14, 2023 In Computer Architecture
Cache memory is an important component of modern computer systems, as it enables data to be accessed quickly and efficiently. This article will explain the purpose of cache memory, how it works, its benefits and types as well as when it should be used rather than main memory. With this knowledge in hand, you
How PCI-Express and PCI work: An Introduction
On January 13, 2023 In Computer Architecture
Peripheral Component Interconnect (PCI) was developed by Intel as a processor-independent bus. PCI is completely in the public domain and became established as a standard for high-speed connections of peripheral devices to the motherboard. Because of its versatility, it has increasingly been used in server systems in the 1990s. PCI Express (PCIe) is a
From the Computer Bus to Point-to-Point Interconnect: An Overview of Bus Interconnection Structures
On January 6, 2023 In Computer Architecture
A bus in computer architecture is a medium for transmitting information between devices. In a typical computer, you have a central processing unit, system memory, and some I/O devices that need to communicate with each other. Busses connect all of these components together as a shared transmission medium. This means a signal sent by
How does a CPU Execute Instructions: Understanding Instruction Cycles
On October 15, 2022 In Computer Architecture
In this post, we will understand how a CPU executes instructions on a high level by illustrating the instruction cycle using a step-by-step example. We also cover interrupts and how they affect the instruction cycle. A CPU executes instructions using a cycle of steps known as the instruction cycle. What is an Instruction Cycle?
What is the Von Neumann Architecture
On October 4, 2022 In Computer Architecture
The von Neumann architecture is a foundational computer hardware architecture that most modern computer systems are built upon. It consists of the control unit, the arithmetic, and logic unit, the memory unit, registers, and input and output devices. The key features of the von Neumann architecture are: Data as well as the program operating
What is the Liskov Substitution Principle: An Explanation with Examples in Java
On September 18, 2022 In Design Patterns, Software Design
In this post, we will understand the Liskov substitution principle and illustrate how it works with an extended example in Java. The Liskov substitution principle states that an object of a superclass should be replaceable with an object of any of its subclasses. It is one of the SOLID design principles in object-oriented software
What is the Open/Closed Principle: An Explanation with Examples in Java
On August 17, 2022 In Design Patterns, Software Design
The open-closed principle states that classes and modules in a software system should be open for extension but closed for modification. It is one of the SOLID principles for software design.In this post, we will build a step-by-step understanding of the open/closed principle using examples in Java. Why Should You Apply the Open/Closed Principle?
The Single Responsibility Principle
On June 19, 2022 In Design Patterns, Software Design
What is the Single Responsibility Principle? The SRP is often misinterpreted to stipulate that a module should only do one thing. While designing functions only to have one purpose is good software engineering practice, it is not what the single responsibility principle states. In a nutshell, the single responsibility principle is one of the
What is the Best Math Course for Machine Learning
On June 7, 2022 In Deep Learning, Machine Learning, Mathematics for Machine Learning
Learning the required mathematics is often perceived as one of the biggest obstacles by people trying to get started in machine learning. Mathematical concepts from linear algebra, statistics, and calculus are foundational to many machine learning algorithms. Luckily, the past several years have seen the proliferation of several online courses and other learning resources.
What is the Sliding Window Algorithm?
On May 29, 2022 In Algorithms, Computer Vision
The sliding window algorithm is a method for performing operations on sequences such as arrays and strings. By using this method, time complexity can be reduced from O(n3) to O(n2) or from O(n2) to O(n). As the subarray moves from one end of the array to the other, it looks like a sliding window.