Software Engineer at IBM — more about me at https://cernera.me/

This article will introduce you to the basic concepts of relational calculus. I will provide syntax, examples, and illustrations of several expressions to hopefully allow for easier comprehension. If you haven’t done so already, I would also suggest reading my article on relational algebra, which is another example of a relational query language.

Relational tuple calculus is a **non-procedural query language**. Put simply, this means that instead of describing *how *to retrieve data, you simply specify the data that you *want *to retrieve and the query language takes care of the rest. …

This article will introduce you to the basics of relational algebra and help you become familiar with reading and writing algebraic expressions. I would like this to be a guide for you to continually reference when you are dealing with relational algebra and some of its basic operations. Hopefully I have written this article in such a way that will simplify relational algebra and allow you to confidently understand some of its concepts.

Relational algebra is a **procedural query language** that takes relations and conditions as input, performs one or several operations (queries) on those relations, and outputs another relation…

In a **previous article**, I explained how to convert a regular expression to postfix notation by using the Shunting-Yard algorithm. This is the first step you must do before converting a given regular expression to an NFA. The purpose for using postfix notation is to rearrange the symbols and operations in such a way that the expression can be read from left to right, maintain the order of operations for regular expressions, and not have to handle parsing parentheses.

In the last article, we used the regular expression

, which returns all strings that begin with the letter **a(a+b)*b****a…**

My latest coding project involved converting a regular expression to a nondeterministic finite automata (NFA) diagram (you can learn more about NFAs by reading one of **my latest articles** on my blog). My program would take in a regular expression as an input, such as `a(a+b)*b`

** **and output an NFA diagram with states and transitions that would represent the given regular expression.

Early on into the coding, I ran into an issue. I needed to figure out a way to properly read in the regular expression so that my program would be able to build the NFA piece by piece…

Ray tracing is a graphics technique for generating realistic-looking images by using vectors to trace pixels in an image plane and rendering the effect each ray’s encounter with other parameters such as objects, lights, shadows, and reflections.

The first step in any ray tracer is **ray generation. **A **ray **is a line in 3D space that begins at one endpoint and extends infinitely in one direction. The first rays a ray tracer makes are called **viewing rays**. These rays generate from the viewer’s eye (sometimes called the “camera”) and extend outward towards the viewing plane. …

Before you continue reading, I would recommend reading my “Introduction to Deterministic Finite Automata (DFA)” article before reading this one, as this is a continuation of that article.

Introduction to Deterministic Finite Automata (DFA) → https://medium.com/@gregorycernera/introduction-to-deterministic-finite-automata-dfa-40aac64b9895

Similar to a DFA, an **NFA is a state machine consisting of states and transitions that can either accept or reject a finite string**. And like a DFA, we must use circles to represent states, and directed arrows to represent transitions. But, what’s the difference?

Essentially, NFAs have less restrictions than DFAs, and can therefore make complicated automata easier to understand and depict in…

A DFA is a state machine consisting of **states** and **transitions** that can either accept or reject a finite string, which consists of a series of symbols, and compare it to a predefined language across a predetermined set of characters. We use **circles **to represent states, and** directed arrows** to represent transitions. Every state *must *have each symbol going outwards from the state, or else it will not be defined as a DFA.

DFAs allow for an easier use of certain projects and applications that switch between states of validity and invalidity.** **…

Leading a team is not easy. There are a million different methods to plan and execute a project. Some of these methods will be very successful, others not so much. Whether you are an effective or ineffective leader will ultimately determine whether or not your team will succeed.

This article focuses on a team building some sort of software application. However, these tips can apply to anyone looking for advice on helping guide their team.

I want to emphasize the term** small team**, because I don’t know what it’s like to manage an entire department of employees (yet). I don’t…