Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- Defining programming and its significance
- A historical perspective on programming
- Leveraging software for task automation
- The programmer's role and the computer's function within an enterprise
- Current market trends in programming development
- Declarative versus imperative programming: How versus What?
- Understanding the Turing machine
- Compilation and interpretation 'on the fly'.
Review of Logic and Boolean Algebra
- Predicates
- Logical sentences
- Tautologies
- Boolean algebra
Your First Program
- Structural aspects
- Functional aspects
- Object-oriented aspects
- Other paradigms
Primitive Data Types
- String representation
- Integers
- Floating-point numbers
- Booleans
- Null types
- Blank versus uninitialized values
- Strong versus weak typing
Data Structures
- FIFO and FILO concepts
- Stacks
- Queues
- Declaring arrays and lists
- Indexing
- Maps
- Records
- Trees
Operators
- Assignment operators
- Arithmetic operators
- Comparison operators
- Comparing values across different languages
- Bitwise operations
- Concatenation
- Increment and decrement operators
- Common pitfalls
Control Flow
- If and if-else statements
- Goto statements and associated challenges
- Switch statements
- For loops and for-in loops
- While loops and do-while loops
- Foreach loops
- Loop termination
Building Reusable Code
- Functional Programming
- Object-Oriented Programming
Functional Programming Paradigms
- Defining functions
- Functions versus procedures
- Foundations of lambda calculus
- Function arguments
- Return values
- Functions as arguments
- Anonymous functions
- Closures
- Recursion
Object-Oriented Programming Paradigms
- Mmapping real-world entities to philosophical and ontological concepts
- Determining object boundaries and other type distinctions
- Class declarations
- Instantiating classes
- Fields: the state of an object
- Methods: the behavior of an object
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Association and aggregation
- Delegation and the separation of object relationships
- Modules, packages, and libraries
- API sharing
- Modeling systems as classes and objects
- Defining and programming class relationships
- Viewing programming from a business perspective
Best Practices in Programming
- Common pitfalls and errors
- Translating high-level code into low-level interpretations
- Code optimization
- The KISS principle
- The DRY principle
- The 'Worse is Better' principle
- Separating abstraction from implementation
- Techniques for detecting logic errors in programs
- Formatting conventions
- Code commenting
- Software metrics
Overview of Technologies and Languages
- Application domains for each language
- Core language features
- Future development prospects
- Future development directions: algorithmic efficiency, code optimization, implementation patterns, design patterns, architectural patterns, and analytical standards
- Reducing control structures through artificial intelligence and automated decision-making
- Selecting the right platform: Individual consultations
35 Hours
Testimonials (5)
The Trainer was very patient with everybody, and was willing to repeat if people did not understand. He made sure everybody understood before he continued
Henry - Vodacom
Course - Introduction to Programming
It has given me a solid foundation to depart into the rabbit hole of programming :)
Andrew Jones - Vodacom
Course - Introduction to Programming
The lecturer had extensive knowledge about the subject matter and was willing to share.
Clive Lloyd - Vodacom
Course - Introduction to Programming
The content was sufficiently detailed in order for me to grasp the fundamentals and concepts, and the delivery was well executed.
Anwar - Vodacom
Course - Introduction to Programming
Patience and pace