Choose your language
Programming Foundations: Fundamentals Course
More than 2 million students worldwide

Programming Foundations: Fundamentals Course

Learn the core programming concepts every software developer relies on daily, from variables and control flow to object-oriented design and error handling. This course gives you a structured, hands-on path from zero experience to writing clean, functional code. By the end, you'll have the technical foundation to tackle real projects with confidence.

Dedika for businesses

What you will learn:

This course covers every fundamental topic you need to start writing real programs. You will learn how to store and manipulate data using variables and data types, control program execution with conditionals and loops, and organise code into reusable functions. You will also explore object-oriented programming, work with arrays and collections, and handle errors gracefully. Supplementary chapters introduce Git version control, SQL databases, algorithms, and clean code principles. Every concept builds directly on the last, giving you a complete and practical programming foundation.

How you study in practice Programming Foundations: Fundamentals Course

How you practise Programming Foundations: Fundamentals Course

For businesses looking to train their team

With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

8 Chapters • 38 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Introduction to Programming Concepts

  • Lesson 1 • Problem-Solving Before Coding

    Introduces decomposition, pseudocode, and flowcharts as pre-coding tools. Trains systematic thinking that reduces errors in later chapters.

  • Lesson 2 • Setting Up a Development Environment

    Guides installation of a code editor, runtime, and terminal. Establishes a working workspace used throughout the entire course.

  • Lesson 3 • How Computers Execute Instructions

    Covers the fetch-decode-execute cycle and the role of hardware in running programs. Grounds all later coding concepts in physical machine behaviour.

  • Lesson 4 • Programming Languages Overview

    Contrasts high-level and low-level languages, compiled versus interpreted execution. Helps learners choose appropriate tools for given tasks.

Chapter 2See details

Variables, Data Types, and Operators

  • Lesson 1 • Arithmetic and Assignment Operators

    Teaches addition, subtraction, modulo, and compound assignment operators. Enables learners to perform calculations central to all programming tasks.

  • Lesson 2 • Type Conversion and Casting

    Explains implicit coercion and explicit casting between data types. Prevents common bugs caused by unexpected type mismatches.

  • Lesson 3 • Variables and Memory Storage

    Explains how variables name memory locations and hold values. Connects abstract data storage to concrete program behaviour.

  • Lesson 4 • Comparison and Logical Operators

    Introduces relational operators and Boolean logic for decision-making. Directly supports the conditional statements taught in the next chapter.

  • Lesson 5 • Primitive Data Types

    Covers integers, floats, booleans, and characters as foundational value types. Prepares learners to select correct types for any data scenario.

Chapter 3See details

Control Flow and Decision Making

  • Lesson 1 • If-Else Conditional Statements

    Covers single-branch, two-branch, and multi-branch if-else structures. Forms the primary decision-making tool used in every subsequent chapter.

  • Lesson 2 • Truthy and Falsy Value Evaluation

    Examines how non-Boolean values are evaluated in conditional contexts. Prevents subtle logic bugs common in dynamically typed languages.

  • Lesson 3 • Switch and Match Statements

    Introduces multi-case branching as a cleaner alternative to long else-if chains. Improves code readability when handling discrete value sets.

  • Lesson 4 • Ternary and Conditional Expressions

    Teaches compact inline conditional syntax for simple branching decisions. Enables concise, readable code in assignments and return statements.

Chapter 4See details

Loops and Iteration

  • Lesson 1 • While and Do-While Loops

    Introduces condition-driven loops that repeat until a Boolean expression is false. Establishes the concept of loop guards and termination conditions.

  • Lesson 2 • For Loops and Counting Patterns

    Covers counter-based iteration with initialisation, condition, and increment. Enables precise control over iteration count for predictable tasks.

  • Lesson 3 • Iterating Over Collections

    Applies for-each and index-based loops to arrays and lists. Bridges loop fundamentals to the data structures introduced in the next chapter.

  • Lesson 4 • Loop Control with Break and Continue

    Teaches early exit and iteration skipping to refine loop behaviour. Gives learners fine-grained control over complex repetition scenarios.

  • Lesson 5 • Nested Loops and Complexity

    Explores loops inside loops for multi-dimensional data processing. Introduces time complexity awareness as a foundation for later algorithm study.

Chapter 5See details

Functions and Code Reusability

  • Lesson 1 • Scope and Variable Lifetime

    Distinguishes local, enclosing, and global scope and their effect on variable access. Prevents naming conflicts and unintended side effects in larger programs.

  • Lesson 2 • Return Values and Output

    Teaches how functions produce output through return statements. Connects function output to variable assignment and expression evaluation.

  • Lesson 3 • Recursion Fundamentals

    Introduces self-calling functions with base cases and recursive steps. Prepares learners for tree traversal and divide-and-conquer algorithms later.

  • Lesson 4 • Parameters and Arguments

    Explains how data is passed into functions via parameters and arguments. Enables functions to operate on varying inputs without code duplication.

  • Lesson 5 • Defining and Calling Functions

    Covers function declaration syntax, naming conventions, and invocation. Establishes the core abstraction mechanism used throughout all remaining chapters.

Chapter 6See details

Data Structures: Arrays and Collections

  • Lesson 1 • Dictionaries and Key-Value Pairs

    Teaches hash-map-style structures that associate keys with values. Enables fast lookups and structured data representation in programs.

  • Lesson 2 • Common Collection Operations

    Applies sorting, searching, filtering, and mapping to collections. Consolidates all collection types into practical, reusable programming patterns.

  • Lesson 3 • Dynamic Lists and Resizing

    Introduces resizable list structures that grow and shrink at runtime. Enables flexible data storage without predefined size constraints.

  • Lesson 4 • Sets and Uniqueness Constraints

    Explains sets as unordered collections that enforce element uniqueness. Useful for deduplication and membership testing in real programs.

  • Lesson 5 • Arrays and Indexed Access

    Covers fixed-size, zero-indexed arrays for storing homogeneous data. Provides the foundational collection type referenced in all subsequent data structure topics.

Chapter 7See details

Object-Oriented Programming Principles

  • Lesson 1 • Methods and Behaviour

    Covers instance methods, static methods, and the self/this reference. Enables objects to encapsulate both data and the operations that act on it.

  • Lesson 2 • Inheritance and Code Reuse

    Explains parent-child class relationships and method inheritance. Reduces duplication by sharing behaviour across related class hierarchies.

  • Lesson 3 • Classes and Object Instantiation

    Defines classes as blueprints and objects as runtime instances. Introduces the primary abstraction mechanism for organising complex programs.

  • Lesson 4 • Polymorphism and Interfaces

    Introduces runtime method dispatch and interface contracts for flexible design. Enables writing code that works with any object conforming to a shared interface.

  • Lesson 5 • Encapsulation and Access Control

    Teaches public, private, and protected access modifiers to hide implementation details. Protects object integrity and reduces unintended coupling between components.

Chapter 8See details

Error Handling, Debugging, and Testing

  • Lesson 1 • Debugging Tools and Techniques

    Teaches breakpoints, watch expressions, and step-through execution in a debugger. Accelerates root-cause identification for complex bugs.

  • Lesson 2 • Writing and Running Unit Tests

    Introduces test functions, assertions, and test runners for automated verification. Ensures individual functions behave correctly before integration.

  • Lesson 3 • Types of Errors in Programs

    Distinguishes syntax, runtime, and logic errors by cause and detection method. Builds diagnostic vocabulary used throughout all debugging activities.

  • Lesson 4 • Exception Handling Mechanisms

    Covers try-catch-finally blocks and custom exception types for controlled error recovery. Prevents program crashes and enables meaningful user-facing error messages.

  • Lesson 5 • Test-Driven Development Basics

    Applies the red-green-refactor cycle to write tests before implementation. Instils a quality-first mindset that improves design and reduces regressions.

Certification

Your valid completion certificate

This course is for you:

  • Career changer: wants a reliable path into software development from a non-technical field.

  • College student: needs a structured foundation before tackling data structures or algorithms.

  • Marketing professional: aims to automate repetitive tasks and understand developer teammates better.

  • Self-taught hobbyist: has scattered knowledge and wants to fill critical conceptual gaps.

  • Entrepreneur: needs enough programming literacy to build prototypes and evaluate technical decisions.

  • Recent graduate: studied an unrelated field and is pivoting toward a technology-focused career.

What our students say

Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast and simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top qualifications

FAQ

Who is Dedika?

Is the certificate valid in the United Kingdom?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course