Exam Rank 02
ExamM2
Timed C exam in the examshell: one function per level from the libft and string families.
Requires
Unlocks
Guide
Exam Rank 02 is the first exam of the core, in milestone M2, and it is in C. It is taken alone, on a campus machine with no internet, through the examshell program. You get one exercise at a time, randomly drawn from a level; when your submission passes the automatic grader you move to the next level. The exercises are small C functions or programs in the spirit of libft, ft_printf and get_next_line, so the exam checks that the M0 to M1 work is really in your fingers, not in your notes.
What you will learn
- Writing correct C quickly, from memory, with only the man pages
- Reading a short English subject precisely, including the expected output format
- Testing your own code with a quick
mainbefore every submission - Staying calm under a time limit with a grader that gives only pass or fail
- Using git from the command line to submit
Before you start
- Previous nodes: Libft, ft_printf, get_next_line, and push_swap from the same milestone. The exam reuses their ideas (string handling,
write, number conversion, linked lists, reading input). - Register for an exam session on the intra; seats are limited.
- Practise with a simulator at home until the levels feel routine.
- Know your editor in a terminal (vim or nano) because the exam session may not offer your usual setup.
Plan of attack
- Two weeks before: list the exercise families: string manipulation (
first_word,rev_print,ulstr), number handling (ft_atoi,print_bits,ft_itoa,add_prime_sum), memory (ft_strdup,ft_range,ft_split) and lists (ft_list_size,sort_list). - Every day: solve three to five exercises from scratch with a timer, without looking at previous solutions.
- Write each exercise's test
maintoo. In the exam you will need one for every submission. - One week before: take a full mock exam in a simulator, with the real time limit.
- Re-do every exercise you failed until you can write it without hesitating.
- The day before: review edge cases you tend to forget (empty string, no arguments, negative numbers,
INT_MIN). - During the exam: read the subject twice, write the code, test it, then
grademe. If it fails, read the subject again before touching the code.
Typical examshell flow:
examshell
# subject appears in ~/subjects/<exercise>/
cd ~/rendu && mkdir <exercise> && cd <exercise>
vim <exercise>.c
git add <exercise>.c && git commit -m "submit" && git push
# back in examshell
grademe
Common pitfalls
- Missing or extra newline at the end of the output: the grader compares bytes.
- Forgetting the program-without-arguments case, which usually must print just a newline.
- Submitting a
mainwhen the subject asks for a function only. - Using a forbidden function that the subject does not list under "Allowed functions".
- Wrong file name or folder name in
rendu. - Spending the whole exam on one exercise instead of moving on to practise others when the clock allows.
How it is evaluated
- Fully automatic. The grader compiles your code with
-Wall -Wextra -Werrorand runs hidden tests. Norminette is not checked in exams. - Rank 02 has four levels, one exercise per level (Reported by students). Each level passed adds points; reaching the required total (usually 100) passes the exam.
- A failed submission does not end the exam but can give you a new exercise of the same level; repeated failures cost time.
- The exam lasts a few hours (Reported by students: three hours). No internet, no personal files; man pages are available.