Architectural patterns in software engineering describe the way a system is designed. They are reusable solutions to problems that occur widely within the domain of software engineering. One goal of architectural patterns is to separate the UI programming from the business logic. When following an architectural pattern, the code is unlikely to become ‘spaghetti code,’ because the programmer now has parameters that they must work within when building their program.

The pattern discussed here today is the MVVM pattern. MVVM stands for Model-View-ViewModel. One of the main aims of MVVM is to separate the View from the Model, to ensure…

Design patterns deal with the way code is organized in a program. The main goal is to separate the UI programming from the business logic, and each design pattern does this in its own way. Another positive thing about following a design pattern is that the code is unlikely to become ‘spaghetti code,’ because the programmer now has parameters that they must work within when building their program.

The design pattern discussed here today is the MVC pattern. MVC stands for Model-View-Controller. This pattern is made up of three interconnected components and was originally designed for building desktop GUI applications…

Photo by JOSE LARRAZOLO on Unsplash


A fixed (or fixed-size, fixed-length) array is an array that has a max amount of items. Such arrays are used when the programmer knows how many elements an array should hold — such as the number of enemy spaceships a game should display on-screen at once or the value of an 8-bit character.

Some languages, such as C, Objective-C, and C++, use fixed arrays, while more modern languages use arrays that aren’t set in size. In a language that uses fixed arrays, once you set the size of the array — it does not change. For example, if a fixed…

Photo by Sharon McCutcheon on Unsplash


An array is a collection of objects. An array is one of the most frequently used data types in software development. The most fundamental type of array is a linear array, also known as a one-dimensional array. The objects in an array are accessed by their index within the array. Arrays start at index zero, meaning that if there are two items in an array, the indices of those items will be 0 and 1, respectively.

An array can perform actions such as appending an item, removing an item, and inserting an item at a specific index. In most programming…

Stack Underflow — An error called when an item is called from a stack, but the stack is empty.

Stack Overflow — An error called when an item is pushed onto a stack, but the stack is full. (Also a website you can visit to obtain answers to any programming related questions).

Photo by James Hon on Unsplash


The official definition of recursion is “a computer programming technique involving the use of a procedure, subroutine, function, or algorithm that calls itself one or more times until a specified condition is met at which time the rest of each repetition is processed from the last one called to the first.”

Recursion can also be thought of as defining something in terms of itself. Think of when someone defines a word with the word. When recursion is used in computer science, programming, software engineering, etc — it’s used as a way to solve a problem with subsets of that problem…

Photo by Saketh Garuda on Unsplash

It’s an Application Programming Interface.

Ok, but what *is* that?

A quick article for new programmers, and those who are just curious. 👇

APIs are actually quite easy to understand.

An API can be thought of as the middleman of communication between two systems. APIs allow devices, web servers, and software to talk with each other. They are the drivers of many of the digital systems we use today.

An example of an API being used: The weather app on your phone retrieving the most recent weather report.

Another example: Pay with PayPal integrated with an eCommerce store.

The underlying…

Exordium & Etymology

Asymptotic notation describes the runtime of an algorithm based on the increasing input size of the algorithm. Asymptotic notation is important in computer science, as it helps engineers gauge the efficiency of the algorithms they write. To get a clear understanding of asymptotic notation, the etymology of the two words can be seen below. (You can use the tool to dig into the history of words).

asymptotic — “having the characteristics of an asymptote,” 1670s, see asymptote.

asymptote — “straight line continually approaching but never meeting a curve,” 1650s, from Greek asymptotos “not falling together”. (Wikipedia definition: an asymptote…

Photo by Enrique Ortega Miranda on Unsplash


In software development, coupling refers to the degree to which modules are connected. The word’s etymology goes back to Latin and means ‘the joining of one thing to another’ or ‘fastening together.’ So, when thinking about coupling, think about how objects are connected to one another.

Along with some other concepts, coupling was invented in 1968 as part of Larry Constantine’s ‘structured design.’ Structured design focuses on mapping out ‘good’ programming practices aimed at maintainability and adaptability.

Tight and Loose Coupling

Coupling can either be tight or loose — sometimes referred to as high or low. Modules are considered tightly coupled when they depend…

What is a Dependency?

In software engineering, there is a complex-sounding technique called dependency injection that aims to help organize code modularly by creating objects that depend on other objects. The objects that other objects depend on are called dependencies.

The use of dependency injection helps solve the problem known as ‘spaghetti code.’ If you haven’t heard of this term, it refers to software that is ‘held’ together by bad design and architectural planning, in which each object is connected to one another. This makes codebases hard to maintain. …

Andrew Lundy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store