Students are not permitted to change directory structures, which includes adding new files, removing existing files, and moving files into another directory.
Students are also not permitted to change types of predefined functions.
All the functions they implement must have the same type as described in the module or module signatures.
However, students can change let to let rec, or add new functions in existing files, if needed.
All source code must be clearly written following basic software engineering practices. Especially,
- Formatting: All source code must be properly formatted using
ocamlformat. Students are required to format their source code by usingmake fmtor setting their editor. Ill-formatted source code will be automatically rejected for grading. - Warning: All source code must not have any warning. Students are required to correct all warnings in their source code before the final submission. For convenience,
makedoes not strictly check warnings. However,make testwill reject any source code with warnings. - Coverage: Your source code must be well-tested. By running
make coverage, your code coverage must exceed the specified threshold for each assignment. If your code coverage is below the threshold, your code will not be graded. You can add more tests in thetestdirectory and modify thetest/dunefile to enhance coverage. Note thatmake coverageruns for only a minute, so you should maximize your test coverage within this time constraint.
We encourage the practice of value-oriented programming.
If you use ref, while, and for in your source code, your code will not be graded.
Refer to the class introduction for more details.
To check the requirements, we provide a Makefile that includes the following commands:
make test: Check the source code for formatting, warnings, and value-oriented programming.make coverage: Check the source code for code coverage.
