
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.
What your team will master:
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 organize 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 your team studies in practice Programming Foundations: Fundamentals Course
How your team practices Programming Foundations: Fundamentals Course
Professionals from these companies study at Dedika









Course content
8 Chapters • 38 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsIntroduction to Programming Concepts
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 behavior.
Lesson 4 • Programming Languages Overview
Contrasts high-level and low-level languages, compiled vs. interpreted execution. Helps learners choose appropriate tools for given tasks.
Chapter 2HideHide detailsSee detailsVariables, Data Types, and Operators
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 behavior.
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 3HideHide detailsSee detailsControl Flow and Decision Making
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 4HideHide detailsSee detailsLoops and Iteration
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 initialization, 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 behavior. 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 5HideHide detailsSee detailsFunctions and Code Reusability
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 6HideHide detailsSee detailsData Structures: Arrays and Collections
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 7HideHide detailsSee detailsObject-Oriented Programming Principles
Object-Oriented Programming Principles
Lesson 1 • Methods and Behavior
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 behavior 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 organizing 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 8HideHide detailsSee detailsError Handling, Debugging, and Testing
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. Instills a quality-first mindset that improves design and reduces regressions.
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.
Related Courses
FAQs
Who is Dedika?
Is the certificate valid in the Philippines?
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



















