Commit 2ee4a7f9 authored by Alexander Hirsch's avatar Alexander Hirsch
Browse files

Add final submission evaluation scheme

parent 116e0c5c
......@@ -33,7 +33,7 @@ Apart from this, there will be one *required* submission near the beginning of t
You have to submit an additional example input, which may be added to the set of example inputs — this way the number of integration tests is extended.
Furthermore, there are five *optional* milestones.
They provide a golden thread and enable you to receive feedback, plus you get a feel for my reviewing scheme.
They provide a golden thread and enable you to receive feedback.
You may work together in teams of 1–3 people.
Teams may span across pro-seminar groups.
......@@ -46,6 +46,7 @@ Both of these parts as well as the majority of QA session grades must be positiv
Other submissions are not graded.
Be sure to adhere to the specification, deviating from it (without stating a proper reason) will negatively impact your grade.
See [Final Submission Evaluation Scheme](evaluation_scheme.md) for more details.
### Evaluation System
......
# Final Submission Evaluation Scheme
Each checkbox represents 1 point to score.
The following key is used for calculating the resulting grade:
- **1:** ≥ 92%
- **2:** (92%, 84%]
- **3:** (84%, 76%]
- **4:** (76%, 68%]
- **5:** < 68%
It is required that for at least one test input, featuring input and output, a respective executable can be obtained and run successfully.
Points *may* be subtracted for shortcomings not explicitly listed in this form.
This includes things like:
- Encountered issues not mentioned or justified in the *Known Issues* section
- Executables *segfaulting*
- Faulty code that is not even tested
- Overcomplicated build system setups
- Intermixing interfaces and implementation details
- Misuse of assertions
- Unnecessary waste of time or space (memory leaks)
- Inconsistently formatted or unreadable source code
-
## Boundary Conditions
- [ ] Correct submission
- Subject is correct
- Attached file has correct name and structure
- [ ] README is present
- Contains instructions
- Contains dependencies
- Contains *Known Issues*
- [ ] Code builds successfully
- Warnings are enabled
- No unjustified warnings of any kind
- [ ] All unit tests succeed
- [ ] All integration tests succeed
- provided test inputs must be included
- [ ] Additional integration tests used for evaluation succeed
- [ ] Architecture consists of shared library + executables
- [ ] All symbols exported by the library are prefixed with `mcc_`
## Front-end
Errors need to come with a meaningful error message and source location information (filename, start line, and start column).
- Syntactic checks:
- [ ] Syntactically invalid mC programs are rejected with an error
- [ ] AST data structure is present and instantiated by the parser
- [ ] AST can be visualised using `mc_ast_to_dot`
- Semantic checks:
- [ ] Shadowing is supported correctly
- [ ] Error on use of undeclared variable
- [ ] Error on conflicting variable declaration
- [ ] Error on use of unknown function
- [ ] Error on missing `main` function
- [ ] Error on conflicting function names
- includes built-in functions
- [ ] Error on missing return-statement for non-void functions
- [ ] Correct type checking on scalars
- [ ] Correct type checking on arrays
- [ ] Error on invalid call-expressions
- Mismatching argument count
- Mismatching argument types
- Return type is taken into account by the type checker
- [ ] Symbol table data structure is present
- [ ] Symbol table can be visualised using `mc_symbol_table`
- [ ] Type checking can be traced using `mc_type_check_trace`
## Core
- [ ] TAC data structure is present
- [ ] TAC can be visualised using `mc_ir`
- [ ] CFG data structure is present
- [ ] CFG can be visualised using `mc_cfg_to_dot`
## Back-end
- [ ] Assembly code can be obtained using `mc_asm`
- [ ] GCC is invoked to generate the final executable
## Driver
- [ ] `mcc` executable supports the requested command-line flags
- [ ] Multiple input files are supported
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment