Guidelines

\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors) \newcommand\bs[1]{\mathbf{#1}}\\% 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} \]

Dec 03, 2024 | 464 words | 5 min read

16.2. Guidelines#

Each project must meet the following specifications:

  1. Input: Brings in data either through reading a file or with user input (this can be as small as one value)

  2. Output: Outputs data by writing to the command window, or producing plots or graphics, or writing to a file

  3. 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.

  4. Elements: Includes at least three of the four following elements:

    1. One for loop

    2. One while loop

    3. One list, array, vector, or matrix

    4. One if decision structure with at least one else or elseif/elif branch.

  5. 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.

  6. 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.

  7. 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

  8. 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.

  9. 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.

  10. Code Professionalism: Includes

    1. academic integrity statement,

    2. name and collaborators,

    3. descriptions of key components of the program, and

    4. 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.