Get in Touch

Course Outline

Introduction

  • What is programming and why it deserves attention
  • A brief history of programming
  • Opportunities to automate tasks using software
  • The role of programmers and computers within enterprises
  • Programming today: emerging market trends
  • Declarative versus imperative programming: how or what?
  • The Turing machine
  • Compilation, interpretation, and just-in-time execution

Review of logic and Boolean algebra

  • Predicates
  • Logical statements
  • Tautologies
  • Boolean algebra

Your first program

  • Structurally
  • Functionally
  • Object-oriented
  • And other approaches?

Simple data types

  • Representation of strings
  • Integers
  • Floating-point numbers
  • Boolean values
  • The Null type
  • Empty or uninitialized values
  • Strong versus weak typing

Data structures

  • Concepts of FIFO and FILO
  • Stacks
  • Queues
  • Declaring arrays and lists
  • Indexing
  • Maps
  • Records
  • Trees

Operators

  • Assignment operators
  • Arithmetic operators
  • Comparison operators
  • Comparing values across different languages
  • Bitwise operators
  • Concatenation
  • Increment and decrement operators
  • Common errors

Controlling program flow

  • The if and if-else statements
  • Goto statements and associated issues
  • The switch statement
  • The for loop and for-in constructs
  • The while loop and do-while constructs
  • The foreach loop
  • Terminating loops

Creating reusable code

  • Functional programming
  • Object-oriented programming

Functional programming paradigms

  • What is a function?
  • Functions versus procedures
  • Foundations of lambda calculus
  • Function arguments
  • Returning values
  • Functions as arguments
  • Anonymous functions
  • Closures
  • Recursion

Object-oriented programming paradigms

  • Representing real-world entities in philosophy and ontology
  • Deciding what to model as objects or other types
  • Declaring classes
  • Creating class instances
  • Fields: the state of an object
  • Methods: the behaviour of an object
  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism
  • Association and aggregation
  • Delegation and separation of relationships between objects
  • Modules, packages, and libraries
  • Sharing APIs
  • Modelling systems using classes and objects
  • Describing and programming relationships between classes
  • Programs from a business perspective

Good programming practices

  • Pitfalls and common errors
  • High-level code and its low-level interpretation
  • Code optimisation
  • The KISS principle
  • The DRY principle
  • The "Worse is Better" principle
  • Separation of abstraction from implementation
  • Methods for detecting logical errors in programs
  • Conventions for coding
  • Commenting code
  • Software metrics

Overview of key technologies and languages

  • Application areas of these languages
  • Key features of each language
  • Future development prospects
  • Future directions: algorithmic improvements, code optimisation, implementation patterns, design patterns, architectural patterns, and analytical standards
  • Reducing reliance on control structures through artificial intelligence and automated decision-making
  • Choosing the right platform: individual consultations
 35 Hours

Number of participants


Price per participant

Testimonials (5)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories