Values and decisions

15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.

A decision chooses which statements run. The policy here is “ready at 80 or higher.” Trace 85, 79, 80, and 81 before running each case. The comparison includes 80. A program that prints the right answer for 85 may still be wrong at the boundary. Add a separate check rejecting scores below 0 or above 100; rejection and needing practice mean different things.

Square brackets send a message to a receiver: [plan completed]. @interface declares methods and @implementation defines them. These GNUstep exercises use explicit memory management, not Apple ARC.

#import <Foundation/Foundation.h>
#include <stdio.h>
#include <assert.h>

int main(void) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSInteger score = 85;
    puts(score >= 80 ? "Ready" : "Practice");
    [pool drain];
    return 0;
}

Expected result: Ready

Practice and evidence

Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.

Language reference