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
- Definition of programming and its significance
- History of programming
- Opportunities for task automation through software
- The role of programmers and computers in modern enterprises
- Current market trends in programming
- Declarative vs. imperative programming: How versus What
- The Turing machine
- Compilation and interpretation "on the fly"
Review of Logic and Boolean Algebra Concepts
- Predicates
- Logical sentences
- Tautologies
- Boolean algebra
Writing Your First Program
- Structural approach
- Functional approach
- Object-based approach
- Alternative approaches
Primitive Data Types
- String representation
- Integers
- Floating-point numbers
- Booleans
- Null type
- Blank or uninitialized values
- Strong vs. 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
- Comparison of values across different languages
- Bitwise operators
- Concatenation
- Increment and decrement operators
- Common errors
Program Control Flow
- If and if-else statements
- Goto statements and associated application challenges
- Switch statements
- For loops and for-in loops
- While loops and do-while loops
- Foreach loops
- Loop termination
Creating Reusable Code
- Functional programming
- Object-oriented programming
Functional Programming Paradigms
- Understanding functions
- Functions and procedures
- Fundamentals of lambda calculus
- Function arguments
- Return values
- Functions as arguments
- Anonymous functions
- Closures
- Recursion
Object-Oriented Programming Paradigms
- Modeling real-world entities in philosophy and ontology
- Determining appropriate objects or other types
- Class declarations
- Creating class instances
- Fields and object state
- Methods as object behavior
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
- Association and aggregation
- Delegation and separation of relationships between objects
- Modules, packages, and libraries
- API sharing
- Modeling systems as classes and objects
- Describing and implementing relationships between classes
- Programming from a business perspective
Best Programming Practices
- Pitfalls and common errors
- Interpreting high-level code in low-level contexts
- Code optimization
- KISS principle (Keep It Simple, Stupid)
- DRY principle (Don't Repeat Yourself)
- "Worse is Better" principle
- Separating abstraction from implementation
- Methods for detecting logical errors in programs
- Formatting conventions
- Code commenting
- Software metrics
Overview of Technologies and Languages
- Application domains for these languages
- Key features of each language
- Development prospects
- Future development directions: algorithmic efficiency, code optimization, implementing patterns, design patterns, architectural patterns, and analytical standards
- Reducing control structures through artificial intelligence and automated decision-making
- Platform selection: 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