Lists, Stacks, and Queues

Lists, stacks, and queues are some of the most fundamental data structures to computer science.  Below are some links to information you may find helpful as you explore these data structures: Shaffer's book, Data Structures and Algorithm … [Continue reading]

C++ and Catch – Adding your Own Main Method

When you begin coding on a project, it is perfectly acceptable and even advisable to allow the Catch library to generate the main method for you.  That is what the #define CATCH_CONFIG_MAIN (very first line in the tests.cpp file)  directive tells … [Continue reading]

Let’s Review Pointers

Pointers cause a lot of heartburn among students.  Hopefully this post will address some or all of the things you may be struggling with in the world of pointers. For pointers to make sense, particularly the parts of them that are important for … [Continue reading]

Memory Diagrams

The fact that c++ allows programmers to manage memory directly is one of its great strengths. It is also something that can lead to a ton of tough debugging and hair-pulling.  There are quite a few "things" a programmer can use to avoid most of these … [Continue reading]

Prep for Data Structures

Data structures is a challenging course.  I routinely receive requests for information about how to prepare for the course or what material to review.  Generally speaking, the most important thing to do is review and get comfortable with C++ and … [Continue reading]

Database Design – The ER Model

The Entity-Relationship Model is a data model that helps us describe the organization of data for a particular scenario (business, or some other need).  It was developed by Peter Chen and originally published in 1976.  What we get is an abstract … [Continue reading]


SQL is the language of relational databases.  Solving problems efficiently with SQL will require you to think in sets rather than procedurally.  Hopefully our foray into relational algebra has helped you hone those skills.  Some reading: Pro … [Continue reading]

The Relational Model

As we being our foray into the world of database systems, our first stop is at the Relational Model of Data.  In the relational model, some of the basic components are tuples, relations, and relationships.  It was originally developed and proposed in … [Continue reading]

Command Line Args in C++

As you're already familiar with, when you call some functions, you need to pass arguments to them.  So, what about main?  There are two different function headers for he main method in C++ that we can use: and Now, you should ask … [Continue reading]

Data Structures Intro

The first few weeks of the semester, we'll take a deep(er) dive into pointers and dynamic memory management using C++.  To get started, I wanted to provide you some links to useful information. - A treasure trove of software … [Continue reading]