Despite what you may have been led to believe, the purpose or problem description is not to “develop deep knowledge” or “learn how to use the software”. The purpose is a specific, attainable, quantifiable goal, in terminology appropriate for the field, but that one of your peers not taking the class could be reasonably expected to understand. A generic example is provided below, while the notation ENGG*4420 is used to suggest examples for the Real Time course. Some examples have been reproduced or adapted from previous reports with permission.

Problem Description

A comprehensive resource for scientific technical writing in undergraduate Engineering courses is absent. To address this information gap, a set of guidelines that make specific recommendations regarding the use of equations, figures, and writing style, are proposed.



The background is full of equations, some in text, as in $ PV=nRT $, and some on their own, as in \eqref{eq:softmax}. Useful equations we wish to refer to later in text, are defined on their own line, centered, and with the equation number flush to the right.

The quotient rule is applied to \eqref{eq:softmax} to obtain the gradient, $ \frac{\partial{y_i}}{\partial{z_j}} $, for the case when $ j = i $. Given that, $ \frac{\partial{\sum_j exp(z_j)}}{\partial{z_j}} = exp(z_i) $, and not labeling equations corresponding to intermediate steps, $\frac{\partial{y_i}}{\partial{z_j}} $ can be evaluated as:

\begin{equation} \label{eq:penultimate} \frac{\partial{y_i}}{\partial{z_i}} = \frac{exp(z_i)}{\sum_j exp(z_j)} \cdot \big( 1 - \frac{exp(z_i)}{\sum_j exp(z_j)} \big) \end{equation}

Recognizing that \eqref{eq:penultimate} is composed of \eqref{eq:softmax}, \eqref{eq:penultimate} can be reduced to \eqref{eq:grad_i_eq_j}.

\begin{equation} \label{eq:grad_i_eq_j} \frac{\partial{y_i}}{\partial{z_i}} = y_i \cdot \big( 1 - y_i \big) \end{equation}

There is universal agreement in the Engineering community on formatting equations as above, however this is IEEE inspired in how equations are referred to in text, with only circle braces. You don’t have to use IEEE style, but do always use circle braces. Equation (1), equation (1), eq. (1) are also accepted. One of the primary motivations for typesetting your own equations, when you could otherwise copy them from the Lab Manual, is that it makes you more aware of variables or terms that need to be explained to the reader.

The class of image $f$, is taken to be that of the template, $t$, corresponding to the maximum correlation coefficient, $\gamma$, in the normalized 2D cross-correlation \cite{match_template} given by \eqref{eq:ncc}. In \eqref{eq:ncc}, $\overline{t}$ is the template mean, and $\overline{f}_{u,v}$ is the image mean in the region $f(x,y)$ spanned by $t$ centered at $u$,$v$.


\begin{equation} \label{eq:ss-passive} \dot{X} = AX + L\dot{z_r} \end{equation}

Adding a variable damper, $B_{semi}$, with matrix N to \eqref{eq:ss-passive} results in the semi-active model \eqref{eq:ss-semi}.

\begin{equation} \label{eq:ss-semi} \dot{X} = AX + NXB_{semi} + L\dot{z_r} \end{equation}

tions using only a handful of blocks. Examples of these were; a bumpy road simulated by a sine wave, a flat road simulated by a constant, and a sharp curb simulated by a step input.


Depending on the course, this section might be called Detailed Design, Methodology or something entirely different. Regardless, this is where you want to present the work that you did, and any novel contributions as clearly and effectively as possible.


Every figure should communicate something that you can’t quite do effectively with words. Every figure must have a purpose and be legible to someone with normal human vision. Figure 1 shows how momentum velocity affects learning in a multi-layer perceptron (MLP), with cross-entropy at epoch 250 labelled clearly, to let the reader easily compare different settings for $\alpha$. Don’t be afraid to write a long caption. The one in Figure 1 is on the shorter end. Imagine the page containing your Figure has been separated from the report, is the caption descriptive enough for someone to make sense of it?

MLP Figure 1: MLP cross entropy for training and test sets with four settings of momentum velocity, $\alpha$, up to 500 training epochs, a fixed learning rate of 0.01, and 250 hidden units.

If you calculated something by legitimately using a figure or reading a value from a curve, then say so, but be as specific as possible. Mostly likely this isn’t the case for the Real Time course.

The Reynold’s number, Re, was read from Figure 2, with friction factor, $ f $, and relative roughness, $ k/d $, and given the assumptions stated in Section 2.

Figure 2. Not reproduced due to excessive file size. Available

If someone else generated a figure that you would like to reuse, and you have their permission, state that it has been reproduced. It’s not sufficient to cite the source of the figure, this implies that you created the figure yourself, you were simply inspired by their work. If you substantially modified someone else’s figure, it’s fair to say adapted instead. If you generated a figure with someone else’s data, you can simply cite the source of the data. The Python source code for Figure 2 is GNU GPL licensed, so it’s fair game.


If it’s the lab manual for the course, you can assume you have permission to reproduce, but allow me to make a plea as to why you shouldn’t take screenshots of equations and paste them into the lab manual.

Source Code

What about your source code? The truth is, no one wants to look at raw source code in the body of a report, especially not a raster graphic screenshot of the code from the Eclipse IDE. If you must show code, keep it short, to the point, and formatted. If you are using Latex, ‘lstinputlisting[]’ is your friend. Otherwise, paste the code as text, not a raster graphic. A good way to keep the code clean if you don’t want to comment it is to refer to specific listing, in the same way that you refer to a figure. Please, don’t refer to the code above/below, as it sometimes gets pushed 3 pages later when the report is said and done.

Listing 1: Python source for multinomial logistic regression while sweeping the number of principal components representing a cropped and downsampled image.

for i in xrange(n_samples):
    for c in xrange(start_class, end_class+1):     
        # Predict with j transposed principal components    


The counting_task, shown in Listing 2, increments a counter when LCD_count semaphore is posted in event_task, up to COUNT_MAX value, then rolls over to 0.

Listing 2: Altera counting_task with priority 9.

void counting_task(IOdevices_control *IOdevices) {

	INT8U err1, err2;
	INT8S count_i = -1;

	while (1) 
		OSSemPend(LCD_count, 0, &err1);
		if(OS_NO_ERR == err1) 
			count_i = (count_i + 1) % COUNT_MAX;
			printf("%4d\n", count_i);


There are many ways to present your results, certain things are best illustrated with figures, others with tables. Say at least one thing that is non-obvious, and insightful, regarding each of the figures.


Figure 3: (Left) Output of Canny edge detector with Gaussian smoothing parameter, $ \sigma $, equal to 1, 2, and 3, for rows 1, 2, and 3 respectively. (Right) Resulting probabilistic Hough lines \cite{prob_hough}, with line gap of 3px, and minimum line length of 25px. Produced with scikit-image Python library \cite{scikit-image}.

Some figures compare many things at once and have an inherrent structure, as in Figure 3. In this case, use circle braces and italics to explain each section of the figure where natural to do so. The style you use for this doesn’t matter as long as it is consistent and sufficiently descriptive.

An encouraging result was obtained when Listing 1 was run with $ds_v$, $ds_h$ = 2, and keeping only the first three principal components, yielding 100% accuracy. For the sake of minimizing the algorithm execution time, the downsampling factors $ds_v$ and $ds_h$ were incremented by hand in steps of one until the accuracy began to drop. It was found that $ds_v$ and $ds_h$ could be increased all the way to 21 while maintaining 100% accuracy, where nearly all of the detail was lost in terms of what is visible to the human eye. Despite losing much of the image content, a suitable representation for the classification task could be obtained, yielding the results summarized in Table 1.

Table1: Three-class logistic regression classification accuracy for dataset X. Principal components from cropped and downsampled $ 3 \times 15 $ px images as features.

Principal-components #-Correct Accuracy (%)
1 19 48.7
2 30 76.9
3 37 94.9
4 36 92.3
5 36 92.3
6 37 94.9
7 37 94.9
8 38 97.4
9 38 97.4
10 39 100.0


Knowledge of control theory is not assumed, but systems concepts like position, velocity, and acceleration are fair game.


Try to find a clever way to avoid a boring boilerplate ending that begins with “In summary” or “To conclude”. The Conclusion is not for leftovers, i.e things you couldn’t fit into the discussion. You shouldn’t need to reference figures nor equations. You are trying to take a step back, see the big picture, and make sense of what was found in the Results section. What were the most important findings, and why do they matter to your audience?



The Restaurant

Imagine you own a small restaurant that serves appetizers, entrees, drinks, and deserts. Your profit margin is the highest on drinks and deserts, naturally you would like to sell as many drinks and deserts as possible. If the appetizers and entrees are lousy, do you think your patrons will order desert? If the water is foul, do you think your patrons will order cocktails?

Illegible figures, lack of punctuation (e.g let’s eat Grandma vs. let’s eat, Grandma), and ambiguous wording are all things that contribute to a poor dining experience in this mythical restaurant that is your report. If blurry figures and imprecise wording are the entrees, then verbosity is the free bread, or chips and salsa, at the restaurant. You want your patrons, the reader, to save room for desert, but verbosity will quickly satisfy their appetite for more.

Quoth the Raven Furthermore

Watch out for your use of words like further, furthermore, and additionally. These words are like salt and pepper, their appropriate use can enhance the flavour of the meal, but if the waiter empties the contents of the salt and peper shakers on to your plate, the result is quite unpleasant. Nevermore should you begin a paragraph with furthermore.

To do