Difference between revisions of "DSA Software Development Environment"
Line 224: | Line 224: | ||
− | When submitting an assignment, all you have to do is submit a zipped version of your <span style="color:#FF0000"><code>myandrewid</code></span> directory with your three source code files and your CMakelists.txt. | + | When submitting an assignment, all you have to do is submit a zipped version of your <span style="color:#FF0000"><code>myandrewid</code></span> directory with your three source code files and your CMakelists.txt file. |
− | + | These files will be unzipped and moved it to the <span style="color:#FF0000"><code>src</code></span> directory on the marker's computer, along with the all the other students submission. We then run CMake, launch the <span style="color:#FF0000"><code>.sln</code></span> file, compile, install, and check each executable in <span style="color:#FF0000"><code>bin</code></span> against the blind test data file in the <span style="color:#FF0000"><code>data</code></span> directory. Because we build the solutions the same way, you are guaranteed that your code will compile, provided you have followed this procedure. | |
== Humour == | == Humour == |
Revision as of 10:49, 21 July 2024
Contents
This guide provides a step-by-step guide to downloading, installing, and using the software required to submit an assignment for course 04-630 Data Structures and Algorithms for Engineers. This environment is required to ensure that software developed by students can be compiled directly by the course instructor after it has been submitted.
Follow these instructions exactly as they are stated. Do not be tempted to skip through them, assuming that you will be able to figure it out yourself. You might, but it is more likely you will miss something small but important and it won't work as required. Take your time, follow these instructions carefully, and everything will work.
Operating System
I assume you are running Windows 11.
I strongly recommend you turn off the option in the File Explorer to hide file extensions. To do this, on the File Explorer menu bar click the "..." icon and select Options > View. Make sure the tick box labelled "Hide extensions for known file types" is not ticked. If it is ticked, you will have problems identifying certain files later on (e.g. invoking the example.sln solution file to launch the Visual Studio C++ compiler). Select "Apply" after you untick the box.
C/C++ Compiler
Download Microsoft Visual Studio Community.
You can download the required installer from the Microsoft website or here.
Run the installer and follow the instructions. Be sure to install Visual Studio Community 2022.
Select Desktop Development with C++ and click "Install" or "Install While Downloading".
CMake
Download CMake binaries from here. At time of writing the latest version is 3.30.0.
You can opt for either the WIN32 installer (cmake-3.30.0-windows-x86_64.msi) or the Windows zip file. The installer has the advantage that it gives you the option to update your system path automatically (which you should take by clicking the appropriate radio button during the installation process). If you choose the installer option, note that if you already have CMake version 3.4 or earlier you must uninstall it first.
Here are the installation steps.
Click "Next".
Click the checkbox to accept the term, and click "Next".
Click the checkbox to add CMake to the PATH environment variable, and click "Next".
Use the default install path, and click "Next".
Click "Install".
Click "Yes" to enable the files to be installed.
Click "Finish".
DSA Data Structures and Algorithms for Engineers Repository
Copy the DSA repository to the C:
drive:
- Download a zip archive with all the files from here.
- Copy it to
C:
drive and unzip it so that you have a directory calledC:/DSA
.
C:/DSA
has with a sub-directory structure explained in class. For our purposes here, there is an C:/DSA/assignments
directory and it will contain an example C:/DSA/assignments/assignment0
sub-directory. Later on, you will generate C:/DSA/assignments/assignment1
and C:/DSA/assignments/assignment2
, and so on.
There is also a C:/DSA/lectures
sub-directory. This has some simple examples of standard data structures and algorithms. Later in the course, I will make available the code from the lectures, together with instructions on how to add it to the repository: the source code will go in the C:/DSA/lectures/src
sub-directory and test data will go in the C:/DSA/lectures/data
sub-directory.
The next step is to build a Visual Studio .sln
solution file so that you can compile (i.e., build) the DSA assignment0 executable. To do this, you need to run CMake against the C:DSA/assignments/assignment0
directory (where you will find the main CMakeLists.txt
file). We use assignment0
because it is a dummy assignment but you will follow exactly the same procedure for all the real assignments.
Launch the CMake GUI from the Windows 11 taskbar.
In the Where is the source code: type (or browse to) C:/DSA/assignments/assignment0
In the Where to build the binaries: type (or browse to) C:/DSA/assignments/assignment0/build
Select File > Delete Cache from the top menu (you must do this the first time in case there is an old invalid configuration in the DSA directory)
Click Configure
Select Visual Studio 17 20122 from the drop-down menu as the generator for the project
Click Finish and watch CMake configure your project (this will take a few seconds so please be patient).
The text in dialogue box will be highlighted in red, so click Configure one more time and everything should be fine.
Click Generate to create the Visual Studio assignment0.sln
file in the C:/DSA/assignments/assignment0/build
directory.
Now you are ready to launch Visual Studio and build the DSA assignment0 executable.
Go to the C:/DSA/assignments/assignment0/build
directory and double-click the assignment0.sln
file. This launches Microsoft Visual Studio.
Select Release
in the Solutions Configuration box (this is located left of centre on the toolbar and defaults to Debug
).
Select Build > Configuration Manager from the menu and make sure the INSTALL check-box is ticked.
Note that you will have to tick this check-box every time you rebuild the .sln
solution file with CMake. If you don't do this, then your new executable won't be installed in the bin
directory and you'll end up becoming very confused because none of the changes you make to your source code will be reflected in the executable you run from the bin
directory (because its an old version from a previous compilation).
Select Build > Build Solution from the top menu.
This will compile and link the programs in the the C:/DSA/assignments/assignment0/src
sub-directory and install then in the C:/DSA/assignments/assignment0/bin
directory.
Good! Now you are now ready to run the example dvernon.exe
application that is provided with the DSA release. To do this, double click the dvernon.exe
</span> executable in C:/DSA/assignments/assignment0/bin
.
Inspect the source code for this dummy assignment in Visual Studio.
Open exampleApplication.cpp
in the Source Files folder, and read the internal documentation and the code. Do the same with exampleImplementationion.cpp
.
Now open example.h
in the Header Files folder and read the internal documentation and the code.
Now that you understand what this program does, open assignment0Input.txt
file in C:/DSA/assignments/assignment0/data
and inspect its contents. After running dvernon.exe
, open the assignment0Output.txt
file, also in the C:/DSA/assignments/assignment0/data
directory, and inspect its contents. Verify that the contents are as you expect them to be.
Finally, create your own (dummy) assignment program. To do this, follow these steps.
- Create a directory with your Andrew Id, e.g.
C:/DSA/assignments/assignment0/src/myandrewid
- Copy the source files (
.c, .cpp, .h
) from thedvernon
directory to the myandrewid directory. - Edit the
C:/DSA/assignments/assignment0/src/CMakeLists.txt
file and replaceADD_SUBDIRECTORY(dvernon)
withADD_SUBDIRECTORY(myandrewid)
, wheremyandrewid
is your Andrew Id. - Edit the
C:/DSA/assignments/assignment0/src/myandrewid/CMakeLists.txt
file and replacedvernon
withmyandrewid
, wheremyandrewid
is your Andrew Id. - Run CMake again.
- Re-open the
assignment0.sln
file (remember, it's in theC:/DSA/assignments/assignment0/build
directory). - Your files should now be visible (and the dvernon ones will no longer be there) and you can now edit your code (change dvernon to your Andrew ID in the assignment0Application.cpp file, compile it, and install it in the
bin
directory by selecting Build > Build Solution from the top menu. - Make sure that the INSTALL check-box is ticked when you select Build > Configuration Manager from the menu to ensure that your executable is installed in the
C:/DSA/assignments/assignment0/bin
directory. - Finally, run your program in the
C:/DSA/assignments/assignment0/bin
directory. You might like to change the contents ofassignment0Input.txt
in theC:/DSA/assignments/assignment0/data
directory and re-run your program to convince yourself that everything is working properly.
For your first assignment, you will simply copy the assignment0
directory to assignment1
and follow a similar procedure, writing new assignment-specific code, of course. There are just one thing you need to do: edit the C:DSA/assignments/assignment1/CMakeLists.txt
and change the project name from assignment0
to assignment1
, viz:
############################################## PROJECT(assignment0) ##############################################
becomes
############################################## PROJECT(assignment1) ##############################################
When submitting an assignment, all you have to do is submit a zipped version of your myandrewid
directory with your three source code files and your CMakelists.txt file.
These files will be unzipped and moved it to the src
directory on the marker's computer, along with the all the other students submission. We then run CMake, launch the .sln
file, compile, install, and check each executable in bin
against the blind test data file in the data
directory. Because we build the solutions the same way, you are guaranteed that your code will compile, provided you have followed this procedure.
Humour
After all that, a little course-related humour might be welcome (if these don't make sense now, they will later).