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
- 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
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