
Programming Languages Course
Master the theory and practice behind every major programming language paradigm, from syntax and semantics to memory management and compiler construction. This course gives you the deep, transferable knowledge to evaluate, design, and work confidently across any language ecosystem. Whether you're advancing your career or sharpening your computer science foundations, this is the definitive resource for serious programmers.
What you will learn:
You will build a rigorous understanding of how programming languages are designed, classified, and implemented. The course covers formal grammars, parsing techniques, type systems, scoping rules, and control-flow mechanisms across multiple paradigms. You will study functional, object-oriented, imperative, and logic programming in depth, then move into memory management strategies and runtime system architecture. Supplementary material covers compiler construction, metaprogramming, domain-specific language design, and polyglot system integration. By the end, you will be equipped to evaluate any language against real project requirements and communicate those decisions clearly to technical teams.
How you study in practice Programming Languages Course
How you practise Programming Languages Course
For companies looking to train their team
With Dedika for Business, the course includes exercises and examples tailored to your own business and the way your company needs.
Course Content
8 Chapters • 37 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsFoundations of Programming Languages
Foundations of Programming Languages
Lesson 1 • History and Evolution of Languages
Traces language development from assembly through modern paradigms. Provides historical context for understanding current design decisions.
Lesson 2 • What Is a Programming Language
Defines programming languages as formal systems for expressing computation. Establishes vocabulary used throughout the course.
Lesson 3 • Language Classification and Paradigms
Categorizes languages by paradigm: imperative, functional, logic, and object-oriented. Prepares students to evaluate any language against a taxonomy.
Lesson 4 • Language Design Goals and Trade-offs
Examines the competing priorities—readability, writability, reliability—that shape language design. Connects design choices to real-world usability.
Chapter 2HideHide detailsSee detailsSyntax, Grammars, and Parsing
Syntax, Grammars, and Parsing
Lesson 1 • Abstract Syntax Trees
Distinguishes abstract syntax trees from parse trees and explains their role in compilation. Prepares students for semantic analysis in later chapters.
Lesson 2 • Top-Down and Bottom-Up Parsing
Compares recursive-descent and shift-reduce parsing strategies. Equips students to choose and implement appropriate parsers.
Lesson 3 • Lexical Analysis and Tokenization
Covers the role of the lexer in converting source text into tokens before parsing. Bridges raw source code and grammar-level analysis.
Lesson 4 • Parse Trees and Ambiguity
Explains how parse trees represent syntactic structure and how ambiguity undermines deterministic parsing. Directly supports grammar design skills.
Lesson 5 • Formal Grammars and BNF Notation
Introduces context-free grammars and Backus-Naur Form as tools for specifying language syntax. Grounds all subsequent parsing work.
Chapter 3HideHide detailsSee detailsSemantics and Type Systems
Semantics and Type Systems
Lesson 1 • Approaches to Formal Semantics
Introduces operational, denotational, and axiomatic semantics as complementary frameworks. Establishes the basis for reasoning about program correctness.
Lesson 2 • Type Systems Fundamentals
Defines types, type checking, and the spectrum from static to dynamic typing. Connects type discipline to program reliability.
Lesson 3 • Type Inference and Polymorphism
Covers algorithm-based type inference and parametric polymorphism. Demonstrates how languages achieve generality without sacrificing safety.
Lesson 4 • Advanced Type Constructs
Explores algebraic data types, dependent types, and generics. Prepares students to leverage expressive type systems in modern languages.
Chapter 4HideHide detailsSee detailsVariables, Scope, and Binding
Variables, Scope, and Binding
Lesson 1 • Variables and Storage Models
Examines variable attributes—name, type, value, lifetime—and how storage is allocated. Grounds all subsequent scope and binding discussions.
Lesson 2 • Namespaces and Modules
Covers namespace mechanisms that partition the global scope and support large-scale programs. Bridges scope theory to practical software organization.
Lesson 3 • Scope Rules and Visibility
Contrasts static (lexical) and dynamic scoping and their effects on name resolution. Directly impacts how students read and write code in any language.
Lesson 4 • Binding Time and Lifetime
Distinguishes when bindings are established—compile time vs. runtime—and how long they persist. Connects to memory management concepts introduced later.
Chapter 5HideHide detailsSee detailsControl Flow and Structured Programming
Control Flow and Structured Programming
Lesson 1 • Concurrency and Coroutines
Introduces threads, async/await, and coroutines as advanced control-flow abstractions. Extends structured programming to concurrent execution models.
Lesson 2 • Subprograms and Parameter Passing
Examines function and procedure design, including all parameter-passing modes. Connects to scope and binding concepts from the previous chapter.
Lesson 3 • Conditional and Selection Statements
Covers if-else, switch, and pattern-matching constructs across paradigms. Establishes the baseline for all control-flow study.
Lesson 4 • Iteration and Loop Constructs
Analyzes counter-controlled, condition-controlled, and collection-based loops. Prepares students to reason about termination and efficiency.
Lesson 5 • Exception Handling Mechanisms
Covers exception declaration, propagation, and handler design. Demonstrates how languages manage abnormal control flow safely.
Chapter 6HideHide detailsSee detailsImperative and Object-Oriented Languages
Imperative and Object-Oriented Languages
Lesson 1 • OOP Design Patterns in Practice
Applies classic design patterns to reinforce OOP principles. Bridges language features to professional software architecture.
Lesson 2 • Imperative Language Core Concepts
Reviews assignment, sequencing, and state mutation as the foundation of imperative programming. Anchors OOP study in procedural roots.
Lesson 3 • Classes, Objects, and Encapsulation
Defines classes as templates and objects as instances, emphasizing encapsulation. Builds the structural vocabulary for OOP design.
Lesson 4 • Inheritance and Polymorphism
Covers single and multiple inheritance, method overriding, and dynamic dispatch. Connects type system concepts to OOP runtime behavior.
Lesson 5 • Interfaces, Abstract Classes, and Mixins
Examines design contracts through interfaces and abstract classes. Extends inheritance to flexible composition patterns.
Chapter 7HideHide detailsSee detailsFunctional Programming Languages
Functional Programming Languages
Lesson 1 • Higher-Order Functions and Closures
Covers map, filter, fold, and closure capture as fundamental functional tools. Builds on scope and binding knowledge from earlier chapters.
Lesson 2 • Algebraic Data Types and Pattern Matching
Uses sum and product types with pattern matching to model data precisely. Reinforces type system concepts in a functional context.
Lesson 3 • Core Functional Concepts
Introduces pure functions, immutability, and referential transparency as the pillars of functional programming. Contrasts with imperative state mutation.
Lesson 4 • Recursion and Tail-Call Optimization
Examines recursion as the primary iteration mechanism and tail-call optimization as a performance strategy. Connects to control-flow concepts.
Lesson 5 • Monads and Functional Effects
Introduces monads as a structured way to handle effects like I/O and state. Advances students to professional-level functional design.
Chapter 8HideHide detailsSee detailsMemory Management and Runtime Systems
Memory Management and Runtime Systems
Lesson 1 • Manual Memory Management
Covers explicit allocation and deallocation, including common errors like leaks and dangling pointers. Connects to variable lifetime concepts.
Lesson 2 • Runtime System Architecture
Explores the components of a language runtime: call stack, heap manager, and GC integration. Synthesizes all memory topics into a unified model.
Lesson 3 • Garbage Collection Algorithms
Surveys mark-and-sweep, reference counting, and generational GC strategies. Equips students to reason about GC overhead and pause times.
Lesson 4 • Memory Layout and Allocation
Describes stack, heap, and static memory regions and how languages allocate objects. Grounds all memory management discussions.
Lesson 5 • Ownership and Borrow Checking
Examines ownership-based memory safety as an alternative to GC. Demonstrates how compile-time rules eliminate entire classes of runtime errors.
Your valid completion certificate
This course is for you:
Software developers: wanting to move beyond a single language's limitations.
Computer science students: ready to connect classroom theory to real-world practice.
Backend engineers: curious about why languages behave differently under the hood.
Career changers: entering software development with a hunger for foundational depth.
Technical leads: needing a principled basis for guiding team language decisions.
What our students say
Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to switch platforms... I thank you for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the presentation style and video transcription, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.

Top training programs
FAQ
Who is Dedika?
Is the certificate valid in Canada?
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




















