This lab has three parts:

1. In the first, you’re asked to create a Windows-based console application in C++ using Microsoft Visual Studio. As you’ll see, your application needs to test drive a powerful matrix template library called Eigen, it needs to output some stuff to the screen, and it needs to be shareable with others so it can run on any Windows computer.

2. In the second, you will repeat the above using Matlab by creating and running an m-file that achieves pretty much the same thing as your program. Here I’m after you getting a glimpse at the differences between C++ and Matlab for these similar basic tasks.

3. In the third, you will put your newfound skills to work to do a (very crude) estimation of the width of our lab room (recall “Our First Survey” that we did a week or so ago).

These three parts are described in the three lessons below.

Why this lab?

This lab is pretty basic, I admit. But if you can’t do it then you’ll be in trouble later. It’s important because it helps us make sure everyone’s got some key computational tools in their tool belts before proceeding with the more detailed and computation heavy labs. As you program your own network analyses and adjustments in this course I want you to have the programming basics well in hand. And it’s hard to express how much the development of good practices now will help you in the future. It’s a fundamental literacy thing: doing geomatics networks without this stuff in hand is analogous to listening to a lecture without knowing the language in which it’s being given.

And why both C++ and Matlab? Mainly because they both play important roles. C++ is a programming language and Matlab is a numerical analysis tool. Generally, I like to use Matlab for quick calculations, prototyping algorithms, and visualizing what my data are saying. And I like C++ because (even though it may seem like more work to set things up in a super simple console-based lab like this) it’s arguably more powerful and portable in our field. In balance for us, you can think Matlab for quick numerical dev, checks, and visualization, and think C++ for faster more portable applications.

(And if you’re already a pro at this, then go ahead and whip this off. That’s awesome.)


The due dates for this work are outlined on our course page.


A detailed marking rubric will be handed out and discussed in class.

Individual vs. team

This lab is to be completed and submitted by every student individually.

Lab report template

A lab report template will be handed out and discussed. You are asked to use this report format when submitting your lab.