Information for the Practical Test
General Information
- Date: 30/04/2025 (wednesday)
- Time: 16:30
- Place: FC6 155, FC6 157, FC6 163, FC6 155 (DCC Labs on FC 6)
- Duration: 2h
- Method: the test will be individual and will consist of practical problems for which you can submit C code to Mooshak and receive feedback that might include public test cases, like in the practical classes
- Language: all problems will be available in english and in portuguese
- Environment: the computers will have Linux, with gcc available at the command line, and the usual editors and IDEs (we will also try to make available an online compiler - before the test we will confirm which one); you will have access to documentation (cppreference) and to a local copy of the course website (including the lecture slides and the practical classes pages).
You will also have access to a text file you can pre-submit on Mooshak (until 15:30 of April 30th), which might include anything you want, such as code you submitted during classes.
- Scoring: this test is worth 8 points out of 20 (40% of your class grade) [see explanation and calculation formula of final grade]
You will have 7 small exercises in Mooshak worth 22%+21%+20%+15%+13%+7%+2%.
In each exercise there might be partial scoring (e.g. passes some tests, fails on others).
When submitting, you will know the score you got on all tests. Your grade on a problem will be the grade of your best submission on that problem (the one with the highest score), and you can submit as many times as you want.
Specific goals for each exercise and training problems
- [22%] Exercise 1: simple program
Something at the level of the main or extra exercises of practical class #01 (first programs), reading with scanf, writing with printf and using simple algebric expressions.
- [21%] Exercise 2: conditional execution
Something at the level of the main exercises of practical class #02 (conditional execution), which needs the usage of conditionals such as if and else and logical operatos such as && and ||.
- [20%] Exercise 3: cycles
Something at the level of the main exercises of practical class #03 (cycles), which explores the usage of cycle instructions such as while, do...while or for (and statements such as break and continue)
- [15%] Exercise 4: functions and arrays
Something at the level of the main exercises of practical class #04 (functions and arrays), writing a function that receives an argument that is an array and returns something or modifies the array itself.
- [13%] Exercise 5: strings
Something at the level of the main exercises of practical class #05 (strings), writing a function that receives an argument that is a string and returns something or modifies the string itself.
- [7%] Exercise 6: recursion
Something at the level of the main exercises of practical class #06 (recursion), writing code that would benefit from employing recursion. As on the class, you might be given initial base (recursive) code that you can use.
- [2%] Exercise 7: challenge
Something at the level of a challenge (from practical classes #03 to class #06), in which the algorithm is more complex and/or efficiency might matter (i.e., an innefficent solution might not have enough time or memory to pass).