Final Project
Resources
Final Project Template
* Note: It is not required to use this template. Other labs or templates may be used instead. This template is provided as it has all board specific drivers (BSP) for the discovery board included. This includes the LCD drivers.
Description and Requirements
The final project for Microprocessor Systems is an open-ended opportunity for students to apply concepts learned in the class and/or learn about those not part of the laboratories. Requirements:
Refer to lecture.
Groups must propose their project to the instructor to ensure that it meets the final project requirements.
The final project is worth 20 points on the overall grade, where three final project is graded in three sections:
Checkoff/Demonstration (5 pnts)
Report (10 pnts)
Code (5 pnts)
The description and rubrics for each are in the following sections.
Checkoff and Demonstration
Each group must demonstrate their final project to the instructor. The checkoff is intended to show that the project works as intended and is of sufficient difficulty. There is no concrete itemized rubric for this section; with points awarded being left entirely to the judgment of the instructor.
Report
The final project report should not generally follow the templates for the lab reports as the project does not consist of “tasks,” but similar content should be presented. Students should format the report such that the content is presented in coherent and concise manner touching on all aspects of the rubric below.
Documentation: Maximum 4 points
4 pnts: Report thoroughly covers all aspects of the project. Figures, tables, lists all used appropriately
2 pnts: Report covers portions of the project well, others are lacking. Some figures, tables, list are used in place of text but should have been used more often.
0 pnts: Reports does not describe any portion of the project sufficiently; either the descriptions are poor or otherwise missing.
Verification: Maximum 3 points
3 pnts: Proof of proper operation for both subsystems and whole project is provided, is clear, and is meaningful. This is expected to done through the presentation of data in figures or through images/screen captures.
1.5 pnts: Report doesn’t clearly show project was successfully completed but some operational aspects are documented
0 pnts: No documentation of the operation of the project is given.
Technical Understanding: Maximum 2 points
2 pnts: Report shows a technical understanding of the peripherals and other components used (or not used); through the descriptions provided of the subsystems, their interaction, and interpretation of presented data.
1 pnt: Report is lacking technical discussions on important aspects.
0 pnts: No technical understanding of the microcontroller and the implemented subsystems is demonstrated.
Grammar and Punctuation: Maximum 1 point
1 pnt: Generally free from mistakes (a few are acceptable)
0.5 pnts: Several egregious mistakes or many minor mistakes but otherwise okay.
0 pnts: [Borderline] unreadable due to poor writing.
Submitted Code
The code for the final project should be professionally written and commented thoroughly. The rubric for grading the code is given below.
Documentation and Comments: Maximum 4 points
4 pnts: Code is thoroughly commented such that each operation can be interpreted clearly; the use-case for variables is clear, etc. Functions are described as to their use, inputs, and outputs.
2 pnts: Code is moderately commented but some operations, functions, variables, etc., are ambiguous.
0 pnts: Little-to-no documentation is given in the code.
Code Arrangement and Flow: Maximum 2 points
2 pnts: Code is written in a logical manner, with large functions broken up into smaller functions, related operations grouped together, etc.
1 pnt: Operations in the code generally follow a logical flow but is broken up by some commands that are out-of-place. Functions may be unnecessarily large.
0 pnts: Code is very hard to follow, even with commenting due to seemingly arbitrary placement of commands. Exceedingly large functions.
Efficiency: Maximum 4 pnts
4 pnts: Code is written without using unnecessary commands and interrupts are employed properly. Peripherals that improve efficiency (e.g., DMA) are used as applicable.
2 pnts: Code is generally efficient but some commands issued are unnecessary. Interrupts are employed properly for some peripherals, not others.
0 pnts: Code is inefficient, with many of the given operations being unnecessary or done in a poor fashion.