\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Differential
\newcommand\dd[2][]{\mathrm{d}^{#1}{#2}} % use as \dd, \dd{x}, or \dd[2]{x}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
\newcommand\cubed{{}^3}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Percent
\newcommand\percent{\unit{\%}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
\newcommand\s{\second}
\newcommand\minute{\unit{min}}
\newcommand\hour{\unit{h}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\foot{\unit{ft}}
%
% Force
\newcommand\newton{\unit{N}}
\newcommand\kip{\unit{kip}} % kilopound in "freedom" units - edit made by Sri
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
\newcommand\kilogram{\unit{kg}}
\newcommand\kg{\kilogram}
\newcommand\grain{\unit{grain}}
\newcommand\ounce{\unit{oz}}
%
% Temperature
\newcommand\kelvin{\unit{K}}
\newcommand\K{\kelvin}
\newcommand\celsius{\unit{{}^\circ C}}
\newcommand\C{\celsius}
\newcommand\fahrenheit{\unit{{}^\circ F}}
\newcommand\F{\fahrenheit}
%
% Area
\newcommand\sqft{\unit{sq\,\foot}} % square foot
%
% Volume
\newcommand\liter{\unit{L}}
\newcommand\gallon{\unit{gal}}
%
% Frequency
\newcommand\hertz{\unit{Hz}}
\newcommand\rpm{\unit{rpm}}
%
% Voltage
\newcommand\volt{\unit{V}}
\newcommand\V{\volt}
\newcommand\millivolt{\milli\volt}
\newcommand\mV{\milli\volt}
\newcommand\kilovolt{\kilo\volt}
\newcommand\kV{\kilo\volt}
%
% Current
\newcommand\ampere{\unit{A}}
\newcommand\A{\ampere}
\newcommand\milliampereA{\milli\ampere}
\newcommand\mA{\milli\ampere}
\newcommand\kiloampereA{\kilo\ampere}
\newcommand\kA{\kilo\ampere}
%
% Resistance
\newcommand\ohm{\Omega}
\newcommand\milliohm{\milli\ohm}
\newcommand\kiloohm{\kilo\ohm} % correct SI spelling
\newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx
\newcommand\megaohm{\mega\ohm} % correct SI spelling
\newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Energy
\newcommand\joule{\unit{J}}
\newcommand\J{\joule}
%
% Composite units
%
% Torque
\newcommand\ozin{\unit{\ounce}\,\unit{in}}
\newcommand\newtonmeter{\unit{\newton\,\meter}}
%
% Pressure
\newcommand\psf{\unit{psf}} % pounds per square foot
\newcommand\pcf{\unit{pcf}} % pounds per cubic foot
\newcommand\pascal{\unit{Pa}}
\newcommand\Pa{\pascal}
\newcommand\ksi{\unit{ksi}} % kilopound per square inch
\newcommand\bar{\unit{bar}}
\end{aligned}\end{align} \]
Feb 17, 2025 | 464 words | 5 min read
18.2. Guidelines
Each project must meet the following specifications:
Input: Brings in data either through reading a file or with user input (this can
be as small as one value)
Output: Outputs data by writing to the command window, or producing plots or
graphics, or writing to a file
UDFs: Has a main program (script) that calls at least 3 user defined functions.
a. At least one of the functions must be a different file (script) from the main
program.
Elements: Includes at least three of the four following elements:
One for
loop
One while
loop
One list, array, vector, or matrix
One if
decision structure with at least one else
or
elseif
/elif
branch.
Nested Structure: Uses at least one case with nested structures which can be a
combination of one or more loops embedded in loops, one or more loops embedded in
conditional statements or conditional statements embedded in one or more loops.
Error Check: Employs at least two error checking algorithms for inputs, outputs,
or intermediate data that produce an error message, but does NOT exit the
program. The error check should allow the user to enter a correct value.
Line Limit: Meets or exceeds the minimum number of lines of active code (not
counting comments or blank lines or template lines)
a. 150 lines for MATLAB
b. 130 lines for Python
New concept: Use a module, library or feature of MATLAB or
Python that we have NOT used or seen in ENGR 13300. Ask the
instructional team if you are unsure if your concept extends to what we have learned
so far.
Uniqueness: Your project should be distinct from any related prior work. Ensure
that your project code reflects your individuality, interests, and personal approach.
The project should be unmistakably yours.
Code Professionalism: Includes
academic integrity statement,
name and collaborators,
descriptions of key components of the program, and
descriptive variable names and comments that describe the purpose of the code.
Note
Exceptions to specifications:
The purpose of the project specifications is to ensure a standard level of complexity
across all projects, as each of you will be working on unique ideas. These
specifications set a common benchmark for complexity. However, if you believe your
project approach is sufficiently complex and challenging, you may request an exemption
from one or more specifications.
For instance, if your project uses advanced functions and complex logic beyond the ENGR
13300 scope, you may not be required to meet the 150/130 line code minimum. Exemption
requests must be initiated by the student, documented clearly in writing, and submitted
before demo day. Only the instructor or GTA can approve these exceptions. If you think
your project qualifies, consult your instructor or GTA to discuss and document the
request.
You can request an exemption by filling out
ip_ind_exception_username.docx
. Save it as
ip_ind_exception_username.pdf and submit to Gradescope. Be sure to
replace username
with your Purdue username.