C Programming Curriculum - All Levels


BEGINNER LEVEL ASSESSMENTS

Week 1-2 Assessment: Basic Programming Concepts

Time Limit: 60 minutes Total Points: 100

Question 1 (20 points)

Write a C program that: - Prompts the user to enter their name and age - Calculates how old they will be in 10 years - Displays a formatted message with the results

Expected Output:

Enter your name: John
Enter your age: 25
Hello John! In 10 years, you will be 35 years old.

Question 2 (25 points)

Create a program that calculates the total cost of items purchased: - Read the price of 3 items from the user - Calculate subtotal - Apply 8.5% tax - Display itemized receipt

Expected Output:

Enter price of item 1: $10.50
Enter price of item 2: $25.00
Enter price of item 3: $5.75

--- RECEIPT ---
Subtotal: $41.25
Tax (8.5%): $3.51
Total: $44.76

Question 3 (30 points)

Write a program that determines letter grades based on numerical scores: - Read 5 test scores from the user - Calculate the average - Assign letter grade (A: 90-100, B: 80-89, C: 70-79, D: 60-69, F: below 60) - Display results

Question 4 (25 points)

Create a number guessing game: - Generate a random number between 1 and 100 - Allow user 7 attempts to guess - Provide "higher" or "lower" hints - Display appropriate win/lose message


Week 3-4 Assessment: Control Flow and Loops

Time Limit: 90 minutes Total Points: 100

Question 1 (25 points)

Write a program that prints the following pattern:

    *
   ***
  *****
 *******
*********

Question 2 (30 points)

Create a menu-driven calculator that continues until user chooses to exit:

CALCULATOR MENU
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exit
Enter choice: 

Question 3 (25 points)

Write a program that finds all perfect numbers between 1 and 1000. (A perfect number equals the sum of its proper divisors, e.g., 6 = 1 + 2 + 3)

Question 4 (20 points)

Create a program that converts a decimal number to binary representation.


INTERMEDIATE LEVEL ASSESSMENTS

Week 5-6 Assessment: Functions and Arrays

Time Limit: 120 minutes Total Points: 100

Question 1 (30 points)

Implement a library of mathematical functions:

// Function prototypes
int gcd(int a, int b);           // Greatest common divisor
int lcm(int a, int b);           // Least common multiple
int isPerfectSquare(int n);      // Check if number is perfect square
double power(double base, int exp); // Calculate power recursively

Write a main function that demonstrates all functions with user input.

Question 2 (35 points)

Create a student grade management system using arrays: - Store names and grades for up to 50 students - Implement functions to: - Add student record - Display all students - Find highest and lowest grades - Calculate class average - Sort students by grade (descending)

Question 3 (35 points)

Implement string manipulation functions without using string.h:

int myStrlen(char str[]);
void myStrcpy(char dest[], char src[]);
int myStrcmp(char str1[], char str2[]);
void myStrcat(char dest[], char src[]);
void myStrrev(char str[]);

Week 7-8 Assessment: Pointers and Advanced Arrays

Time Limit: 120 minutes Total Points: 100

Question 1 (40 points)

Implement a dynamic array library:

typedef struct {
    int *data;
    int size;
    int capacity;
} DynamicArray;

DynamicArray* createArray(int initial_capacity);
void destroyArray(DynamicArray* arr);
int append(DynamicArray* arr, int value);
int insert(DynamicArray* arr, int index, int value);
int removeAt(DynamicArray* arr, int index);
int find(DynamicArray* arr, int value);
void printArray(DynamicArray* arr);

Question 2 (30 points)

Write a program that: - Reads a text file - Counts frequency of each character - Displays results sorted by frequency - Uses pointers for all string operations

Question 3 (30 points)

Implement matrix operations using pointers: - Matrix addition - Matrix multiplication - Matrix transpose - Display matrix in formatted output


ADVANCED LEVEL ASSESSMENTS

Week 9-10 Assessment: Structures and File I/O

Time Limit: 150 minutes Total Points: 100

Question 1 (50 points)

Design and implement a complete inventory management system:

typedef struct {
    int id;
    char name[50];
    char category[30];
    float price;
    int quantity;
    char supplier[50];
} Product;

Requirements: - File-based storage (binary format) - Add/Update/Delete products - Search by ID, name, or category - Generate low-stock report (quantity < 10) - Calculate total inventory value - Sort products by various criteria

Question 2 (25 points)

Create a log file analyzer that: - Reads server log files - Extracts IP addresses, timestamps, and HTTP status codes - Generates summary statistics - Identifies most frequent visitors - Finds error patterns (4xx, 5xx status codes)

Question 3 (25 points)

Implement a simple database system: - Store records in binary file - Support basic SQL-like operations (SELECT, INSERT, UPDATE, DELETE) - Handle multiple record types - Implement indexing for fast searches


Week 11-12 Assessment: Memory Management and Data Structures

Time Limit: 180 minutes Total Points: 100

Question 1 (40 points)

Implement a complete linked list library:

typedef struct Node {
    int data;
    struct Node* next;
} Node;

typedef struct {
    Node* head;
    int size;
} LinkedList;

LinkedList* createList();
void destroyList(LinkedList* list);
int insertFront(LinkedList* list, int data);
int insertBack(LinkedList* list, int data);
int insertAt(LinkedList* list, int index, int data);
int removeFront(LinkedList* list);
int removeBack(LinkedList* list);
int removeAt(LinkedList* list, int index);
int find(LinkedList* list, int data);
void printList(LinkedList* list);
void reverseList(LinkedList* list);

Question 2 (30 points)

Create a memory debugging tool that: - Tracks all malloc/free calls - Detects memory leaks - Identifies double-free errors - Reports memory usage statistics - Provides detailed allocation traces

Question 3 (30 points)

Implement a hash table with collision handling: - Dynamic resizing - Multiple hash functions - Collision resolution (chaining or open addressing) - Performance analysis and statistics


EXPERT LEVEL ASSESSMENTS

Week 13-14 Assessment: System Programming

Time Limit: 240 minutes Total Points: 100

Question 1 (50 points)

Create a multi-process file processing system: - Parent process manages worker processes - Workers process different parts of large files - Inter-process communication using pipes - Signal handling for graceful shutdown - Performance monitoring and statistics

Requirements: - Handle files larger than available RAM - Implement load balancing among workers - Error recovery and fault tolerance - Detailed logging and monitoring

Question 2 (25 points)

Implement a simple network client-server application: - Server handles multiple concurrent clients - Protocol for file transfer - Error handling and recovery - Security considerations (basic authentication)

Question 3 (25 points)

Create a system monitoring utility: - Monitor CPU usage, memory usage, disk I/O - Track process statistics - Generate alerts for threshold violations - Log data to files with rotation - Web interface for viewing statistics (optional)


Week 15-16 Assessment: Final Project

Time Limit: 2 weeks Total Points: 200

Choose ONE of the following major projects:

Project Option 1: Text Editor (200 points)

Implement a full-featured console text editor with:

Core Features (100 points): - File operations (new, open, save, save as) - Text editing (insert, delete, cut, copy, paste) - Navigation (cursor movement, goto line, search) - Multiple file support (tabs/buffers)

Advanced Features (100 points): - Syntax highlighting for C code - Auto-indentation and bracket matching - Undo/redo functionality - Find and replace with regex support - Configuration system - Plugin architecture

Project Option 2: Database Management System (200 points)

Core Features (100 points): - Table creation and management - Data insertion, update, deletion - Basic SELECT queries with WHERE clauses - Index creation and management - Transaction support (basic)

Advanced Features (100 points): - JOIN operations - Aggregate functions (COUNT, SUM, AVG, etc.) - Query optimization - Backup and recovery - User management and permissions - SQL parser and executor

Project Option 3: Operating System Simulator (200 points)

Core Features (100 points): - Process scheduling (FCFS, SJF, Round Robin) - Memory management (paging, segmentation) - File system simulation - Basic shell interface

Advanced Features (100 points): - Virtual memory management - Deadlock detection and prevention - Multi-threading support - Performance analysis tools - GUI interface for visualization - Benchmarking suite

Project Option 4: Compiler/Interpreter (200 points)

Core Features (100 points): - Lexical analysis (tokenizer) - Syntax analysis (parser) - Symbol table management - Basic code generation

Advanced Features (100 points): - Semantic analysis - Optimization passes - Error reporting and recovery - Debugging support - Standard library functions - Cross-platform compatibility


ASSESSMENT RUBRICS

Code Quality Rubric (applies to all assessments)

Excellent (90-100%) - Clean, readable, well-organized code - Comprehensive error handling - Proper memory management - Extensive comments and documentation - Follows coding standards consistently - Efficient algorithms and data structures

Good (80-89%) - Generally clean and readable code - Basic error handling present - Mostly proper memory management - Adequate comments - Generally follows coding standards - Reasonable algorithm choices

Satisfactory (70-79%) - Code works but may be messy - Limited error handling - Some memory management issues - Minimal comments - Inconsistent coding style - Basic algorithm implementation

Needs Improvement (60-69%) - Code works but difficult to read - Poor or no error handling - Memory leaks or other issues - No meaningful comments - Poor coding style - Inefficient implementation

Unsatisfactory (Below 60%) - Code doesn't compile or run correctly - No error handling - Significant memory management problems - No documentation - Very poor coding practices


PRACTICAL EXAM FORMAT

Setup Requirements

  • Individual workstations with C compiler (GCC/Clang)
  • Text editor or IDE (preference)
  • Access to standard C documentation
  • No internet access during exam
  • Provided reference materials only

Submission Requirements

  • All source code files
  • Makefile for compilation
  • README with compilation/execution instructions
  • Test cases and expected outputs
  • Brief documentation of design decisions

Grading Timeline

  • Code functionality: 60%
  • Code quality and style: 20%
  • Documentation and comments: 10%
  • Error handling: 10%

TAKE-HOME PROJECT GUIDELINES

Academic Integrity

  • Individual work unless specified as group project
  • Cite any external resources used
  • No direct copying from online sources
  • Collaboration on concepts allowed, not implementation

Documentation Requirements

  • Design document explaining approach
  • User manual with examples
  • Technical documentation of functions/modules
  • Testing strategy and test cases
  • Performance analysis (where applicable)

Submission Format

  • Source code with proper organization
  • Makefile or build script
  • All documentation in markdown format
  • Demo video (for complex projects)
  • Peer review comments (for group projects)

STUDY GUIDES

Beginner Level Study Guide

Key Topics to Review: 1. Basic syntax and program structure 2. Data types and variable declarations 3. Input/output functions (printf, scanf) 4. Arithmetic and logical operators 5. Conditional statements (if, else, switch) 6. Loop structures (for, while, do-while) 7. Basic debugging techniques

Practice Problems: - Number manipulation programs - Pattern printing exercises - Simple calculator implementations - Basic games (guessing, dice rolling)

Intermediate Level Study Guide

Key Topics to Review: 1. Function declaration and definition 2. Parameter passing and return values 3. Scope and lifetime of variables 4. Array declaration and manipulation 5. String handling and operations 6. Pointer basics and arithmetic 7. Memory addresses and dereferencing

Practice Problems: - Mathematical function libraries - Array sorting and searching algorithms - String manipulation without library functions - Pointer-based data manipulation

Advanced Level Study Guide

Key Topics to Review: 1. Complex data structures (structs, unions) 2. File input/output operations 3. Dynamic memory allocation 4. Linked data structures 5. Error handling strategies 6. Binary file operations 7. Command-line argument processing

Practice Problems: - Database-like applications - File processing utilities - Dynamic data structure implementations - Memory management exercises

Expert Level Study Guide

Key Topics to Review: 1. System calls and low-level programming 2. Process management and IPC 3. Signal handling 4. Network programming basics 5. Performance optimization techniques 6. Memory debugging and profiling 7. Large project organization

Practice Problems: - System utility implementations - Client-server applications - Performance benchmarking tools - Complex algorithm implementations


This comprehensive assessment framework provides structured evaluation at each learning level, ensuring students demonstrate mastery of concepts before advancing. The progressive difficulty and practical focus prepare students for real-world C programming challenges.