Home

Course: Programming Fundamentals

A beginner-friendly programming foundations course covering logic, variables, loops, functions and data structures before moving into JavaScript.

Tests

Check your knowledge of Programming Fundamentals.

Lessons

15
1
Fundamentals
What Programming Really Is: Solving Problems with Clear Instructions
Learn what programming means from scratch, how to think in terms of input, process, and output, and how to read a simple program as a logical sequence instead of technical magic.
2
Fundamentals
Input, Process, and Output: The Pattern Behind Every Program
Learn to identify input, process, and output in real examples such as calculators, logins, and task lists so you can understand how a program is structured from the beginning.
3
Fundamentals
Sequence, Errors, and Tracing: Reading What the Program Actually Executes
Learn to follow the execution order of a program, detect early mistakes, and use simple console traces to understand why an output does not match what you expected.
4
Fundamentals
Variables and State: Storing Information So a Program Can Think
Learn what a variable is, how it represents state inside a program, and how to use names and value changes clearly so you do not get lost at the beginning.
5
Fundamentals
Basic Data Types: Choosing the Right Kind of Value
Learn to distinguish numbers, text, booleans, `undefined`, and `null` so you can represent information more clearly and avoid common beginner mistakes.
6
Fundamentals
Operators and Expressions: Turning Data into Useful Results
Learn how to add, compare, and combine values with basic operators so your variables stop being passive storage and start producing real results inside the program.
7
Fundamentals
Conditionals and Decisions: Making a Program Choose a Path
Learn to use `if`, `else if`, and `else` so a program can make clear decisions based on comparisons and boolean values.
8
Fundamentals
Loops and Repetition: Avoid Repeated Work with `for` and `while`
Learn to repeat tasks in a controlled way with `for` and `while`, understanding what is repeated, when it stops, and how the changing value evolves on each iteration.
9
Fundamentals
Loops and Common Errors: Catch Broken Repetition Early
Learn to diagnose infinite loops, wrong limits and counters moving in the wrong direction by observing state step by step instead of changing code blindly.
10
Fundamentals
Functions, Blocks, and Return: Reuse Logic Without Copying Code
Learn to group one task into a function, pass data into it with parameters, and return a useful result with `return` so your code becomes easier to reuse and explain.
11
Fundamentals
Arrays and Lists: Keeping Related Values in One Structure
Learn to use arrays to group several values, access them by position, and walk through simple lists using the foundation you already built with loops and variables.
12
Fundamentals
Objects and Related Data: Describe One Entity with Several Properties
Learn when an object makes more sense than an array, how to create small object literals, and how to read properties by name so your data models feel clearer and closer to real situations.
13
Fundamentals
Logic and Integration Challenges: Combine Several Pieces in Real Problems
Practice short integrated problems where variables, conditionals, loops, functions, arrays and objects have to work together instead of appearing one by one.
14
Fundamentals
Console Mini Project: Build a Small Task Planner
Bring arrays, objects, functions, loops and conditionals together inside a small console program that feels more like a real artifact than an isolated exercise.
15
Fundamentals
Bridge to JavaScript: Carry These Foundations into the Next Course
Close the course by mapping each core idea you learned here into its natural continuation inside JavaScript so the next step feels progressive instead of abrupt.
Page 1 of 1

What is this?

I'm Cristian Eslava and I sometimes build websites so both you and I can learn and experiment. culTest

I made this in February 2026 to make learning easier for my students. The idea is to learn web development by practicing and to keep expanding the project with new topics, tests and challenges.

It draws inspiration from MDN, W3Schools, CodePen, Manz and many other web development references. I wanted to combine useful theory, runnable examples, challenges and the testing system I had already built for culTest. culTest

If you liked it, if you didn't, or if you want to get in touch, write to me at cristianeslava@gmail.com