Skip to content
academia.sh

Course Beginner

Programming Fundamentals

By the end of this course

Start course

01

Program, Value and Variable

What a program is, how values are bound to names, and building expressions with the basic data types.

  1. 01 What Is a Program The input-process-output model, execution order, the distinction between statements and expressions, and error types.
  2. 02 Variables and Binding How a name is bound to a value, the meaning of assignment, two models of variables, and naming conventions.
  3. 03 Basic Data Types The concept of type, integers, real numbers, booleans, strings, and null values; static and dynamic typing.
  4. 04 Operators and Expressions Arithmetic, comparison, and logical operators; precedence, associativity, and short-circuit evaluation.
  5. 05 Type Conversion Explicit and implicit conversion, lossy narrowing, conversion errors, and input validation.

02

Control Flow

Conditional branching, loops, and designing a solution with pseudocode.

  1. 01 Conditional Branching Condition-dependent execution, multi-way selection, writing readable conditions, and mapping-based dispatch.
  2. 02 Loops Iterating over a collection, counted and conditional loops, the termination guarantee, and the accumulator pattern.
  3. 03 Loop Control Break, continue, the search pattern, and readability when exiting nested loops.
  4. 04 Pseudocode Writing a solution independent of any language, testing it with a manual trace table, and identifying edge cases.

03

Functions and Abstraction

Function definition, argument passing, scope rules, and recursion.

  1. 01 Function Definition and Call Parameter and argument, return value, the call stack, the guard clause, and the criteria of a good function.
  2. 02 Passing by Value and by Reference Argument-passing models, the visibility of an in-function change from outside, and the discipline of side effects.
  3. 03 Scope and Lifetime Name lookup order, shadowing, writing to global state, the lifetime of local variables, and closures.
  4. 04 Recursion The base case and the reduction step, expansion on the call stack, infinite recursion, and its cost.
  5. 05 Tail Recursion The call in tail position, transformation with an accumulator parameter, frame reuse, and equivalence to a loop.

04

A Survey of Programming Paradigms

The distinguishing ideas of the structural, object-oriented, and functional approaches, and the criteria for choosing a language.

  1. 01 Structural Programming Building programs with sequence, selection, and iteration; abandoning the jump statement and top-down decomposition.
  2. 02 Introduction to Object-Oriented Programming Combining data and behavior, class and object, encapsulation, preserving invariants, and the idea of an interface.
  3. 03 Introduction to Functional Programming Pure functions, immutability, functions used as values, transformation chains, and confining side effects.
  4. 04 Choosing a Language The design axes that separate languages, criteria for choosing a first language, and knowledge that transfers.

Start typing to search.

↑↓ Esc navigate · open · close