Get in Touch

Course Outline

Introduction

  • Defining programming and its relevance
  • A brief history of programming
  • Opportunities for automating tasks through software
  • The role of programmers and computers within an enterprise context
  • Current programming market trends and development
  • Declarative versus imperative programming: Approaches and outcomes
  • Understanding the Turing machine
  • Compilation versus interpretation: Static compilation and dynamic interpretation

Review of Logic and Boolean Algebra

  • Predicates
  • Logical propositions
  • Tautologies
  • Boolean algebra

Writing Your First Program

  • Structural approaches
  • Functional approaches
  • Object-oriented approaches
  • Alternative methodologies

Primitive Data Types

  • String representation
  • Integers
  • Floating-point numbers
  • Boolean values
  • Null types
  • Blank or uninitialized variables
  • Strong vs. weak typing

Data Structures

  • Concepts of FIFO (First-In-First-Out) and FILO (First-In-Last-Out)
  • Stacks
  • Queues
  • Declaring arrays and lists
  • Indexing mechanisms
  • Maps
  • Records
  • Trees

Operators

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

Control Flow

  • Conditional statements: if and if-else
  • Goto statements and the challenges associated with their use
  • Switch statements
  • Loops: for and for-in
  • Loops: while and do-while
  • ForEach loops
  • Loop termination strategies

Creating Reusable Code

  • Functional Programming
  • Object-Oriented Programming

Functional Programming Paradigms

  • Understanding functions
  • Differences between functions and procedures
  • Fundamentals of lambda calculus
  • Function arguments
  • Return values
  • Functions as arguments
  • Anonymous functions
  • Closures
  • Recursion

Object-Oriented Programming Paradigms

  • Modelling real-world entities, drawing on philosophy and ontology
  • Deciding between objects and other data types
  • Class declarations
  • Creating class instances
  • Fields: representing object state
  • Methods: defining object behaviour
  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism
  • Association and aggregation
  • Delegation and the separation of object relationships
  • Modules, packages, and libraries
  • API sharing
  • System modelling via classes and objects
  • Describing and programming class relationships
  • Viewing programming from a business perspective

Best Practices in Programming

  • Avoiding pitfalls and common errors
  • Translating high-level concepts into low-level implementation
  • Code optimization techniques
  • The KISS principle (Keep It Simple, Stupid)
  • The DRY principle (Don't Repeat Yourself)
  • The 'Worse is Better' philosophy
  • Separating abstraction from implementation
  • Methods for detecting logical errors in programs
  • Coding conventions
  • Code commenting standards
  • Software metrics

Overview of Technologies and Languages

  • Application domains of these languages
  • Key language features
  • Development prospects
  • Future development directions: algorithms, code optimization, implementation patterns, design patterns, architectural patterns, and analytical standards
  • Reducing manual control structures through artificial intelligence and automated decision-making
  • Selecting the right platform: Individual consultations available
 35 Hours

Testimonials (5)

Upcoming Courses

Related Categories