Study Topics
Select a topic to view notes, code examples, and memory diagrams
Practice Quiz
108 questions across all chapters — pick how many you want, filter by topic, or stress-test in exam mode
Quick Reference
Everything you need on one page — pointer syntax, graph ops, complexity, sorting, DFS
Key Code Patterns
// ─── Linked List Node ─────────────────────────────────────
typedef struct Node { int data; struct Node *next; } Node;
// Insert at head — needs ** to update caller's pointer
void insert_head(Node **head, int val) {
Node *n = (Node*)malloc(sizeof(Node));
if (!n) return;
n->data = val; n->next = *head; *head = n;
}
// ─── BST Insert (recursive) ────────────────────────────────
BST_Node *insert(BST_Node *root, int val) {
if (!root) { /* malloc new node, set key, left=right=NULL */ return n; }
if (val < root->key) root->left = insert(root->left, val);
else root->right = insert(root->right, val);
return root;
}
// ─── DFS Path Finding ──────────────────────────────────────
int DFS(int cur, int dest, int adj[][N], int visited[]) {
visited[cur] = 1;
if (cur == dest) return 1; // base case 1
for (int j = 0; j < N; j++) {
if (adj[cur][j] && !visited[j])
if (DFS(j, dest, adj, visited)) return 1;
}
return 0; // base case 2: no path found
}
// ─── Tail Recursive Sum ────────────────────────────────────
int sum_TR(int *arr, int n, int part) {
if (n == 0) return part + arr[0]; // base case
return sum_TR(arr, n-1, part + arr[n]); // tail call
}
Coding Practice
Write C functions from scratch — AI will check your logic, catch bugs, and explain mistakes
Optimize
Identify the Big-O of slow code — then rewrite it to be efficient. AI grades both steps.
Past Midterm — Winter 2026
Actual midterm questions. Multiple choice auto-graded. Long answer checked by AI.
Course Textbook
Official lecture notes by Professor F.P. Estrada — the ground truth for this course
About This Site
Why this exists and who made it
43/100 on the midterm.
That's what I got on the CSCA48 Winter 2026 midterm. Not great. I sat down afterwards and realized the issue wasn't effort — it was the way I'd been studying. Reading notes passively, not actually testing myself on code, not drilling the exact kind of questions the exam asks.
So I built this. A site that actually forces you to engage — write code in boxes, get AI feedback on it, take timed quizzes, trace through the real midterm questions. Everything I wish had existed before I walked into that exam room.
If you're in CSCA48 and you're staring down an upcoming exam, I hope this helps you more than passive re-reading ever would.
Found a bug? A wrong answer? A topic that needs more depth? Email me. This site is a work in progress and I'll keep improving it as the course goes on.
The textbook content linked in the Textbook tab belongs entirely to Professor F.P. Estrada and is distributed under a CC BY-NC-ND license. This site links to those PDFs but does not reproduce their content.
The past midterm questions are included for personal study purposes only, based on my own exam paper. If you are an instructor who would like this content removed, please email me and I will do so promptly.
AI feedback is generated by Claude (Anthropic) using your own API key. It is a study aid, not a guaranteed grade predictor. Always verify understanding against the official course materials.