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