Learning SQL

For those new to it, SQL can be difficult initially to wrap your head around.  One of the reasons is because it requires a different type of thinking from other languages like Java, Python, or C. You have to learn to think in sets (remember all those … [Continue reading]

B+ Trees

B+ Trees are very efficient search tree data structures that are related to binary search trees.  They are particularly useful in indexing situations where the entire data set cannot fit into main memory at one time.  Each node in a B+ Tree contains … [Continue reading]

Binary Trees

Binary trees are a very fundamental data structure in computer science.  As you continue to learn and explore in different sub-domains of CS, you'll see them pop up quite frequently.  Here are some things you should Binary Trees and their … [Continue reading]

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

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]